И у меня аналогичная проблема
Доблестно часа 2 сражались совместно с ChatGPT, но проиграли.
Описание ситуации:
После обновления системы (команды apt update и apt upgrade) на контроллере Wirenboard были установлены новые версии системных пакетов, а также специализированного ПО для работы с модулями по шине RS‑485 (в том числе пакетов wb‑mcu‑fw‑updater, wb‑mqtt‑сервисов и прочих). Затем была запущена процедура обновления прошивок всех подключённых устройств с помощью команды:
wb-mcu-fw-updater update-all
В ходе этой процедуры обновились несколько модулей:
- WB-MDM3 – загрузчик обновлён с версии 1.2.2 до 1.4.5, затем обновлено основное приложение;
- WB-MR6C и WB-LED – обновления прошли успешно;
- WB-MWAC (slave-id 108) – при обновлении загрузчика (с версии 1.2.2 до 1.4.5) для этого модуля система обнаружила, что «устройство имеет слишком старый загрузчик для сохранения пользовательских данных» и запросила подтверждение на стирание пользовательских настроек. После подтверждения обновления загрузчика команда продолжила попытку прошивки, но по истечении таймаута (5 секунд) возникло сообщение:
“Unsuccessful flashing! Device: /dev/ttyRS485-1 1 [9600, ‘N’, 2] (response timeout: 5.00)”
Таким образом, модуль WB‑MWAC не смог завершить обновление загрузчика и остался в режиме загрузчика, что мешает дальнейшей нормальной работе – модуль не выходит в рабочий режим и связь с ним не устанавливается.
Какие шаги мы предприняли для исправления ситуации:
- Проверка и обновление прошивки:
- Был запущен стандартный процесс обновления прошивок с помощью wb‑mcu‑fw‑updater (команда update-all). Для большинства устройств обновление прошло успешно, но для WB‑MWAC (slave-id 108) обновление загрузчика завершилось ошибкой.
- Попытки повторной прошивки загрузчика с использованием локального файла:
- Был использован режим прямой прошивки (flash‑file) с указанием локального файла загрузчика для WB‑MWAC:
sudo wb-mcu-fw-updater flash-file --file /var/lib/wb-mcu-fw-updater/bootloader/wb-bootloader-updater_wbmwacG__1.4.5_master_2d8435c.wbfw -a 108 -T 5 /dev/ttyRS485-1
Однако команда завершалась с ошибкой, сообщая, что устройство не смогло перезагрузиться в режим загрузчика (timeout).
- Также была предпринята попытка прошивки с указанием адреса 1 (т.е. используя адрес по умолчанию для режима загрузчика), но и она завершилась аналогичной ошибкой.
- Изменение параметров и увеличение таймаута:
- Были попытки увеличить значение таймаута (параметр –T), чтобы дать модулю больше времени на ответ. Это не решило проблему – устройство так и не вышло из режима загрузчика.
- Остановка службы, работающей с RS‑485:
- Для исключения влияния фонового процесса, работающего с портом RS‑485 (служба wb‑mqtt‑serial), её остановили командой:
sudo systemctl stop wb-mqtt-serial
После проверки службы (состояние: inactive) повторные попытки прошивки всё равно не принесли результата.
5. Попытки принудительного перехода из режима загрузчика через Modbus-команды:
- Были предприняты попытки использования утилиты modbus_client для записи в специальные регистры (например, 129 или 131) с целью принудительного выхода из загрузочного режима. Однако такие команды завершались с ошибкой (ERROR occured!), что свидетельствует о том, что устройство не отвечает на такие Modbus-запросы.
Вывод:
Обновление загрузчика для модуля WB‑MWAC (slave‑id 108) завершилось неудачно. После подтверждения стирания пользовательских данных и попытки перепрошивки загрузчика устройство так и не перешло в рабочий режим – оно остаётся в режиме загрузчика и не отвечает на запросы. Предприняты были следующие действия:
- Запуск стандартного обновления прошивок (update-all) с перепрошивкой загрузчика и основного ПО;
- Попытка повторной прошивки загрузчика с использованием команды flash‑file с увеличенным таймаутом;
- Остановка фоновой службы wb‑mqtt‑serial для исключения блокировки порта;
- Попытка использовать утилиту modbus_client для принудительного выхода из режима загрузчика через запись в специальные регистры.
Все эти методы не привели к восстановлению нормальной работы модуля WB‑MWAC, который после обновления остаётся в режиме загрузчика и не устанавливает связь.
P.S. Надеюсь, удастся обойтись без вскрытия щита и аппаратных перестановок, но судя по соседней очень похожей теме, вряд ли…