Fazer cópias de segurança e gravar o firmware
Resultado: as configurações de cada motor são salvas, uma imagem compatível é instalada e a inicialização do aplicativo e a preservação das configurações são verificadas. Ferramentas e comunicação já deve funcionar.
1. Prepare o mecanismo
Fixe o braço, sustente seus elos e desative o torque dos motores. Feche os outros programas que usam a porta serial. A ferramenta de gravação exige torqueEnable = 0, gravações persistentes bloqueadas com lock = 1 e nenhuma condição de alarme ativa. Resolva essas condições com a ferramenta de configuração adequada. Não ignore as verificações nem apague um alarme sem entender sua causa.
Você pode desativar o torque com o gravador de poses instalado. Execute o comando e confirme a desativação somente depois de sustentar fisicamente o mecanismo. Aguarde Torque off verified e digite done sem 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
Substitua os IDs selecionados pelos seus. Isso cria um arquivo de pose vazio que não é necessário para reprodução. É um procedimento controlado de liberação de torque e não uma parada de emergência.
2. Faça backup de todos os motores
Duas finalidades de backup usam formatos diferentes e não intercambiáveis:
| Arquivo | Criado por | Objetivo |
|---|---|---|
tools/settings/backups/servo-1-before-flash.json |
Node.js settings backup |
Restauração normal de configurações Legacy persistentes para o mesmo motor |
backups/servo-1-factory-recovery.json |
Python settings.py backup |
Reparo das configurações salvas e do modelo de redefinição após retornar ao firmware de fábrica |
Ambos os comandos leem o motor sem alterar suas configurações:
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 , alterando --id e o nome do arquivo. Mantenha outra cópia fora do projeto e rotule cada backup com seu motor físico. Os arquivos existentes não são substituídos; use um novo nome para outro instantâneo. Os backups legados não incluem perfis Extension ou o modelo gravitacional: salve esses arquivos JSON separadamente.
Verificação : ambos os comandos foram bem-sucedidos e ambos os arquivos existem. Não restaure o backup de outro motor; seus deslocamentos podem alterar o significado físico das contagens do codificador.
3. Verificar a imagem do firmware sem hardware
Baixe custom-v9-e44c0e6.zip de v0.1-preview Ativos . Extraia firmware.enc e release.json em tools/flash/releases/custom/ . Não use um arquivo de código-fonte, release.example.json ou uma saída de construção bruta.
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 não abre uma porta serial. Ele verifica a estrutura do manifesto, o tamanho da imagem e o SHA-256. Para este arquivo, espere extension.major: 9 , extension.minor: 0 , model_bytes: [[9, 3]] e encoded_bytes_verified: 25744 . Se a validação falhar, obtenha o par correspondente original; não ajuste manualmente seu hash ou tamanho.
4. Gravar o firmware em um motor por ID
O seguinte comando grava o firmware e reinicia o motor selecionado:
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
Digite FLASH quando solicitado. Mantenha a alimentação conectada e não execute outra ferramenta de gravação até terminar. Na gravação normal por endereço, outros motores com endereços únicos podem continuar conectados; grave um de cada vez. Não desligue e ligue manualmente a alimentação do barramento durante uma gravação normal.
A ferramenta salva um instantâneo das configurações, transfere a imagem, verifica a inicialização do aplicativo e compara as configurações. A conclusão bem-sucedida deixa o torque desligado. Os relatórios são salvos em backups/flash/; mantenha-os com os backups. Isso verifica o aplicativo e as configurações em vez de ler cada byte do firmware.
5. Verifique a interface instalada
Após gravar o firmware, leia os recursos e feedback sem iniciar o movimento:
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 exemplo usa 1,000,000 baud e ID 1. Altere o último argumento para outro ID. Uma taxa de transmissão diferente requer a alteração do código deste exemplo. Espere a versão Extension 9.0; uma sessão inativa com torque desligado é normal.
Se a transferência for concluída, mas a verificação do aplicativo falhar, preserve o relatório e verifique o ID, o baud e as configurações antes de tentar outro flash. Use a recuperação para um dispositivo que não responde ou um retorno deliberado ao firmware de fábrica.
Próximo: verifica ou estabelece calibração .
Início da documentação · Revisão de origem: a995f77 . Extension 9.0 .