恢复与原厂固件
结果: 选择正确的恢复程序并在运动前验证设置。从 连接诊断 开始:错误的端口或波特率不需要引导加载程序恢复。
选择程序
| 情况 | 程序 |
|---|---|
| 电机有反应;恢复其普通保存的设置 | Node.js settings restore 使用该电机的备用 |
| 电机有反应;故意返厂软件 | 工厂闪存,然后进行 Python 修复/验证 |
| 传输中断后应用程序没有响应;检查电源/接线/ID/波特率 | 引导加载程序 recover 仅连接一台电机 |
| 原始校准丢失并且不存在更早的快照 | 请勿更换其他备用电机;获取精确模型的设置并重新校准 |
普通设置恢复
隔离电机、支撑机构、关闭扭矩、锁定写入并清除报警原因。使用 npm run settings -- backup 创建的 JSON :
macOS / Linux
npm run settings -- restore --port "$SERVO_PORT" --id 1 --file tools/settings/backups/servo-1-before-flash.json
Windows PowerShell
npm.cmd run settings -- restore --port "$env:SERVO_PORT" --id 1 --file tools/settings/backups/servo-1-before-flash.json
--id 和 --baud 描述 当前连接 ,不一定是备份值。该工具检查模型、写入更改的设置、跟踪 ID/波特率更改并验证回读。它从不启用扭矩或发送运动命令。发生故障后可以保留部分更改;恢复不是原子的。
此命令不会修复恢复出厂设置模板,也不接受 Python settings.py 备份。
返回出厂固件
仅将此用于匹配 SCServo21-GD32-TTL 3.10 硬件。源在 tools/flash/factory/ 中包含其图像和清单。隔离舵机,因为工厂启动可能会将舵机ID更改为1,导致总线冲突。
macOS / Linux
tools/flash/.venv/bin/python tools/flash/flash.py flash --manifest tools/flash/factory/release.json --port "$SERVO_PORT" --id 1
Windows PowerShell
.\tools\flash\.venv\Scripts\python.exe tools/flash/flash.py flash --manifest tools/flash/factory/release.json --port "$env:SERVO_PORT" --id 1
使用当前 ID 并确认 FLASH 。正常传输期间保持电源连接。然后,该工具检查先前的连接,然后在 1,000,000 波特率处检查 ID 1(如有必要),并报告工作连接。退出代码 2 表示工厂固件已响应,但设置已更改。
返回工厂软件后修复设置 ,即使它们最初看起来正确 :当存储的设置无效时,固件可以使用内置默认值。
引导加载程序恢复
仅连接 所需的伺服器 。恢复不按 ID 进行寻址,无法在上传前检查当前型号或备份设置。此示例恢复匹配工厂 3.10 :
macOS / Linux
tools/flash/.venv/bin/python tools/flash/flash.py recover --manifest tools/flash/factory/release.json --port "$SERVO_PORT" --id 1
Windows PowerShell
.\tools\flash\.venv\Scripts\python.exe tools/flash/flash.py recover --manifest tools/flash/factory/release.json --port "$env:SERVO_PORT" --id 1
确认操作。 仅当提示 时才重新启动伺服电机,并保持 USB 适配器连接。该工具等待引导加载程序长达 60 秒。指定恢复后预期的 ID/波特率。不保证恢复;如果引导加载程序没有响应,则保留输出并检查硬件。
不要将恢复的电源循环步骤应用于普通寻址刷写固件。
修复并验证出厂设置
刷回原厂固件或完成恢复后,请使用在设置丢失前为同一台电机创建的 Python 备份,或正常 flash 操作生成的、包含 before_registers_hex 的报告。不接受 Node.js 备份格式。此示例假设当前 ID 为 1:
macOS / Linux
tools/flash/.venv/bin/python tools/flash/settings.py restore --port "$SERVO_PORT" --id 1 --file backups/servo-1-factory-recovery.json
Windows PowerShell
.\tools\flash\.venv\Scripts\python.exe tools/flash/settings.py restore --port "$env:SERVO_PORT" --id 1 --file backups/servo-1-factory-recovery.json
当询问时输入 RESTORE。该工具支持工厂 3.10 并拒绝检测到的自定义固件。它恢复设置、替换重置模板、锁定写入并重新启动电机。它可以跟踪 ID/波特率的变化并进行验证,而无需发送运动命令。
然后重新启动伺服器并使用 恢复的 ID 和波特进行验证:
macOS / Linux
tools/flash/.venv/bin/python tools/flash/settings.py verify --port "$SERVO_PORT" --id 1 --file backups/servo-1-factory-recovery.json
Windows PowerShell
.\tools\flash\.venv\Scripts\python.exe tools/flash/settings.py verify --port "$env:SERVO_PORT" --id 1 --file backups/servo-1-factory-recovery.json
如果备份恢复的是其他 ID,请修改最后一个命令中的 --id 1。报告保存在 backups/settings/。出错后请保持力矩关闭;修复流程既不会回滚已完成的部分写入,也不会自动重试。
完成检查: 应用程序响应,电源循环后验证设置,并检查物理偏移含义和限制。校准丢失后进行的备份无法恢复其之前的值。重新校准需要新的姿势记录和更新的模型验证。