Использование собственных прошивок на WB-MGE v.3
Описание
С завода модуль прошит заводским программным обеспечением, которое реализует функции шлюза с возможностью обновлять прошивку через веб-интерфейс.
Эта страница описывает использование собственных прошивок на железе модуля WB-MGE v.3. Документация пользователя на модуль доступна по ссылке WB-MGE v.3 Modbus Ethernet Gateway.
В гарантию принимаются модули с заводской прошивкой. Если вы в результате экспериментов со своей прошивкой обнаружили проблему в железе модуля, верните заводскую прошивку, добейтесь воспроизведения проблемы на ней и обратитесь в техподдержку.
Запись прошивки
Для прошивки можно использовать утилиту esptool или аналог. Конвертер USB-UART на базе CH343 встроен в устройство.
Проверить связь можно запросив идентификатор чипа, пример:
$ esptool.py -p /dev/ttyACM0 -b 115200 chip_id
esptool.py v4.8.1
Serial port /dev/ttyACM0
Connecting......
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting.....
Detecting chip type... ESP32
Chip is ESP32-U4WDH (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, Embedded Flash, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 2c:bc:bb:31:8b:00
Uploading stub...
Running stub...
Stub running...
Warning: ESP32 has no Chip ID. Reading MAC instead.
MAC: 2c:bc:bb:31:8b:00
Hard resetting via RTS pin...
Примеры DIY прошивок
Чтобы было проще начать, мы подготовили примеры конфигураций для популярной платформы ESPHome. Они просто демонстрируют работу с железом и не имеют ничего общего с оригинальной прошивкой WB-MGE v.3.
Ссылка: https://github.com/wirenboard/wb-mge-v3-diy-firmware-demo
GPIO и интерфейсы
Ниже даны таблицы с подключением интерфейсных модулей и адреса выходов расширителя.
Важно! Внутри модуля к RS485-2 подключена MIO-часть на STM32, которая работает по протоколу Modbus RTU и занимает Modbus-адрес, указанный на этикетке устройства. Вы можете отключить MIO-часть соответствующим GPIO.
| ESP32 | GPIO18 | GPIO23 | GPIO0 | GPIO5 | GPIO19 | GPIO22 | GPIO21 | GPIO25 | GPIO26 | GPIO27 |
|---|---|---|---|---|---|---|---|---|---|---|
| RTL8201FI | MDIO | MDC | CLK | RST | TXD0 | TXD1 | TXEN | RXD0 | RXD1 | CRS_DV |
| TCA9555 | SDA | SCL | PD00 | PD01 | PD02 | PD03 | PD04 | PD05 | PD06 | PD07 | PD10 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ESP32 | GPIO32 | GPIO33 | |||||||||
| RS485-1 | терминатор ON | растяжка ON | |||||||||
| RS485-2 | терминатор ON | растяжка ON | |||||||||
| MIO | OFF | ||||||||||
| VOut и LED VOut | ON | ||||||||||
| LED Wi-Fi | OFF | ||||||||||
| LED Eth | OFF | ||||||||||
| Status | ON |
В табличке выше ON означает, что подача логической единицы на порт включает тот или иной узел. Для светодиода Status, если порт будет в HiZ состоянии, светодиод будет включен. TCA9555 имеет на шине стандартный адрес 0x20.
| ESP32 | GPIO10 | GPIO9 | GPIO4 | GPIO14 | GPIO12 | GPIO15 |
|---|---|---|---|---|---|---|
| RS485-1 | TX | RX | RTS | |||
| RS485-2 | TX | RX | RTS |
В данном случае для ESP32 RX является входом, а TX выходом.
| ESP32 | GPIO34 |
|---|---|
| Config (B1) | + |
В данном случае кнопка при нажатии подает на порт ESP32 логический ноль.
Возврат заводской прошивки
Если надо, вы можете вернуть заводскую прошивку. Гарантия на устройство при этом сохраняется.
Очистите флешку от экспериментов:
esptool.py --chip esp32 --port /dev/ttyACM0 erase_flash
Скачайте файлы прошивок:
- factory_mge.bin — разметит флешку и поднимет веб-интерфейс для загрузки основной прошивки.
- mge_main.bin — основная прошивка с функциями шлюза.
Прошейте factory-прошивку, замените имя factory_mge.bin на имя скачанного файла:
esptool.py --chip esp32 -p /dev/ttyACM0 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 4MB 0x0 factory_mge.bin
Основную прошивку mge_main.bin можно прошить двумя способами:
- Через веб-интерфейс в режиме Factory, читайте про режим в разделе «Обновление прошивки и сброс настроек».
- Через USB-интерфейс:
- Прошить файл в раздел OTA_0, замените имя
mge_main.binна имя скачанного файла:esptool.py --chip esp32 -p /dev/ttyACM0 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 4MB 0x90000 mge_main.bin
- Активировать загрузку из раздела OTA_0:
otatool.py --port /dev/ttyACM0 --baud 460800 switch_ota_partition --slot 0
- Прошить файл в раздел OTA_0, замените имя