跳至正文

恢复与原厂固件

已核对 2026-11-01

结果: 选择正确的恢复程序并在运动前验证设置。从 连接诊断 开始:错误的端口或波特率不需要引导加载程序恢复。

选择程序

情况 程序
电机有反应;恢复其普通保存的设置 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/。出错后请保持力矩关闭;修复流程既不会回滚已完成的部分写入,也不会自动重试。

完成检查: 应用程序响应,电源循环后验证设置,并检查物理偏移含义和限制。校准丢失后进行的备份无法恢复其之前的值。重新校准需要新的姿势记录和更新的模型验证。


文档主页 · 源版本: a995f77 。 Extension 9.0 。