Firmware personalizzato e GPIO di WB-MGE v.3
Descrizione
Il modulo viene fornito con firmware di fabbrica che implementa le funzioni di gateway e supporta gli aggiornamenti tramite l’interfaccia web.
Questa pagina descrive l’esecuzione di firmware personalizzato sull’hardware WB-MGE v.3. Il manuale utente è disponibile qui: WB-MGE v.3 Modbus Ethernet Gateway.
Le richieste di garanzia sono accettate per i moduli che utilizzano il firmware di fabbrica. Se gli esperimenti con firmware personalizzato rivelano un problema hardware, ripristinare il firmware di fabbrica, riprodurre il problema con esso e contattare l’assistenza tecnica.
Scrittura del firmware

Per la scrittura, utilizzare l’utilità esptool oppure un equivalente. Nel dispositivo è integrato un convertitore USB-UART basato su CH343.
Verificare la comunicazione richiedendo l’identificatore del chip, ad esempio:
$ 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...
Esempi di firmware fai da te
Per facilitare l’avvio, sono fornite configurazioni di esempio per la diffusa piattaforma ESPHome. Dimostrano soltanto l’accesso all’hardware e non sono collegate al firmware originale WB-MGE v.3.
Collegamento: https://github.com/wirenboard/wb-mge-v3-diy-firmware-demo
GPIO e interfacce
Le tabelle seguenti mostrano i collegamenti dei moduli di interfaccia e le assegnazioni delle uscite dell’espansore di porte.
Importante! Una sezione MIO interna basata su STM32 è collegata a RS485-2. Utilizza Modbus RTU e occupa l’indirizzo Modbus stampato sull’etichetta del dispositivo. Può essere disabilitata tramite il GPIO corrispondente.
| 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 | terminazione attiva | polarizzazione a riposo attiva | |||||||||
| RS485-2 | terminazione attiva | polarizzazione a riposo attiva | |||||||||
| MIO | OFF | ||||||||||
| VOut e LED VOut | ON | ||||||||||
| LED Wi-Fi | OFF | ||||||||||
| LED Eth | OFF | ||||||||||
| Status | ON |
Nella tabella precedente, ON indica che un’uscita a livello logico alto abilita il circuito corrispondente. Anche il LED Status si accende quando la sua porta è nello stato ad alta impedenza (HiZ). TCA9535 utilizza l’indirizzo standard del bus 0x20.
| ESP32 | GPIO10 | GPIO9 | GPIO4 | GPIO14 | GPIO12 | GPIO15 |
|---|---|---|---|---|---|---|
| RS485-1 | TX | RX | RTS | |||
| RS485-2 | TX | RX | RTS |
Per ESP32, RX è un ingresso e TX è un’uscita.
| ESP32 | GPIO34 |
|---|---|
| Config (B1) | + |
La pressione di un pulsante porta la porta ESP32 corrispondente al livello logico basso.
Ripristino del firmware di fabbrica
È possibile ripristinare il firmware di fabbrica quando necessario. La garanzia del dispositivo rimane valida.
Cancellare il contenuto sperimentale della memoria flash:
esptool.py --chip esp32 --port /dev/ttyACM0 erase_flash
Scaricare i file del firmware:
- factory_mge.bin — partiziona la memoria flash e avvia l’interfaccia web utilizzata per caricare il firmware principale.
- mge_main.bin — il firmware principale che implementa le funzioni di gateway.
Scrivere il firmware Factory, sostituendo factory_mge.bin con il nome del file scaricato:
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
Il firmware principale mge_main.bin può essere scritto in due modi:
- Tramite l’interfaccia web in modalità Factory; vedere «Aggiornamento del firmware e ripristino delle impostazioni» per i dettagli.
- Tramite l’interfaccia USB:
- Scrivere il file nella partizione OTA_0, sostituendo
mge_main.bincon il nome del file scaricato: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
- Abilitare l’avvio dalla partizione OTA_0:
otatool.py --port /dev/ttyACM0 --baud 460800 switch_ota_partition --slot 0
- Scrivere il file nella partizione OTA_0, sostituendo