Перейти к статье

Восстановление и штатная прошивка

Проверено 2026-11-01

Результат: выбрана нужная процедура и подтверждена сохранность настроек до движения. Сначала пройдите диагностику связи: неправильный порт или baud не требуют bootloader recovery.

Выбрать процедуру

Ситуация Процедура
Мотор отвечает, нужно вернуть его обычные сохранённые параметры Node.js settings restore с копией этого же мотора
Мотор отвечает, вы сознательно возвращаете штатное ПО Factory flash, затем Python repair/verify
После прерванной загрузки приложение не отвечает, питание/проводка/ID/baud проверены Bootloader recover только на одном подключённом моторе
Утрачен исходный файл калибровки и нет снимка до ошибки Не подставлять чужую копию; восстановить параметры для точной модели и заново откалибровать

Обычное восстановление настроек

Изолируйте мотор, поддержите механизм, выключите удержание, заблокируйте записи и устраните аварии. Используйте JSON, созданный npm run settings -- backup:

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/baud и проверяет чтением результат. Он не включает удержание и не задаёт движения. Если восстановление прервалось, часть настроек могла измениться; не считайте операцию атомарной.

Эта команда не ремонтирует factory reset template и не принимает резервную копию формата Python settings.py.

Возврат к штатной прошивке

Только для совместимого оборудования с factory SCServo21-GD32-TTL 3.10. В исходниках есть соответствующая пара образа и manifest в 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. Не отключайте питание в ходе обычной загрузки. После неё инструмент ищет прежний адрес/скорость, затем при необходимости ID 1 на 1 000 000 бод и сообщает рабочее подключение. Код выхода 2 означает, что factory отвечает, но настройки изменились.

После возврата к штатному ПО выполните ремонт настроек даже если первоначально они выглядят правильными: прошивка может использовать встроенные значения при невалидном сохранённом состоянии.

Bootloader recovery

Подключите только нужный сервопривод. Recovery не адресует мотор по ID и до передачи не может проверить его модель или сделать резервную копию. Пример ниже восстанавливает совместимое factory 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 и --baud укажите ожидаемые значения после восстановления. Гарантии восстановления нет; если загрузчик не отвечает, сохраните вывод и проверьте аппаратное подключение.

Не переносите требование перезапуска питания из recovery в обычную адресную прошивку.

Ремонт factory-настроек и проверка

После factory flash/recovery используйте Python-копию того же мотора, сделанную до потери настроек, или обычный flash-отчёт с before_registers_hex. Node.js JSON для этой процедуры не подходит. Пример предполагает, что мотор сейчас отвечает как 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. Инструмент поддерживает factory 3.10, отказывается работать с обнаруженной custom-прошивкой, восстанавливает настройки, заменяет шаблон сброса, блокирует записи и перезапускает мотор. Он следует изменению ID/baud и проверяет результат, не задавая движения.

Затем перезапустите питание сервопривода и проверьте по восстановленным 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.