Загрузчик периферийных устройств Wiren Board
This is the approved revision of this page, as well as being the most recent.
Описание
В периферийных устройствах с Modbus есть прошивка, которая реализует заложенную логику работы. Чтобы прошивку можно было обновлять прямо в инсталляции по RS-485, в устройствах предусмотрен загрузчик (bootloader), который отвечает за инициализацию устройства и обновление прошивки.
В документации на каждое устройство есть раздел «Обновление прошивки», где есть ссылки на инструкцию по обновлению и список изменений. В этой статье мы рассмотрим только обновление загрузчика.
Обновление загрузчика — потенциально опасная операция, т.к. происходит перезапись программного кода загрузчика и есть риск его потерять. Критичными являются примерно 100 мс после приема последнего блока файла обновления загрузчика. Если питание устройства оборвется в этот момент, загрузчик может оказаться поврежденным. В этом случае устройство не подлежит восстановлению. Нужно обратиться в техподдержку для замены.
При этом обновление прошивки — это полностью безопасная операция. Обрыв питания или связи в любой момент времени не приводит к необратимым последствиям, и устройство можно восстановить, перезапустив процесс обновления прошивки.
Способы обновления загрузчика
Для обновления загрузчика и прошивки есть три способа:
- веб-интерфейс контроллера — самый простой способ, обновление предлагается автоматически, если в релизе для устройства есть более новая версия;
- Wb-mcu-fw-updater — запускается с контроллера Wiren Board из консоли, требует доступ в интернет, сам скачивает нужные файлы с учётом релиза (stable/testing);
- Wb-mcu-fw-flasher — запускается с компьютера, интернет контроллеру не нужен, но файл .wbfw нужно скачать вручную по сигнатуре устройства.
Из-за особенностей механизма обновления загрузчика текущая прошивка устройства удаляется. Соответственно, после обновления загрузчика прошивку нужно вернуть обратно, чтобы восстановить работу устройства. При обновлении из веб-интерфейса или утилитой wb-mcu-fw-updater это происходит автоматически. При обновлении через wb-mcu-fw-flasher прошивку нужно прошивать вручную.
Переход устройств в режим загрузчика

