Firmware personalizado y GPIO de WB-MGE v.3
Descripción
El módulo se entrega con firmware de fábrica que implementa las funciones de pasarela y permite actualizarlo a través de la interfaz web.
Esta página describe la ejecución de firmware personalizado en el hardware WB-MGE v.3. El manual de usuario está disponible aquí: Pasarela Modbus Ethernet WB-MGE v.3.
Se aceptan reclamaciones de garantía para módulos que utilizan el firmware de fábrica. Si los experimentos con firmware personalizado revelan un problema de hardware, restablezca el firmware de fábrica, reproduzca el problema con él y póngase en contacto con soporte técnico.
Carga del firmware

Para programar la memoria flash, utilice la herramienta esptool o un equivalente. El dispositivo incorpora un convertidor USB-UART basado en CH343.
Compruebe la comunicación solicitando el identificador del chip, por ejemplo:
$ 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...
Ejemplos de firmware propio
Para ayudarle a empezar, proporcionamos configuraciones de ejemplo para la popular plataforma ESPHome. Solo muestran el acceso al hardware y no están relacionadas con el firmware original de WB-MGE v.3.
Enlace: https://github.com/wirenboard/wb-mge-v3-diy-firmware-demo
GPIO e interfaces
Las tablas siguientes muestran las conexiones del módulo de interfaz y las asignaciones de las salidas del expansor de puertos.
¡Importante! Una sección MIO interna basada en STM32 está conectada a RS485-2. Utiliza Modbus RTU y ocupa la dirección Modbus impresa en la etiqueta del dispositivo. Se puede deshabilitar mediante el GPIO correspondiente.
| 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 | terminación activada | Polarización de seguridad ON | |||||||||
| RS485-2 | terminación activada | Polarización de seguridad ON | |||||||||
| MIO | OFF | ||||||||||
| VOut y LED VOut | ON | ||||||||||
| LED Wi-Fi | OFF | ||||||||||
| LED Eth | OFF | ||||||||||
| Status | ON |
En la tabla anterior, ON significa que una salida en nivel lógico alto habilita el circuito correspondiente. El LED Status también se enciende cuando su puerto está en estado de alta impedancia (HiZ). TCA9535 utiliza la dirección de bus estándar 0x20.
| ESP32 | GPIO10 | GPIO9 | GPIO4 | GPIO14 | GPIO12 | GPIO15 |
|---|---|---|---|---|---|---|
| RS485-1 | TX | RX | RTS | |||
| RS485-2 | TX | RX | RTS |
Para el ESP32, RX es una entrada y TX una salida.
| ESP32 | GPIO34 |
|---|---|
| Config (B1) | + |
Al pulsar un botón, el puerto ESP32 correspondiente pasa a nivel lógico bajo.
Restablecimiento del firmware de fábrica
Puede restaurar el firmware de fábrica cuando sea necesario. La garantía del dispositivo sigue siendo válida.
Borre el contenido experimental de la memoria flash:
esptool.py --chip esp32 --port /dev/ttyACM0 erase_flash
Descargue los archivos de firmware:
- factory_mge.bin — particiona la memoria flash e inicia la interfaz web utilizada para cargar el firmware principal.
- mge_main.bin — el firmware principal que implementa las funciones de pasarela.
Grabe el firmware de fábrica, sustituyendo factory_mge.bin por el nombre del archivo descargado:
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
El firmware principal mge_main.bin se puede programar de dos formas:
- A través de la interfaz web en modo Factory; consulte Actualización del firmware y restablecimiento de los ajustes para obtener más información.
- Mediante la interfaz USB:
- Escriba el archivo en la partición OTA_0, sustituyendo
mge_main.binpor el nombre del archivo descargado: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
- Active el arranque desde la partición OTA_0:
otatool.py --port /dev/ttyACM0 --baud 460800 switch_ota_partition --slot 0
- Escriba el archivo en la partición OTA_0, sustituyendo