Ошибка при обновлении загрузчика и прошивки WB-MR6Cv2

Доброго времени суток. пытаюсь обновить загрузчик и прошивки на контроллерах WB-MR6Cv2. На всех, кроме одного все прошло успешно. по одному из контроллеров (его меняли по гарантии) возникает ошибка. пробовал и обновить только прошивку и загрузчик с прошивкой.
команда:

wb-mcu-fw-updater update-bl /dev/ttyRS485-2 -a21 --force --debug

возникающая ошибка:

2023-11-07 23:36:08,282 Has found serial port settings: {'baudrate': 115200, 'parity': 'N', 'stopbits': 2}
2023-11-07 23:36:08,639 /dev/ttyRS485-2 21:
2023-11-07 23:36:08,993         WBMR6C 118136  1.18.5 2444554
2023-11-07 23:36:09,123 Removing device: {'slaveid': 21, 'port': '/dev/ttyRS485-2', 'fw_signature': '\x01'}
2023-11-07 23:36:09,243 bootloader version has specified manually: latest
2023-11-07 23:36:09,253 Retrieving latest bootloader version number for
2023-11-07 23:36:09,260 GET: http://fw-releases.wirenboard.com/bootloader/by-signature//main/latest.txt
2023-11-07 23:36:09,268 Flashing bootloader to (/dev/ttyRS485-2 21; response_timeout: 0.20s) has failed!
2023-11-07 23:36:09,274
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/wb_mcu_fw_updater/fw_downloader.py", line 47, in read_remote_file
    ret = get_request(url_path)
  File "/usr/lib/python3/dist-packages/wb_mcu_fw_updater/fw_downloader.py", line 38, in get_request
    return urllib.request.urlopen(url_path)
  File "/usr/lib/python3.9/urllib/request.py", line 214, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.9/urllib/request.py", line 517, in open
    response = self._open(req, data)
  File "/usr/lib/python3.9/urllib/request.py", line 534, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
  File "/usr/lib/python3.9/urllib/request.py", line 494, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.9/urllib/request.py", line 1375, in http_open
    return self.do_open(http.client.HTTPConnection, req)
  File "/usr/lib/python3.9/urllib/request.py", line 1346, in do_open
    h.request(req.get_method(), req.selector, req.data, headers,
  File "/usr/lib/python3.9/http/client.py", line 1255, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/lib/python3.9/http/client.py", line 1266, in _send_request
    self.putrequest(method, url, **skips)
  File "/usr/lib/python3.9/http/client.py", line 1100, in putrequest
    self._validate_path(url)
  File "/usr/lib/python3.9/http/client.py", line 1200, in _validate_path
    raise InvalidURL(f"URL can't contain control characters. {url!r} "
http.client.InvalidURL: URL can't contain control characters. '/bootloader/by-signature/\x01/main/latest.txt' (found at least '\x01')

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

Добрый день.
Проверьте пожалуйста какой релиз ПО на контроллере. Подозреваю что довольно старый.
https://fw-releases.wirenboard.com/bootloader/by-signature/main/ - отсутствует уже примерно год.

1 Like

Добрый день. вроде не такой старый:

Release name

wb-2307

Release suite

stable

кажется, что так быть не должно:
{ ‘fw_signature’: ‘\x01’}

А прочитайте пожалуйста с этого устройства (21 адрес на /dev/ttyRS485-2) так: Репозиторий прошивок для Modbus-устройств Wiren Board — Wiren Board

Пытаюсь прочесть, но символы нечитаемые. может быть команда некорректна. помогите, пожалуйста, ее проверить: скорость 115200, N (8+2)

echo -e $(modbus_client -mrtu -pnone -s2 -b115200 /d ev/ttyRS485-2 -a 21 -t3 -r 290 -c 12 | grep Data | sed -e ‘s/.*Data://’ -e ‘s/ 0 x00/\x/g’)

выдача:
▒▒

А зачем тут пробел?
Также проверьте, точно ли остановлен wb-mqtt-seriаl? Вообще - довольно интересно, может быть дадите доступ к контроллеру - посмотрю сам?