39 модуль (тот, что в статусе “ошибка”, но релюхами щелкал) - подключил к WB7 на стабильном релизе. Смог поправить ему скорость на 9600 и прошить файлом прошивки версии 1.20.2 - модуль после этого “ожил”, при сканировании уже адекватно показывает название модуля и его номер прошивки. Вернул его в основную систему - он заработал нормально.
А вот устройства с адресами 83 и 87 так оживить не удалось. Скорость обмена поменять на 9600 удается (видно в результатах сканирования), но вот прошивку залить не удается.
root@wirenboard-A3PMMDG4:/tmp# wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 87 -f ./mrps6G__1.20.2_master_83b2af3.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
./mrps6G__1.20.2_master_83b2af3.wbfw opened successfully, size 21248 bytes
Sending info block...
Error while sending info block: Illegal data address
Not in bootloader mode? Try repeating with -j
root@wirenboard-A3PMMDG4:
Эти модули уже правильно отображают свое название и версию прошивки. Два других - в странном коматозе. Вроде как есть (сканируются же), но не управляются (реле не щелкают), криво выводятся в результатах сканирования и не прошиваются.
Сделал попытку прошить бутлоадер - тоже безрезультатно:
root@wirenboard-A3PMMDG4:/tmp# wb-mcu-fw-updater update-bl -a 87 /dev/ttyRS485-1
2024-03-06 12:57:04,610 Will find serial port settings for (/dev/ttyRS485-1 : 87; response_timeout: 0.20)...
2024-03-06 12:57:53,344 Will find bootloader port settings for (/dev/ttyRS485-1 : 87; response_timeout: 0.20)...
2024-03-06 12:58:00,900 Has found bootloader port settings: {'baudrate': 9600, 'parity': 'N', 'stopbits': 2}
2024-03-06 12:58:00,904 Device (/dev/ttyRS485-1 87; response_timeout: 0.20s) supposed to be alive, but found in bootloader
2024-03-06 12:58:01,442 Will flash bootloader v:latest to bring mrps6G (/dev/ttyRS485-1 87; response_timeout: 0.20s) alive
2024-03-06 12:58:01,763 Flashing /var/lib/wb-mcu-fw-updater/bootloader/wb-bootloader-updater_mrps6G__1.4.0_master_c654e11.wbfw
2024-03-06 12:58:32,348 Flashing bootloader to (/dev/ttyRS485-1 87; response_timeout: 0.20s) has failed!
2024-03-06 12:58:32,349
root@wirenboard-A3PMMDG4:
Важно! Перезапускаю модуль в режим обновления прошивки на скорости 9600, так как bootloader старый ну и прошиваю новый:
modbus_client --debug -mrtu -pnone -s2 -b115200 /dev/ttyRS485-1 -a93 -t0x6 -r129 1
Data to write: 0x1
Opening /dev/ttyRS485-1 at 115200 bauds (N, 8, 2)
[5D][06][00][81][00][01][14][BE]
Waiting for a confirmation...
<5D><06><00><81><00><01><14><BE>
SUCCESS: written 1 elements!
wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 93 -f ./1.4.0.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
./1.4.0.wbfw opened successfully, size 4928 bytes
Sending info block... OK
Sending data block 36 of 36... OK.
All done!
Загружаю прошивку:
wb-mcu-fw-flasher -d /dev/ttyRS485-1 -a 93 -f ./1.21.1.wbfw
/dev/ttyRS485-1 opened successfully.
./1.21.1.wbfw opened successfully, size 29272 bytes
Sending info block... OK
Sending data block 215 of 215... OK.
All done!
root@wirenboard-A3PMMDG4:~# modbus_client --debug -mrtu -pnone -s2 -b115200 /dev/ttyRS485-1 -a87 -t0x6 -r129 1
Data to write: 0x1
Opening /dev/ttyRS485-1 at 115200 bauds (N, 8, 2)
[57][06][00][81][00][01][14][14]
Waiting for a confirmation...
ERROR Connection timed out: select
ERROR occured!
root@wirenboard-A3PMMDG4:~# modbus_client --debug -mrtu -pnone -s2 -b9600 /dev/ttyRS485-1 -a87 -t0x6 -r129 1
Data to write: 0x1
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[57][06][00][81][00][01][14][14]
Waiting for a confirmation...
ERROR Connection timed out: select
ERROR occured!
root@wirenboard-A3PMMDG4:~# wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 87 -f ./1.4.0.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
./1.4.0.wbfw opened successfully, size 4928 bytes
Sending info block...
Error while sending info block: Illegal data address
Not in bootloader mode? Try repeating with -j
root@wirenboard-A3PMMDG4:~#
При этом модуль я перевел предварительно на 9600, что видно при сканировании:
root@wirenboard-A3PMMDG4:~# wb-mcu-fw-flasher -d /dev/ttyRS485-1 -a 87 -f ./1.21.1.wbfw
/dev/ttyRS485-1 opened successfully.
./1.21.1.wbfw opened successfully, size 29272 bytes
Sending info block...
Error while sending info block: Illegal data address
Not in bootloader mode? Try repeating with -j
root@wirenboard-A3PMMDG4:~#
root@wirenboard-A3PMMDG4:~# wb-mcu-fw-updater update-bl --force -a 87 /dev/ttyRS485-1
2024-03-07 06:42:33,602 Will find serial port settings for (/dev/ttyRS485-1 : 87; response_timeout: 0.20)...
2024-03-07 06:43:22,361 Will find bootloader port settings for (/dev/ttyRS485-1 : 87; response_timeout: 0.20)...
2024-03-07 06:43:29,922 Has found bootloader port settings: {'baudrate': 9600, 'parity': 'N', 'stopbits': 2}
2024-03-07 06:43:29,923 Device (/dev/ttyRS485-1 87; response_timeout: 0.20s) supposed to be alive, but found in bootloader
2024-03-07 06:43:30,467 Will flash bootloader v:latest to bring mrps6G (/dev/ttyRS485-1 87; response_timeout: 0.20s) alive
2024-03-07 06:43:30,758 Flashing /var/lib/wb-mcu-fw-updater/bootloader/wb-bootloader-updater_mrps6G__1.4.0_master_c654e11.wbfw
2024-03-07 06:44:01,341 Flashing bootloader to (/dev/ttyRS485-1 87; response_timeout: 0.20s) has failed!
2024-03-07 06:44:01,342
root@wirenboard-A3PMMDG4:~#
Как видно, тоже безуспешно хотя контроллер считает модуль alive
Делаю:
#Сигнатура
echo -e $(modbus_client -mrtu -pnone -s2 -b9600 /dev/ttyRS485-1 -a 87 -t3 -r 290 -c 12 | grep Data | sed -e 's/.*Data://' -e 's/ 0x00/\\x/g')
mrps6G
#Версия загрузчика:
echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-1 -a87 -t0x03 -r330 -c8 | grep Data | sed -e 's/.*Data://' -e 's/ 0x00/\\x/g')
1.4.0
# Прошивка https://fw-releases.wirenboard.com/fw/by-signature/mrps6G/main/1.21.1.wbfw
wb-mcu-fw-flasher -d /dev/ttyRS485-1 -D -j -B 9600 -a 87 -f ./1.21.1.wbfw
/dev/ttyRS485-1 opened successfully.
Send jump to bootloader command and wait 2 seconds...
[57][06][00][81][00][01][14][14]
Waiting for a confirmation...
ERROR Connection timed out: select
Error: Connection timed out.
May be device already in bootloader, check status led
./1.21.1.wbfw opened successfully, size 23288 bytes
Sending info block...[57][10][10][00][00][10][20][84][0F][A0][6D][05][B6][92][5C][90][FF][41][E2][75][4C][BB][F7][65][E5][D2][A3][9D][2C][89][F5][C5][55][3F][02][C1][C2][3E][94][45][85]
Waiting for a confirmation...
<57><90><02><2D><D1>
ERROR Illegal data address
Error while sending info block: Illegal data address
Пытаюсь перешить на старый bootloader:
wb-mcu-fw-flasher -d /dev/ttyRS485-1 -D -j -B 9600 -a 87 -f ./1.3.0.wbfw
/dev/ttyRS485-1 opened successfully.
Send jump to bootloader command and wait 2 seconds...
[57][06][00][81][00][01][14][14]
Waiting for a confirmation...
ERROR Connection timed out: select
Error: Connection timed out.
May be device already in bootloader, check status led
./1.3.0.wbfw opened successfully, size 8736 bytes
Sending info block...[57][10][10][00][00][10][20][C1][FE][BC][41][44][76][EA][E3][DF][50][46][98][4C][50][8E][8F][51][95][77][AC][FE][A7][1A][B2][34][F3][6B][96][43][EE][2C][CF][22][72]
Waiting for a confirmation...
ERROR Connection timed out: select
Error while sending info block: Connection timed out
[57][10][10][00][00][10][20][C1][FE][BC][41][44][76][EA][E3][DF][50][46][98][4C][50][8E][8F][51][95][77][AC][FE][A7][1A][B2][34][F3][6B][96][43][EE][2C][CF][22][72]
Waiting for a confirmation...
несколько неожиданно, проконсультируюсь, возможно поменяем модуль.