WB-MDM3 ошибка при обновлении

Заменил контроллер с WB6 на WB7, после настройки решил обновить все подключенные устройства… Все устройства обновились, кроме MDM3… Во время обновления (update-all) выкинуло при достижении 55%… Судя по лампочке на устройстве - оно сейчас в режиме загрузчика…

Ситуация похожа на эту,

но только почему-то устройство не отвечает в режиме загрузчика…

1) Перевёл порт на скорость 9600
2) пробал все известные мне методы восстановления:
wb-mcu-fw-updater recover /dev/ttyRS485-1 -a 38
2023-02-04 14:28:44,708 Device (38 /dev/ttyRS485-1) is not in bootloader mode! Check connection or slaveid/port

wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a38 -f
/dev/ttyRS485-1 opened successfully.
latest.wbfw opened successfully, size 21384 bytes
Sending info block…
Error while sending info block: Connection timed out

wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a38 -f latest.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, check status led
latest.wbfw opened successfully, size 21384 bytes
Sending info block…
Error while sending info block: Connection timed out

wb-mcu-fw-updater update-fw /dev/ttyRS485-1 -a38
2023-02-04 15:05:58,525 Will find serial port settings for (/dev/ttyRS485-1 : 38; response_timeout: 0.20)…

3) Пробовал обновлять одновременно с включением питания.

wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a38 -f latest.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, check status led
latest.wbfw opened successfully, size 21384 bytes

Подскажите есть ли идеи как восстановить работу устройства?

WB7 HW Revision 7.3.4
S/N AARWGVX5
Batch No 7.3.4A/1 674

MDM3 FW Version 2.3.0

Добрый день. Подключите MDM3 на отдельный порт, попробуйте опросить только устройства на этом порту, по инструкции Modbus-адрес устройства Wiren Board — Wiren Board, в этой же инструкции есть про восстановление доступа к устройству.

К сожалению безрезультатно((

wb-mcu-fw-flasher -d /dev/ttyRS485-1 -a0 -u

/dev/ttyRS485-1 opened successfully.
Send reset UART settings and modbus address command…
Error: Connection timed out.
To flash FW on running device, run
wb-mcu-fw-flasher -d -a <modbus_addr> -j -u -f <firmware.wbfw>

Попробуйте повторно запустить

wb-mcu-fw-updater update-all

Пришлите лог работы во время прошивки.

Через какое время после подачи питания?

Простите за долгий ответ. Я на этом объекте бываю редко.

Пробовал одновременно, через секунду, через 2 секунды, через 5.

root@wirenboard-AARWGVX5:/mnt/data/root# wb-mcu-fw-updater update-all
2023-03-07 20:00:32,642 Will probe all devices on enabled serial ports of /etc/wb-mqtt-serial.conf:
2023-03-07 20:00:32,647 Probing WB-MSW v.3 (port: /dev/ttyRS485-2, slaveid: 16, uart_params: 19200N2, response_timeout: 0.50)…
2023-03-07 20:00:32,897 Probing WB-MR6C (port: /dev/ttyRS485-1, slaveid: 15, uart_params: 9600N2, response_timeout: 0.50)…
2023-03-07 20:00:40,471 Probing WB-MDM3 (port: /dev/ttyRS485-1, slaveid: 38, uart_params: 9600N2, response_timeout: 0.50)…
2023-03-07 20:00:48,044 Probing WB-MR6CU (port: /dev/ttyRS485-1, slaveid: 35, uart_params: 9600N2, response_timeout: 0.50)…
2023-03-07 20:00:55,619 Probing WB-MAP3E fw2 (port: /dev/ttyRS485-1, slaveid: 240, uart_params: 9600N2, response_timeout: 0.50)…
2023-03-07 20:01:05,102 Update skipped: 4.22.0 → 4.22.0 (WB-MSW v.3 (16, /dev/ttyRS485-2))
2023-03-07 20:01:05,103 Not updated:
2023-03-07 20:01:05,104 WB-MSW v.3 (16, /dev/ttyRS485-2)
2023-03-07 20:01:05,105 You may try to run with “–force” or “–allow-downgrade” arg
2023-03-07 20:01:05,106 No answer from:
2023-03-07 20:01:05,107 WB-MR6C (15, /dev/ttyRS485-1); WB-MDM3 (38, /dev/ttyRS485-1); WB-MR6CU (35, /dev/ttyRS485-1); WB-MAP3E fw2 (240, /dev/ttyRS485-1)
2023-03-07 20:01:05,108 Devices are possibly disconnected
2023-03-07 20:01:05,109 0 upgraded, 1 skipped upgrade, 0 stuck in bootloader, 4 disconnected and 0 too old for any updates.

К первому порту подключен только диммер.

wb-mcu-fw-flasher
работает на 9600, всегода, как и загрузчик.
Я бы поступил так: Подключил одно устройство на порт.
Удостоверился в том, что загрузчик отвечает.
Для этого проще всего применить чуть модифицированный подход:

for i in {1..247}; do echo -n "$i - "; D=`modbus_client -mrtu /dev/ttyRS485-1 --debug -b9600 -pnone -s2 -a$i -t3 -o100 -r290 -c12 2>/dev/null | grep Data: | awk 'gsub("Data:","")' | sed -e 's/0x00/\\\x/g' -e 's/\s//g'`; echo -e $D; done

Обратите внимание, читаем с 290 регистра именно 12 holding одним запросом.
То есть устройство в загрузчике - все равно отвечает на запросы, но не на все.
После того как устройство определено (адрес после сброса меняется на “1”) - уже можно заливать прошивку.