本文へ移動

バックアップとファームウェアの書き込み

確認済み 2026-11-01

結果: 各モーターの設定が保存され、互換性のあるイメージがインストールされ、アプリケーションの起動と設定の保存がチェックされます。 ツールと通信 はすでに動作している必要があります。

1. 機構を準備する

アームを固定し、各リンクを支えてからモータートルクを無効にします。他のシリアル通信プログラムを終了してください。書き込みツールは torqueEnable = 0、lock = 1 による永続設定への書き込みロック、およびアクティブなアラームがないことを要求します。条件を満たさない場合は、適切な設定ツールで解決してください。検査を回避したり、原因不明のアラームを消去したりしないでください。

インストール済みの姿勢記録ツールでトルクを無効にできます。コマンドを実行し、機構を物理的に支えてからトルク解除を確認してください。Torque off verified を待ち、姿勢を記録せずに done と入力します:

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

選択した ID を自分の ID に置き換えます。これにより、再生には必要のない空のポーズ ファイルが作成されます。これは制御されたトルク解放手順であり、緊急停止ではありません。

2. すべてのモーターをバックアップする

2 つのバックアップ目的では、異なる互換性のない形式が使用されます。

ファイル 作成者 目的
tools/settings/backups/servo-1-before-flash.json Node.js settings backup 同じモーターへの永続的なレガシー設定の通常の復元
backups/servo-1-factory-recovery.json Python settings.py backup 工場出荷時のファームウェアに戻った後の保存された設定の修復とリセットテンプレート

どちらのコマンドも、設定を変更せずにモーターを読み取ります。

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

すべての ID に対して繰り返し、 --id とファイル名の両方を変更します。別のコピーをプロジェクトの外に保管し、各バックアップに物理モーターのラベルを付けます。既存のファイルは上書きされません。別のスナップショットには新しい名前を使用してください。レガシー バックアップには、Extension プロファイルや重力モデルは含まれません。これらの JSON ファイルは個別に保存してください。

チェック: 両方のコマンドが成功し、両方のファイルが存在します。別のモーターのバックアップを復元しないでください。そのオフセットにより、エンコーダ カウントの物理的な意味が変わる可能性があります。

3. ファームウェアイメージをオフラインで確認する

ダウンロードcustom-v9-e44c0e6.zipからv0.1-プレビュー アセット。抽出する両方 firmware.encそしてrelease.jsonの中へtools/flash/releases/custom/。ソースコードアーカイブは使用しないでください。release.example.jsonまたは生のビルド出力。

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 はシリアル ポートを開きません。マニフェストの構造、画像サイズ、SHA-256 をチェックします。このアーカイブでは、 extension.major: 9 、 extension.minor: 0 、 model_bytes: [[9, 3]] および encoded_bytes_verified: 25744 が想定されます。検証が失敗した場合は、元の一致するペアを取得します。ハッシュやサイズを手動で調整しないでください。

4. ID を指定して 1 台に書き込む

次のコマンドはファームウェアを書き込み、選択したモーターを再起動します。

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

指示されたら FLASH と入力します。電源を接続したままにし、完了するまで別の書き込みツールを実行しないでください。通常のアドレス指定書き込みでは、固有アドレスを持つ他のモーターを接続したままにできます。1 台ずつ順番に書き込んでください。通常の書き込み中にバスの電源を手動で入れ直さないでください。

このツールは、設定スナップショットの保存、イメージの転送、アプリケーションの起動の確認、設定の比較を行います。正常に完了するとトルクはオフのままになります。レポートは backups/flash/ に保存されます。バックアップと一緒に保管してください。これにより、ファームウェアのすべてのバイトを読み取るのではなく、アプリケーションと設定がチェックされます。

5. インストールされているインターフェースを確認します

ファームウェアの書き込み後、動作を開始せずに機能とフィードバックを読み取ります。

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

この例では、 1,000,000 ボーおよび ID 1 を使用します。最後の引数を別の ID に変更します。ボーレートが異なる場合は、この例のコードを変更する必要があります。 Extension バージョン 9.0 を期待します。トルクがオフの非アクティブなセッションは正常です。

転送は終了したがアプリケーションの検証が失敗した場合は、別のフラッシュを試みる前にレポートを保存し、ID、ボー、設定を確認してください。応答しないデバイスまたは意図的に工場出荷時のファームウェアに戻す場合は、 リカバリ を使用します。

次へ: 校正を確認または確立します 。


ドキュメント ホーム · ソース リビジョン: a995f77 。 Extension 9.0 。