WB-MWAC ошибка во время обновления

И у меня аналогичная проблема :slight_smile:
Доблестно часа 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 не смог завершить обновление загрузчика и остался в режиме загрузчика, что мешает дальнейшей нормальной работе – модуль не выходит в рабочий режим и связь с ним не устанавливается.

Какие шаги мы предприняли для исправления ситуации:

  1. Проверка и обновление прошивки:
  • Был запущен стандартный процесс обновления прошивок с помощью wb‑mcu‑fw‑updater (команда update-all). Для большинства устройств обновление прошло успешно, но для WB‑MWAC (slave-id 108) обновление загрузчика завершилось ошибкой.
  1. Попытки повторной прошивки загрузчика с использованием локального файла:
  • Был использован режим прямой прошивки (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 (т.е. используя адрес по умолчанию для режима загрузчика), но и она завершилась аналогичной ошибкой.
  1. Изменение параметров и увеличение таймаута:
  • Были попытки увеличить значение таймаута (параметр –T), чтобы дать модулю больше времени на ответ. Это не решило проблему – устройство так и не вышло из режима загрузчика.
  1. Остановка службы, работающей с 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. Надеюсь, удастся обойтись без вскрытия щита и аппаратных перестановок, но судя по соседней очень похожей теме, вряд ли…

Здравствуйте. Перенес вашу проблему в новую тему, согласно правилам портала.

Похожа, проблема массовая. Нужно некоторое время для подтверждения проблемы и разработки решения. Пожалуйста, ожидайте.

1 лайк

Пришлите, пожалуйста, серийный номер устройства WB-MWAC.

Кажется вот такой
4264638868

Совсем забыл про диагностический архив - его тоже пришлите, пожалуйста.

diag_output_A3SL5ZUJ_2025-02-10-09.57.16.zip (453,1 КБ)

1 лайк

Здравствуйте.

Разработали решение. Прошу:

  • Убедиться, что на шине RS-485, где физически находится WB-MWAC больше нет других устройство с modbus адресом 1.
  • Предоставить доступ к облаку. Пригласите пожалуйста пользователя support@wirenboard.com в организацию на облачном сервисе.
    Для этого в настройках организации нажмите кнопку “Пригласить”

    И укажите почтовый адрес:

    После этого поддержка получит доступ к вашему контроллеру для диагностики.

По завершении работы я напишу вам в данной темы и можете удалить доступ к облаку.

Приглашение отправил. Других устройств с адресом 1 нету, насколько я могу судить.

Принял. Начинаю работу.

Закончил восстановление.

Прошу проверить.

После проверки, если все в порядке, не забудьте удалить доступ к вашей организации в облаке.

Да, спасибо, заработало.
Могу теперь спокойно у других модулей обновлять и загрузчик, и сами устройства?

Да, больше такой проблемы возникать не должно.