Обновление диммера WB-MDM3

Доброго дня!

Попробовал обновить прошивку диммера WB-MDM3 подключенного к преобразователю интерфейсов WB-MGE v.2. Выполнил необходимые настройки на стороне преобразователя. Далее выполнил команды в разных ssh-сессиях:

socat -d -d -d -x PTY,raw,b9600,parenb=0,cstopb=2,cs8,link=/dev/ttyRS485-5 tcp:192.168.1.202:502
wb-mcu-fw-flasher -j -d /dev/ttyRS485-5 -a12 -f ./mdm3G26__2.7.0_master_5fb583a.wbfw

wb-mcu-fw-flasher успешно записал 2 пакета, после чего вывел сообщение о таймауте соединения.
Как итог, диммер находится в режиме загрузчика (светодиод постоянно мигает при подключении питания). Безуспешно пробовал восстановить доступ к модулю командой:
wb-mcu-fw-flasher -d /dev/ttyRS485-5 -a0 -u

Какие есть пути решения данной проблемы?

Добрый день.
Какая скорость настроена для rs-485 шлюза?
Отличается ли от 9600 на которой работает bootloader?

Я перед обновлением настроил скорость 9600, диммер также настроил на 9600. Убедился в этом включив/выключив свет командами modbus_client.

Так, отлично.
Прочитайте пожалуйста из диммера сигнатуру, так: Нет связи с WB-MSW v.3 по Modbus - #2 от пользователя BrainRoot - для проверки связи с ним.

modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-5 -a12 -t0x03 -r290 -c 12
Opening /dev/ttyRS485-5 at 9600 bauds (N, 8, 2)
[0C][03][01][22][00][0C][E5][24]
Waiting for a confirmation...
<00><00><00><00><00>
ERROR CRC received 0x0 != CRC calculated 0x71C0
ERROR occured!

Это точно некорректный ответ. А диммер за MGE один? На его шине есть еще устройства? Причина получения нулей, возможная - то, что устройства за шлюзом опрашивает кто-то еще.
Попробуйте прочитать его несколько раз, если есть другие устройства - то сигнатуру с них тоже, чтение ее возможно как из устройств в нормальном режиме так и находящихся в загрузчике.

Диммер на шине один, остальные устройства отключены физически. Множество раз пробовал прочитать сигнатуру, вывод команды не меняется.

Да, сразу не спросил - а какой серийный номер у диммера?
Файл прошивки должен соответствовать сигнатуре, ее можно определить и по номеру.

137209

Да, сигнатура mdm3G26
Есть ли возможность подключить диммер напрямую, без шлюза?
Кстати, если читать сигнатуру с несуществующего, отключенного адреса - ответ тоже нули или таймаут?
предполагаю что диммер просто поменяем по гарантии.

Подключить диммер без шлюза возможности нет, к сожалению. Если читать сигнатуру с несуществующего адреса, то отдаёт тоже нули.

Правильно ли я понимаю, что использование WB-USB485 значительно сокращает вероятность подобных ошибок?

Добрый день!

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

У меня была похожая ситуация, по моему если задать параметр “-u” настройки устройства сбрасываются, в том числе и адрес (становится равным 1).

Пробовал. Не помогло.

В таком случае - явно что проблема связи То есть в указанный порт сыплются нули просто так. если выключить диимер, отключить его от шины - так же?

Да, я перезагружал и диммер, и преобразователь интерфейсов. Выключал и включал их. Пока всё безрезультатно.

Я про следующий после эксперимента с чтением с неверного устройства шаг - прочитать при неподключенном устройстве. Сейчас выглядит как что-то пишущее в шину нули. Непонятно, на каком этапе, кстати. А терминатор на RS-485 шине от шлюза есть?

Терминатора нет. Схема шины простая. Преобразователь и за ним шесть диммеров WB-MDM3.

Попробовал воспроизвести, не отключая опрос.
получил:

modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-8 -a13 -t0x03 -r 290 -c 12
Opening /dev/ttyRS485-8 at 9600 bauds (N, 8, 2)
[0D][03][01][22][00][0C][E4][F5]
Waiting for a confirmation...
ERROR Resource temporarily unavailable: read
<FF><FF>ERROR occured!
root@wirenboard-AWI3MCGC:~# modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-8 -a13 -t0x03 -r 290 -c 12
Opening /dev/ttyRS485-8 at 9600 bauds (N, 8, 2)
[0D][03][01][22][00][0C][E4][F5]
Waiting for a confirmation...
ERROR Resource temporarily unavailable: read
<0D><03><18><00><69><00><36><00><00><00><FF><FF>ERROR occured!
root@wirenboard-AWI3MCGC:~# modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-8 -a13 -t0x03 -r 290 -c 12
Opening /dev/ttyRS485-8 at 9600 bauds (N, 8, 2)
[0D][03][01][22][00][0C][E4][F5]
Waiting for a confirmation...
<00><6D><00><61><00>
ERROR CRC received 0x6100 != CRC calculated 0x5D50
ERROR occured!
root@wirenboard-AWI3MCGC:~# modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-8 -a13 -t0x03 -r 290 -c 12
Opening /dev/ttyRS485-8 at 9600 bauds (N, 8, 2)
[0D][03][01][22][00][0C][E4][F5]
Waiting for a confirmation...
ERROR Resource temporarily unavailable: read
<0D><03><18><61><00><69><00><36><00><00><00><00><00><00><00><FF><FF><FF>ERROR occured!
root@wirenboard-AWI3MCGC:~# modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-8 -a13 -t0x03 -r 290 -c 12
Opening /dev/ttyRS485-8 at 9600 bauds (N, 8, 2)
[0D][03][01][22][00][0C][E4][F5]
Waiting for a confirmation...
ERROR Resource temporarily unavailable: read
<0D><03><18><00><77>ERROR occured!

Предполагаю что по шине идет обмен, если я опрос останавливаю успешных чтений 100/100.

У меня нечему опрашивать шину. Всё, что могло опрашивать, остановлено. С шиной через преобразователь работает Home Assistant. Я остановил все контейнеры и сам сервис docker. Нулей в Вашем выводе нет. Есть ошибка чтения из-за недоступности устройства.