Ir al artículo

Crear copias de seguridad e instalar el firmware

Comprobado 2026-11-01

Resultado: se guarda la configuración de cada motor, se instala una imagen compatible y se verifica el inicio de la aplicación y la preservación de la configuración. Las herramientas y comunicación ya deben funcionar.

1. Preparar el mecanismo

Fije el brazo, sostenga sus eslabones y desactive el par del motor. Cierre los demás programas que usen el puerto serie. La herramienta de programación exige torqueEnable = 0, escrituras persistentes bloqueadas con lock = 1 y ninguna alarma activa. Si no se cumplen estas condiciones, resuélvalas con la herramienta de configuración adecuada. No omita las comprobaciones ni borre una alarma sin conocer su causa.

Puede desactivar el par con el grabador de poses instalado. Ejecute el comando y confirme la desactivación solo después de sostener el mecanismo. Espere Torque off verified y escriba done sin capturar poses:

macOS / Linux
npm run record-poses -- --port "$SERVO_PORT" --ids 1,2,3,4,5,6
Windows PowerShell
npm.cmd run record-poses -- --port "$env:SERVO_PORT" --ids 1,2,3,4,5,6

Reemplace las identificaciones seleccionadas con las suyas. Esto crea un archivo de pose vacío que no es necesario para la reproducción. Es un procedimiento de liberación de par controlado, no una parada de emergencia.

2. Haga una copia de seguridad de cada motor

Dos propósitos de copia de seguridad utilizan formatos diferentes y no intercambiables:

Archivo Creado por Propósito
tools/settings/backups/servo-1-before-flash.json Node.js settings backup Restauración ordinaria de configuraciones heredadas persistentes en el mismo motor
backups/servo-1-factory-recovery.json Python settings.py backup Reparación de configuraciones guardadas y plantilla de reinicio después de regresar al firmware de fábrica

Ambos comandos leen el motor sin cambiar su configuración:

macOS / Linux
npm run settings -- backup --port "$SERVO_PORT" --id 1 --file tools/settings/backups/servo-1-before-flash.json
Windows PowerShell
npm.cmd run settings -- backup --port "$env:SERVO_PORT" --id 1 --file tools/settings/backups/servo-1-before-flash.json
macOS / Linux
tools/flash/.venv/bin/python tools/flash/settings.py backup --port "$SERVO_PORT" --id 1 --file backups/servo-1-factory-recovery.json
Windows PowerShell
.\tools\flash\.venv\Scripts\python.exe tools/flash/settings.py backup --port "$env:SERVO_PORT" --id 1 --file backups/servo-1-factory-recovery.json

Repita para cada ID, cambiando tanto --id como el nombre del archivo. Mantenga otra copia fuera del proyecto y etiquete cada copia de seguridad con su motor físico. Los archivos existentes no se sobrescriben; use un nuevo nombre para otra instantánea. Las copias de seguridad heredadas no incluyen perfiles de extensión ni el modelo de gravedad: guarde esos archivos JSON por separado.

Comprobación: ambos comandos se ejecutan correctamente y ambos archivos existen. No restablezca el respaldo de otro motor; sus compensaciones pueden cambiar el significado físico de los recuentos del codificador.

3. Verificar la imagen de firmware sin conectar el hardware

Descargue custom-v9-e44c0e6.zip desde v0.1-preview Assets. Extraiga ambos firmware.enc y release.json en tools/flash/releases/custom/. No utilice un archivo de código fuente, release.example.json ni una salida de compilación sin formato.

macOS / Linux
tools/flash/.venv/bin/python tools/flash/flash.py inspect --manifest tools/flash/releases/custom/release.json
Windows PowerShell
.\tools\flash\.venv\Scripts\python.exe tools/flash/flash.py inspect --manifest tools/flash/releases/custom/release.json

inspect no abre un puerto serie. Comprueba la estructura del manifiesto, el tamaño de la imagen y SHA-256. Para este archivo, espere extension.major: 9, extension.minor: 0, model_bytes: [[9, 3]] y encoded_bytes_verified: 25744. Si la validación falla, obtenga el par coincidente original; no ajuste manualmente su hash o tamaño.

4. Instalar el firmware en un motor por ID

El siguiente comando escribe el firmware y reinicia el motor seleccionado:

macOS / Linux
tools/flash/.venv/bin/python tools/flash/flash.py flash --manifest tools/flash/releases/custom/release.json --port "$SERVO_PORT" --id 1
Windows PowerShell
.\tools\flash\.venv\Scripts\python.exe tools/flash/flash.py flash --manifest tools/flash/releases/custom/release.json --port "$env:SERVO_PORT" --id 1

Cuando se le solicite, escriba FLASH. Mantenga la alimentación conectada y no ejecute otro programa de carga hasta finalizar. En la programación normal por dirección pueden permanecer conectados otros motores con direcciones únicas; prográmelos uno a uno. No desconecte y vuelva a conectar manualmente la alimentación del bus durante una programación normal.

La herramienta guarda una instantánea de la configuración, transfiere la imagen, verifica el inicio de la aplicación y compara la configuración. La finalización exitosa deja el torque desactivado. Los informes se guardan en backups/flash/; guárdelos con las copias de seguridad. Esto verifica la aplicación y la configuración en lugar de leer cada byte de firmware.

5. Verifique la interfaz instalada

Después de la programación del firmware, lea las capacidades y la retroalimentación sin iniciar el movimiento:

macOS / Linux
node host/servo-driver/examples/v9-feedback.js "$SERVO_PORT" 1
Windows PowerShell
node host/servo-driver/examples/v9-feedback.js "$env:SERVO_PORT" 1

Este ejemplo utiliza 1.000.000 de baudios y ID 1. Cambie el último argumento por otro ID. Una velocidad de baudios diferente requiere cambiar el código de este ejemplo. Espere la extensión versión 9.0; una sesión inactiva con torque desactivado es normal.

Si la transferencia finaliza pero la verificación de la aplicación falla, conserve el informe y verifique la ID, los baudios y la configuración antes de intentar con el firmware de otro programa. Utilice recovery para un dispositivo que no responde o para un retorno deliberado al firmware de fábrica.

Siguiente: comprobar o establecer la calibración.


Inicio de la documentación · Revisión de la fuente: a995f77. Extensión 9.0.