Заменил контроллер с 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 на отдельный порт, попробуйте опросить только устройства на этом порту, по инструкции Modbus-адрес устройства Wiren Board — Wiren Board, в этой же инструкции есть про восстановление доступа к устройству.
/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-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”) - уже можно заливать прошивку.