Benutzerdefinierte Firmware und GPIO für WB-MGE v.3
Beschreibung
Das Modul wird mit werkseitiger Firmware ausgeliefert, die Gateway-Funktionen bereitstellt und Aktualisierungen über die Weboberfläche unterstützt.
Diese Seite beschreibt den Betrieb angepasster Firmware auf der Hardware von WB-MGE v.3. Das Benutzerhandbuch ist hier verfügbar: Modbus-Ethernet-Gateway WB-MGE v.3.
Garantieansprüche werden für Module mit werkseitiger Firmware akzeptiert. Zeigen Experimente mit eigener Firmware ein Hardwareproblem, stellen Sie die werkseitige Firmware wieder her, reproduzieren Sie das Problem damit und wenden Sie sich an den technischen Support.
Firmware flashen

Verwenden Sie zum Flashen das Programm esptool oder ein gleichwertiges Werkzeug. Im Gerät ist ein USB-UART-Konverter auf CH343-Basis eingebaut.
Prüfen Sie die Kommunikation durch Abfragen der Chipkennung, beispielsweise:
$ 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...
Beispiele für eigene Firmware
Als Einstieg stellen wir Beispielkonfigurationen für die verbreitete ESPHome-Plattform bereit. Sie zeigen ausschließlich den Hardwarezugriff und haben keinen Bezug zur ursprünglichen Firmware des WB-MGE v.3.
Link: https://github.com/wirenboard/wb-mge-v3-diy-firmware-demo
GPIO und Schnittstellen
Die folgenden Tabellen zeigen die Anschlüsse der Schnittstellenmodule und die Ausgangszuordnung des Portexpanders.
Wichtig! An RS485-2 ist ein interner STM32-basierter MIO-Bereich angeschlossen. Er verwendet Modbus RTU und belegt die auf dem Geräteetikett angegebene Modbus-Adresse. Er lässt sich über den entsprechenden GPIO deaktivieren.
| ESP32 | GPIO18 | GPIO23 | GPIO0 | GPIO5 | GPIO19 | GPIO22 | GPIO21 | GPIO25 | GPIO26 | GPIO27 |
|---|---|---|---|---|---|---|---|---|---|---|
| RTL8201FI | MDIO | MDC | CLK | RST | TXD0 | TXD1 | TXEN | RXD0 | RXD1 | CRS_DV |
| TCA9535 | SDA | SCL | PD00 | PD01 | PD02 | PD03 | PD04 | PD05 | PD06 | PD07 | PD10 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ESP32 | GPIO32 | GPIO33 | |||||||||
| RS485-1 | Abschlusswiderstand EIN | Ruhepegelvorspannung EIN | |||||||||
| RS485-2 | Abschlusswiderstand EIN | Ruhepegelvorspannung EIN | |||||||||
| MIO | OFF | ||||||||||
| VOut und VOut-LED | ON | ||||||||||
| LED Wi-Fi | OFF | ||||||||||
| LED Eth | OFF | ||||||||||
| Status | ON |
In der obigen Tabelle bedeutet ON, dass ein logisch hoher Ausgangspegel den entsprechenden Stromkreis aktiviert. Die Status-LED leuchtet auch, wenn ihr Port hochohmig (HiZ) ist. TCA9535 verwendet die Standard-Busadresse 0x20.
| ESP32 | GPIO10 | GPIO9 | GPIO4 | GPIO14 | GPIO12 | GPIO15 |
|---|---|---|---|---|---|---|
| RS485-1 | TX | RX | RTS | |||
| RS485-2 | TX | RX | RTS |
Beim ESP32 ist RX ein Eingang und TX ein Ausgang.
| ESP32 | GPIO34 |
|---|---|
| Config (B1) | + |
Das Drücken einer Taste zieht den entsprechenden ESP32-Port auf logisch Low.
Werkseitige Firmware wiederherstellen
Sie können die werkseitige Firmware bei Bedarf wiederherstellen. Die Gerätegarantie bleibt gültig.
Löschen Sie den experimentellen Inhalt des Flash-Speichers:
esptool.py --chip esp32 --port /dev/ttyACM0 erase_flash
Laden Sie die Firmware-Dateien herunter:
- factory_mge.bin — partitioniert den Flash-Speicher und startet die Weboberfläche zum Hochladen der Hauptfirmware.
- mge_main.bin — Hauptfirmware zur Bereitstellung der Gateway-Funktionen.
Flashen Sie die Factory-Firmware und ersetzen Sie factory_mge.bin durch den Namen der heruntergeladenen Datei:
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
Die Hauptfirmware mge_main.bin kann auf zwei Arten geflasht werden:
- Über die Weboberfläche im Factory-Modus; Einzelheiten unter Firmware aktualisieren und Einstellungen zurücksetzen.
- Über die USB-Schnittstelle:
- Schreiben Sie die Datei in die Partition OTA_0 und ersetzen Sie
mge_main.bindurch den Namen der heruntergeladenen Datei: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
- Aktivieren Sie das Booten von der Partition OTA_0:
otatool.py --port /dev/ttyACM0 --baud 460800 switch_ota_partition --slot 0
- Schreiben Sie die Datei in die Partition OTA_0 und ersetzen Sie