Устройство находится в режиме загрузчика в следующих случаях:
- первые 2 секунды после включения питания, если на устройстве есть корректная прошивка;
- постоянно, если на устройстве нет корректной прошивки, например, был сбой при обновлении прошивки;
- при записи
1в holding-регистр129 (0x81)в момент работы основной программы — в этом случае устройство перезагружается и остается в режиме загрузчика 120 секунд с параметрами соединения9600N2. Этот режим можно активировать, запустив утилиту wb-mcu-fw-flasher с ключом-j. - при записи
1в holding-регистр131 (0x83)в момент работы основной программы — в этом случае устройство перезагружается и остается в режиме загрузчика 120 секунд с параметрами соединения, установленными в настройках устройства. Это может быть полезно для обновления устройств за шлюзами без перенастройки параметров шлюза.- Перейти в этот режим можно в wb-mcu-fw-flasher, начиная с версии 1.3.0, запустив его с ключом
-J. Кроме того, для запуска режима необходима поддержка со стороны загрузчика (версия 1.3.0 и выше) и со стороны прошивки (см. changelog прошивки).
- Перейти в этот режим можно в wb-mcu-fw-flasher, начиная с версии 1.3.0, запустив его с ключом
В режиме загрузчика индикатор Status устройства мигает с периодом 1 секунда, а при записи прошивки мигание индикатора учащается.
Восстановление прошивки описано в статье Обновление прошивки Modbus-устройств Wiren Board.
Проверка связи с устройством в режиме загрузчика
Загрузчик продолжает слушать шину RS-485 и отвечает на опрос некоторых регистров. Можно прочитать сигнатуру устройства, используя команду:
modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a1 -t0x03 -r290 -c12
Важно: именно 12 регистров одним запросом, начиная с адреса 290.
Список изменений
Изменения во всех версиях описаны на странице Список изменений в загрузчике.
Штатный путь обновления прошивки
Обычно прошивку устройства обновляют так:
- Включите питание и подождите около 3 с, пока устройство загрузится и светодиод состояния начнёт гореть постоянно.
- Переведите устройство в режим загрузчика через регистр 129 или 131. Запись в регистр только запускает загрузчик, чтобы он смог принять файл прошивки.
- Запишите файл прошивки в устройство.
Загрузчик при этом не обновляется.
Обновление загрузчика
Текущую версию загрузчика можно узнать, считав 8 holding-регистров с адреса 330, например, с помощью modbus_client:
echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x03 -r330 -c8 | grep Data | sed -e 's/.*Data://' -e 's/ 0x00/\\x/g')
Доступно с релиза wb-2609
Загрузчики, как и прошивки, выпускаются релизами: для каждой сигнатуры устройства зафиксированы стабильная (stable) и тестовая (testing) версии загрузчика. Утилита wb-mcu-fw-updater и веб-интерфейс предлагают обновление, только если версия в релизе новее установленной в устройстве, — так же, как для прошивок. Если версия в устройстве совпадает с релизной или новее её, обновление не предлагается. Это защищает от бесполезных обновлений и позволяет Wiren Board откатить проблемную версию загрузчика, понизив её в релизе. Версии утилит, в которых появилось релизное обновление загрузчика, указаны в статьях об этих утилитах (Wb-mcu-fw-updater).
Есть несколько способов обновления загрузчика:
Через веб-интерфейс
Доступно с релиза wb-2609 Обновление загрузчика доступно в веб-интерфейсе контроллера на странице Настройки → Конфигурационные файлы → Настройка драйвера Serial-устройств. Если в релизе для устройства есть более новая версия загрузчика, интерфейс предложит её установить.
Если одновременно доступны обновления и загрузчика, и прошивки, они устанавливаются вместе. Понижение версии загрузчика (даунгрейд) через веб-интерфейс недоступно.
Обновление загрузчика по релизу работает начиная с версий wb-mqtt-homeui 2.237.1 и wb-mqtt-serial 2.258.0.
С контроллера Wiren Board
Загрузчик обновляется из консоли контроллера Wiren Board утилитой wb-mcu-fw-updater, которой для работы нужен доступ в интернет. Если интернета нет, используйте другой способ.
Имейте в виду, что утилита учитывает установленный на контроллер релиз ПО , то есть вы не сможете зашить тестовую версию загрузчика, если на контроллере стабильный релиз.
Перед обновлением загрузчика обновите прошивку контроллера через apt или другим способом по инструкциям.
Обновление загрузчика одного устройства
Процесс:
- Подключитесь к контроллеру по SSH.
- Запустите команду, заменив в ней порт и адрес:
wb-mcu-fw-updater update-bl /dev/ttyRS485-1 -a1
Утилита считает модель устройства, проверит наличие обновления прошивки загрузчика, скачает обновление и зашьёт его в устройство.
Обновление загрузчика всех устройств
Начиная с версии 1.16.0, утилита wb-mcu-fw-updater, запущенная с ключом update-all, выполняет обновление и загрузчиков, и прошивок:
- Подключитесь к контроллеру по SSH.
- Запустите команду:
wb-mcu-fw-updater update-all
Пример:
# wb-mcu-fw-updater update-all
2026-07-03 14:31:29,565 Will probe all devices on enabled serial ports of /etc/wb-mqtt-serial.conf:
Probing WB-MAI2-mini/CC (port: /dev/ttyRS485-1, slaveid: 28, uart_params: 9600N2, response_timeout: 0.50)... (elapsed: 00:00)
2026-07-03 14:31:34,569 Bootloader update for mai2ccG3 /dev/ttyRS485-1:28: v1.5.5 -> v1.5.7
2026-07-03 14:31:34,570 Updating bootloader on WB-MAI2-mini/CC (28, /dev/ttyRS485-1)
2026-07-03 14:31:35,659 bootloader (mai2ccG3 28 on /dev/ttyRS485-1):
2026-07-03 14:31:35,659 Update: 1.5.5 -> 1.5.7 (mai2ccG3 28 /dev/ttyRS485-1)
2026-07-03 14:31:37,798 Flashing /var/lib/wb-mcu-fw-updater/bootloader/wb-bootloader-updater_mai2ccG3__1.5.7_master_4440697.wbfw (37 data chunks)
100%|##########################################################################################################################################################################################################|37/37
2026-07-03 14:31:45,747 Bootloader was successfully flashed. Will flash released firmware for "mai2ccG3"
2026-07-03 14:31:47,886 Flashing /var/lib/wb-mcu-fw-updater/mai2ccG3__4.33.2_master_24aa283.wbfw (148 data chunks)
100%|########################################################################################################################################################################################################|148/148
2026-07-03 14:32:20,485 Device does not support components update feature
2026-07-03 14:32:20,487 1 upgraded, 0 skipped upgrade, 0 bootloader updates available, 0 stuck in bootloader, 0 disconnected, 0 foreign and 0 too old for any updates.
С компьютера и других устройств
Установка утилиты
Если у вас нет контроллера Wiren Board или на нём нет интернета, можно обновить загрузчик в ручном режиме утилитой wb-mcu-fw-flasher, которую надо установить по инструкции.
Чтение сигнатуры
Для начала нам нужно считать сигнатуру устройства, чтобы понимать, какие загрузчик и прошивки нужны.
Сделать это можно, прочитав 12 holding-регистров с адреса 290, например, с помощью modbus_client:
echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x03 -r290 -c12 | grep Data | sed -e 's/.*Data://' -e 's/ 0x00/\\x/g')
В результате на экран будет выведена строка вида mwac0 — это и есть сигнатура.
Скачивание файлов
Чтобы скачать файл с загрузчиком, перейдите по адресу https://fw-releases.wirenboard.com/?prefix=boot/by-signature/, выберите папку с полученной выше сигнатурой, далее раздел main и скачайте файл latest.wbfw.
Чтобы скачать прошивку, перейдите по адресу https://fw-releases.wirenboard.com/?prefix=fw/by-signature/, выберите папку с полученной выше сигнатурой, далее раздел main и скачайте файл latest.wbfw. Если вам необходима конкретная версия прошивки, можно скачать именно её.
Прошивка
Теперь, когда файлы обновления загрузчика и прошивки скачаны, их надо зашить в устройство:
- Запустите обновление загрузчика, замените порт
/dev/ttyRS485-1, скорость-b, адрес-aи имя файла на свои:wb-mcu-fw-flasher -d /dev/ttyRS485-1 -b9600 -a1 -f wb-bootloader-updater_mwac0__1.4.1_master_e676613.wbfw -j
- утилита сотрёт прошивку и зашьёт новый загрузчик.
- Запустите обновление прошивки, замените порт
/dev/ttyRS485-1, скорость-b, адрес-aи имя файла на свои:wb-mcu-fw-flasher -d /dev/ttyRS485-1 -b9600 -a1 -f mwac0__1.21.1_main_ac00010.wbfw
- так как устройство со стёртой прошивкой находится в загрузчике, то в команде выше нет ключа
-j.
Более подробно про ручное обновление прошивки читайте в статье Обновление прошивки Modbus-устройств Wiren Board .
Отличия способов обновления загрузчика
| Возможность | Веб-интерфейс | wb-mcu-fw-updater |
wb-mcu-fw-flasher (вручную)
|
|---|---|---|---|
| Учитывает релиз загрузчика (stable/testing) | Да | Да | Нет — шьёт указанный файл |
| Произвольная версия или ветка | Нет, только релизная версия | Да | Да — любой файл .wbfw
|
| Обновление загрузчика вместе с прошивкой | Загрузчик и прошивка обновляются одной кнопкой | update-bl после загрузчика сразу зашивает релизную прошивку, потому что прошивка загрузчика стирает её; update-fw и update-all при необходимости обновляют загрузчик перед прошивкой |
Нет — прошивка шьётся отдельной командой вручную |
| Понижение версии (даунгрейд) | Недоступно | update-bl понижает версию до релизной без дополнительных ключей; в update-all откат — только с ключом --allow-downgrade |
Да, без проверки версии |