WB Modbus Devices Firmware Update: различия между версиями
м (→Переход в режим загрузчика: Заменил текст на шаблон) |
|||
(не показано 111 промежуточных версий 7 участников) | |||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE: | {{DISPLAYTITLE:Загрузка прошивок на устройства Wiren Board}} | ||
== Загрузчик прошивок == | |||
В новых версиях наших устройств реализован механизм загрузчика прошивок (bootloader). Он позволяет обновлять микропрограммы устройств/модулей Wiren Board по RS-485/Modbus RTU. | |||
В режиме загрузчика основной функционал устройства отключается. '''Коммуникационные параметры в режиме загрузчика фиксированы и не зависят от значений в памяти устройства: 9600 8N2.''' | |||
== Переход в режим загрузчика == | |||
{{Wbincludes:Bootloader MOD}} | |||
== Автоматическое обновление == | == Автоматическое обновление прошивки с контроллера Wiren Board == | ||
Прошивку устройств, подключенных к контроллеру Wiren Board можно обновить с помощью утилиты [[wb-mcu-fw-updater]]. Утилита проверяет наличие новой версии прошивки для всех подключенных устройств и, при необходимости, обновляет их. | |||
Для установки выполните в консоли: | |||
<syntaxhighlight lang="bash"> | |||
dpkg -s wb-mcu-fw-updater || (apt update && apt install wb-mcu-fw-updater) | |||
</syntaxhighlight> | |||
Утилита автоматически останавливает сервис <code>wb-mqtt-serial</code> перед началом работы и запускает заново после. Если вместо <code>wb-mqtt-serial</code> используется стороннее ПО, опрашивающее устройства по последовательному порту — остановите это ПО. | |||
Для обновления прошивки всех устройств, описанных в разделе Serial Devices Configuration (файл <code>/etc/wb-mqtt-serial.conf</code>), выполните: | |||
<syntaxhighlight lang="bash"> | |||
wb-mcu-fw-updater update-all | wb-mcu-fw-updater update-all | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Для обновления прошивки конкретного устройства, укажите порт и его адрес Modbus: | |||
<syntaxhighlight lang="bash"> | |||
wb-mcu-fw-updater update-fw /dev/ttyRS485-2 -a70 | |||
</syntaxhighlight> | |||
Подробную информацию смотрите в выводе | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
wb-mcu-fw-updater | wb-mcu-fw-updater --help | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<gallery mode="packed" heights="200px"> | |||
File:Wb-fw-mcu-updater example 1.png|Пример работы wb-fw-mcu-updater | |||
</gallery> | |||
=== | == Ручная прошивка устройств == | ||
=== Выбор прошивки === | |||
Прошивки публикуются на сайте [http://fw-releases.wirenboard.com/?prefix=fw/ '''fw-releases.wirenboard.com'''] в виде файлов с расширением '''.wbfw'''. | |||
Прошивки сгруппированы по версиям и сигнатурам (типам) устройств. | |||
Каждое Modbus устройство Wiren Board имеет сигнатуру — наименование аппаратного типа устройства. Перезапись прошивки возможна только при совпадении сигнатур устройства и прошивки. | |||
Сигнатура устройства хранится в формате строки из 12 ASCII символов, по одному символу в регистре, и доступна по адресу 290. | |||
Получить можно командой: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
echo -e $(modbus_client -mrtu -pnone -s2 '''/dev/ttyRS485-1''' -a '''A''' -t3 -r 290 -c 12 | grep Data | sed -e 's/.*Data://' -e 's/ 0x00/\\x/g') | |||
</syntaxhighlight> | </syntaxhighlight> | ||
замените значения <code>/dev/ttyRS485-1</code> на имя устройства шины и '''A''' на адрес устройства. | |||
< | |||
</ | |||
В результате будет выведена строка с сигнатурой, например '''mr6c''' | |||
Прошивку вы можете скачать например с помощью команды <code>wget</code>, для mr6c это будет выглядеть следующим образом: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
wget http://fw-releases.wirenboard.com/fw/by-signature/mr6c/stable/latest.wbfw | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Подключение устройства === | |||
Прошивать устройство лучше по стандартному адресу (на который устройство отвечает из основной программы). | |||
Так же можно прошивать по широковещательному адресу «0», если у вас одно устройство на шине в режиме загрузчика. | |||
Поэтому для прошивки нескольких устройств на шине можно: | |||
#переводить в режим загрузчика (перезагрузкой по питанию или записью в регистр) и прошивать по отдельности с указанием нешироковещательного Modbus-адреса. | |||
#переводить '''по очереди''' в режим загрузчика (перезагрузкой по питанию) и прошивать по адресу 0. | |||
* '''Одновременная прошивка''' устройств невозможна — имеющаяся прошивка на устройствах будет испорчена. | |||
* Перевести устройство в бутлоадер по широковещательному адресу 0 — '''нельзя'''! | |||
*'''При прошивке с контроллера остановите wb-mqtt-serial:'''<pre>service wb-mqtt-serial stop</pre> | |||
* Если вместо <code>wb-mqtt-serial</code> используется стороннее ПО, опрашивающее устройства по последовательному порту - остановите это стороннее ПО | |||
=== Утилита wb-mcu-fw-flasher для прошивки устройств === | |||
Для установки утилиты '''на контроллер Wiren Board''' выполните команды: | |||
<syntaxhighlight lang="bash"> | |||
apt-get update | |||
apt-get install wb-mcu-fw-flasher | |||
</syntaxhighlight> | |||
Версия утилиты для '''MS Windows''': [[Media: Wb-mcu-fw-flasher_1.0.3.zip | Wb-mcu-fw-flasher_1.0.3.zip]] | |||
Для установки на '''компьютер с Debian''' скачайте пакет — [[Media: Wb-mcu-fw-flasher_1.0.3_amd64-all.deb | Wb-mcu-fw-flasher_1.0.3_amd64-all.deb]] | |||
и выполните команды в директории, куда загрузился пакет: | |||
<syntaxhighlight lang="bash"> | |||
apt-get update | |||
apt-get install libmodbus5 | |||
dpkg -i Wb-mcu-fw-flasher_1.0.3_amd64-all.deb | |||
</syntaxhighlight> | |||
Для контроллеров других производителей с процессорами ARM Cortex можно воспользоваться Debian-пакетом для Wiren Board: http://releases.contactless.ru/?prefix=stable/stretch/pool/main/w/wb-mcu-fw-flasher/ | |||
Опции запуска утилиты wb-mcu-fw-flasher: | |||
{| class="wikitable" | |||
! Параметр !! Описание !! Значение по умолчанию | |||
|- | |||
| -d || Устройство последовательного порта ('''обязательно''') || | |||
|- | |||
| -f || Файл прошивки || | |||
|- | |||
| -a || Адрес Modbus || 1 | |||
|- | |||
| -j || Отправить на устройство команду перехода в режим загрузчика || | |||
|- | |||
| -b || Скорость порта (baudrate) || 9600 | |||
|- | |||
| -p || Чётность (parity) || N | |||
|- | |||
| -s || Количество стопбитов || 2 | |||
|- | |||
| -r || Адрес holding-регистра для перехода в режим загрузчика || 129 | |||
|- | |||
| -D || Включить режим отладки || | |||
|- | |||
| -u || Восстановление заводских настроек UART и Modbus адреса || | |||
|- | |||
| -e || Сброс всех настроек до заводских || | |||
|} | |||
Пример (устройство в рабочем режиме): | |||
<syntaxhighlight lang="bash"> | |||
wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 25 -f WB-MR-MR6C_MCU3_3_1.9.4.wbfw | |||
</syntaxhighlight> | |||
Пример для Windows (устройство в рабочем режиме): | |||
<syntaxhighlight lang="bash"> | |||
wb-mcu-fw-flasher.exe -j -d COM10 -a 25 -f WB-MR-MR6C_MCU3_3_1.9.4.wbfw | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Здесь COM10 — имя виртуального последовательного порта, которое присвоено адаптеру USB RS-485. | |||
Пример для устройства с нестандартными настройками UART (со скоростью порта 115200): | |||
<syntaxhighlight lang="bash"> | |||
wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 25 -f WB-MR-MR6C_MCU3_3_1.9.4.wbfw -b 115200 | |||
</syntaxhighlight> | |||
=== Прошивка устройств === | |||
Итого, порядок действий: | |||
#При прошивке с контроллера остановите <code>wb-mqtt-serial</code>. | |||
#Подключите устройство к RS-485. | |||
#Скачайте файл прошивки, например, <code>mr6c__1.14.1_master_19c9ca5.wbfw</code> | |||
#Прошейте устройство утилитой wb-mcu-fw-flasher:<pre>wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 25 -f mr6c__1.14.1_master_19c9ca5.wbfw</pre> | |||
#После успешной прошивки устройство само выйдет из режима загрузчика и перезапустится в основной программе. | |||
Успешный процесс прошивки выглядит так: | |||
<syntaxhighlight lang="bash"> | |||
wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 1 -f mr6c__1.14.1_master_19c9ca5.wbfw | |||
/dev/ttyRS485-1 opened successfully. | |||
Send jump to bootloader command and wait 2 seconds... | |||
Error: Connection timed out. | |||
May be device already in bootloader, try to send firmware... | |||
mr6c__1.14.1_master_19c9ca5.wbfw opened successfully, size 12136 bytes | |||
Sending info block... OK | |||
Sending data block 89 of 89... OK. | |||
All done! | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Пример ошибки при несовпадении сигнатуры: | |||
<pre> | |||
Sending info block... | |||
Error while sending info block: Slave device or server failure | |||
Data format is invalid or firmware signature doesn't match the device | |||
</pre> | |||
Версия 19:58, 14 декабря 2020
Загрузчик прошивок
В новых версиях наших устройств реализован механизм загрузчика прошивок (bootloader). Он позволяет обновлять микропрограммы устройств/модулей Wiren Board по RS-485/Modbus RTU.
В режиме загрузчика основной функционал устройства отключается. Коммуникационные параметры в режиме загрузчика фиксированы и не зависят от значений в памяти устройства: 9600 8N2.
Переход в режим загрузчика
Внимание: Отображаемое название «Загрузчик периферийных устройств Wiren Board» переопределяет ранее заданное отображаемое название «Загрузка прошивок на устройства Wiren Board».
Описание
В периферийных устройствах с Modbus есть прошивка, которая реализует заложенную логику работы. Чтобы прошивку можно было обновлять прямо в инсталляции по RS-485, в устройствах предусмотрен загрузчик (bootloader), который отвечает за инициализацию устройства и обновление прошивки.
В документации на каждое устройство есть раздел «Обновление прошивки», где есть ссылки на инструкцию по обновлению и список изменений. В это статье мы рассмотрим только обновление загрузчика.
Переход устройств в режим загрузчика
Устройство находится в режиме загрузчика в следующих случаях:
- первые 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.
Список изменений
Изменения во всех версиях описаны на странице Список изменений в загрузчике.
Обновление загрузчика
Текущую версию загрузчика можно узнать, считав 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')
Есть несколько способов обновления загрузчика:
С контроллера Wiren Board
Загрузчик обновляется из консоли контроллера Wiren Board утилитой wb-mcu-fw-updater, которой для работы нужен доступ в интернет. Если интернета нет, используйте другой способ.
Учитывайте, что утилита учитывает установленный на контроллер релиз ПО , то есть вы не сможете зашить тестовую версию загрузчика, если на контроллере стабильный релиз.
Перед обновлением загрузчика, обновите прошивку контроллера через apt или другим способом по инструкциям.
Обновление загрузчика одного устройства
Процесс:
- Подключитесь к контроллеру по SSH.
- Запустите команду, заменив в ней порт и адрес:
wb-mcu-fw-updater update-bl /dev/ttyRS485-1 -a1
Утилита считает модель устройства, проверит наличие обновления прошивки загрузчика, скачает обновление и зашьёт его в устройство.
Обновление загрузчика всех устройств
Начиная с версии 1.10.8 утилита wb-mcu-fw-updater умеет в режиме обновление прошивок устройств проверять и версии загрузчика, а потом обновлять его:
- Подключитесь к контроллеру по SSH.
- Запустите команду:
wb-mcu-fw-updater update-bl /dev/ttyRS485-1 -a1
- Если есть новые версии загрузчика для устройств, утилита запросит подтверждение на обновление загрузчика, нужно ответить
y
. Если откажетесь, прошивка обновиться, но загрузчик останется старым.
Пример:
# wb-mcu-fw-updater update-all
2024-04-03 07:17:24,061 Will probe all devices on enabled serial ports of /etc/wb-mqtt-serial.conf:
2024-04-03 07:17:24,063 Probing WB-MAP6S fw2 (port: /dev/ttyRS485-1, slaveid: 26, uart_params: 9600N2, response_timeout: 0.50)...
2024-04-03 07:17:26,460 Update: 2.8.0-rc1 -> 2.8.1 (WB-MAP6S fw2 (26, /dev/ttyRS485-1))
2024-04-03 07:17:27,128 Flashing firmware to WB-MAP6S fw2 (26, /dev/ttyRS485-1)
2024-04-03 07:17:28,073
2024-04-03 07:17:28,073 Bootloader update (v1.3.0 -> v1.4.1) for map6semG16 /dev/ttyRS485-1:26 is available! (bootloader updates are highly recommended to install) Do a bootloader update? [Y/N]
С компьютера и других устройств
Установка утилиты
Если у вас нет контроллера 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=bootloader/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
Известные ошибки
Список известных неисправностей
Автоматическое обновление прошивки с контроллера Wiren Board
Прошивку устройств, подключенных к контроллеру Wiren Board можно обновить с помощью утилиты wb-mcu-fw-updater. Утилита проверяет наличие новой версии прошивки для всех подключенных устройств и, при необходимости, обновляет их.
Для установки выполните в консоли:
dpkg -s wb-mcu-fw-updater || (apt update && apt install wb-mcu-fw-updater)
Утилита автоматически останавливает сервис wb-mqtt-serial
перед началом работы и запускает заново после. Если вместо wb-mqtt-serial
используется стороннее ПО, опрашивающее устройства по последовательному порту — остановите это ПО.
Для обновления прошивки всех устройств, описанных в разделе Serial Devices Configuration (файл /etc/wb-mqtt-serial.conf
), выполните:
wb-mcu-fw-updater update-all
Для обновления прошивки конкретного устройства, укажите порт и его адрес Modbus:
wb-mcu-fw-updater update-fw /dev/ttyRS485-2 -a70
Подробную информацию смотрите в выводе
wb-mcu-fw-updater --help
Ручная прошивка устройств
Выбор прошивки
Прошивки публикуются на сайте fw-releases.wirenboard.com в виде файлов с расширением .wbfw.
Прошивки сгруппированы по версиям и сигнатурам (типам) устройств.
Каждое Modbus устройство Wiren Board имеет сигнатуру — наименование аппаратного типа устройства. Перезапись прошивки возможна только при совпадении сигнатур устройства и прошивки.
Сигнатура устройства хранится в формате строки из 12 ASCII символов, по одному символу в регистре, и доступна по адресу 290. Получить можно командой:
echo -e $(modbus_client -mrtu -pnone -s2 '''/dev/ttyRS485-1''' -a '''A''' -t3 -r 290 -c 12 | grep Data | sed -e 's/.*Data://' -e 's/ 0x00/\\x/g')
замените значения /dev/ttyRS485-1
на имя устройства шины и A на адрес устройства.
В результате будет выведена строка с сигнатурой, например mr6c
Прошивку вы можете скачать например с помощью команды wget
, для mr6c это будет выглядеть следующим образом:
wget http://fw-releases.wirenboard.com/fw/by-signature/mr6c/stable/latest.wbfw
Подключение устройства
Прошивать устройство лучше по стандартному адресу (на который устройство отвечает из основной программы).
Так же можно прошивать по широковещательному адресу «0», если у вас одно устройство на шине в режиме загрузчика.
Поэтому для прошивки нескольких устройств на шине можно:
- переводить в режим загрузчика (перезагрузкой по питанию или записью в регистр) и прошивать по отдельности с указанием нешироковещательного Modbus-адреса.
- переводить по очереди в режим загрузчика (перезагрузкой по питанию) и прошивать по адресу 0.
- Одновременная прошивка устройств невозможна — имеющаяся прошивка на устройствах будет испорчена.
- Перевести устройство в бутлоадер по широковещательному адресу 0 — нельзя!
- При прошивке с контроллера остановите wb-mqtt-serial:
service wb-mqtt-serial stop
- Если вместо
wb-mqtt-serial
используется стороннее ПО, опрашивающее устройства по последовательному порту - остановите это стороннее ПО
Утилита wb-mcu-fw-flasher для прошивки устройств
Для установки утилиты на контроллер Wiren Board выполните команды:
apt-get update
apt-get install wb-mcu-fw-flasher
Версия утилиты для MS Windows: Wb-mcu-fw-flasher_1.0.3.zip
Для установки на компьютер с Debian скачайте пакет — Wb-mcu-fw-flasher_1.0.3_amd64-all.deb и выполните команды в директории, куда загрузился пакет:
apt-get update
apt-get install libmodbus5
dpkg -i Wb-mcu-fw-flasher_1.0.3_amd64-all.deb
Для контроллеров других производителей с процессорами ARM Cortex можно воспользоваться Debian-пакетом для Wiren Board: http://releases.contactless.ru/?prefix=stable/stretch/pool/main/w/wb-mcu-fw-flasher/
Опции запуска утилиты wb-mcu-fw-flasher:
Параметр | Описание | Значение по умолчанию |
---|---|---|
-d | Устройство последовательного порта (обязательно) | |
-f | Файл прошивки | |
-a | Адрес Modbus | 1 |
-j | Отправить на устройство команду перехода в режим загрузчика | |
-b | Скорость порта (baudrate) | 9600 |
-p | Чётность (parity) | N |
-s | Количество стопбитов | 2 |
-r | Адрес holding-регистра для перехода в режим загрузчика | 129 |
-D | Включить режим отладки | |
-u | Восстановление заводских настроек UART и Modbus адреса | |
-e | Сброс всех настроек до заводских |
Пример (устройство в рабочем режиме):
wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 25 -f WB-MR-MR6C_MCU3_3_1.9.4.wbfw
Пример для Windows (устройство в рабочем режиме):
wb-mcu-fw-flasher.exe -j -d COM10 -a 25 -f WB-MR-MR6C_MCU3_3_1.9.4.wbfw
Здесь COM10 — имя виртуального последовательного порта, которое присвоено адаптеру USB RS-485.
Пример для устройства с нестандартными настройками UART (со скоростью порта 115200):
wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 25 -f WB-MR-MR6C_MCU3_3_1.9.4.wbfw -b 115200
Прошивка устройств
Итого, порядок действий:
- При прошивке с контроллера остановите
wb-mqtt-serial
. - Подключите устройство к RS-485.
- Скачайте файл прошивки, например,
mr6c__1.14.1_master_19c9ca5.wbfw
- Прошейте устройство утилитой wb-mcu-fw-flasher:
wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 25 -f mr6c__1.14.1_master_19c9ca5.wbfw
- После успешной прошивки устройство само выйдет из режима загрузчика и перезапустится в основной программе.
Успешный процесс прошивки выглядит так:
wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 1 -f mr6c__1.14.1_master_19c9ca5.wbfw
/dev/ttyRS485-1 opened successfully.
Send jump to bootloader command and wait 2 seconds...
Error: Connection timed out.
May be device already in bootloader, try to send firmware...
mr6c__1.14.1_master_19c9ca5.wbfw opened successfully, size 12136 bytes
Sending info block... OK
Sending data block 89 of 89... OK.
All done!
Пример ошибки при несовпадении сигнатуры:
Sending info block... Error while sending info block: Slave device or server failure Data format is invalid or firmware signature doesn't match the device