Errors while working with wb-mcu-fw-updater

День добрый.

Первый раз попробовал обновить прошивку WB-MR6C v.2 c помощью wb-mcu-fw-updater и сразу возникли некоторые ошибки при работе с ней.

  1. Попробовал обновить устройство в автоматическом режиме согласно инструкции:
Welcome to Wiren Board  (s/n AP4TK6D), release wb-2108 (as testing)
Linux wb 4.9.22-wb1 #2 Thu May 20 15:58:00 UTC 2021 armv5tejl GNU/Linux

Last login: Tue Aug 31 11:52:31 2021 from 192.168.80.22
root@wb:~# service wb-mqtt-serial stop
root@wb:~# wb-mcu-fw-updater update-all
2021-09-03 06:23:47,585 Will probe all devices defined in /etc/wb-mqtt-serial.conf
2021-09-03 06:23:47,630 Unhandled exception!
Traceback (most recent call last):
  File "/usr/bin/wb-mcu-fw-updater", line 200, in <module>
args.func(args)
  File "/usr/bin/wb-mcu-fw-updater", line 98, in update_all
update_monitor._update_all(force=args.force)
  File "/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py", line 251, in _update_all
alive, in_bootloader, dummy_records, too_old_devices = probe_all_devices(CONFIG['SERIAL_DRIVER_CONFIG_FNAME'])
  File "/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py", line 227, in probe_all_devices
for port, port_params in get_devices_on_driver(driver_config_fname).items():
  File "/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py", line 82, in get_devices_on_driver
devices_on_port.append([device_name, int(slaveid)])
ValueError: invalid literal for int() with base 10: '112:1'

Похоже, что ей не понравился адрес устройства подключеного к WB-MIO и в итоге вылет…

  1. Попробовал обновить конкретное устройство:
root@wb:~# wb-mcu-fw-updater update-fw /dev/ttyRS485-1 -a11
2021-09-03 06:53:39,046 Will find serial port settings for (/dev/ttyRS485-1 : 11)...
2021-09-03 06:53:39,233 Has found serial port settings: {'baudrate': 9600, 'parity': 'N', 'stopbits': 2}
2021-09-03 06:53:40,504 Firmware will be upgraded. Will flash (1.16.2) over (1.15.2).
Error while sending data block: Connection timed out
Sending data block 1 of 110...Error while sending data block: Connection timed out
...
Sending data block 108 of 110...Error while sending data block: Connection timed out
Sending data block 109 of 110...Error while sending data block: Connection timed out
2021-09-03 06:55:51,739 Successfully flashed firmware (1.16.2) over (1.15.2)
2021-09-03 06:55:51,760 Done

Процесс выглядит печаль (чудом не прервал его), но какое было удивление, когда повторный вызов выдал следующее:

root@wb:~# wb-mcu-fw-updater update-fw /dev/ttyRS485-1 -a11
2021-09-03 06:56:16,620 Will find serial port settings for (/dev/ttyRS485-1 : 11)...
2021-09-03 06:56:16,875 Has found serial port settings: {'parity': 'N', 'baudrate': 9600, 'stopbits': 2}
2021-09-03 06:56:18,240 Firmware is already the newest version (1.16.2), will not update. Use -f to force.
2021-09-03 06:56:18,258 Done

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

Данную проблему разработчики устранили в версии 1.0.9. Утилита не будет выдавать ошибку при наличии сконфигурированных боковых модулей MIO.

Разработчики сказали, что все должно быть нормально. Проверьте, работает ли устройство.

Все вроде работает, но

Error while sending data block: Connection timed out

из второго пункта при обновлении все-таки пугает.

Постараюсь сегодня уточнить этот вопрос.

При записи прошивки утилита не смогла записать блок с первого раза и сообщила об этом. Однако смогла записать со второго или третьего раза. Это может быть вызвано проблемами с шиной RS-485. В целом если в конце сообщение об успешном завершении - значит все нормально. Но шину советовал бы проверить.

“шина” длиной всего 20-30 см. Alarm кабель обжатый наконечниками. Не думаю, что с этим проблемы. Прошивал 8 реле и ни разу не увидел сообщения, что хоть один блок записался без ошибок. Может это из-за WB5.3?