2022-06-19 18:27:37 +01:00
..
2022-06-19 18:27:37 +01:00
2022-06-19 18:27:37 +01:00
2022-06-19 18:27:37 +01:00
2022-06-19 18:27:37 +01:00
2022-06-19 18:27:37 +01:00
2022-06-19 18:27:37 +01:00

A UART to network bridge for ESP32

This example is a demonstration of how Mongoose Library could be integrated into an embedded device and provide a UART-to-Network bridge capability:

  • A device opens listening TCP port and Websocket port and waits for connections
  • When a client connects, data is exchanged with the device's UART
  • Everything that client send, is sent to the UART
  • Everything that is read from the UART, gets sent to the client
  • Multiple clients are allowed
  • Live UART console allows to talk to the UART from the web page
  • Web UI is hardcoded into the binary and does not need a filesystem

Screenshots

Build and flash

Build requires Docker installed, and uses Espressif's ESP-IDF docker image:

make build
make flash PORT=/dev/YOURSERIAL

Flash pre-built firmware

You can flash a pre-built firmware to the ESP32 device using the following instructions:

  1. Connect your ESP32 device to the workstation. It should be accessible via a serial port
  2. Download and unzip ESP32 flashing tool from https://mongoose.ws/downloads/esputil.zip
  3. Download a prebuilt firmware https://mongoose.ws/downloads/uart-bridge.hex into the unzipped directory
  4. Start command prompt (or terminal on Mac/Linux). Run cd PATH/TO/esputil to go into the unzipped esputil/ directory. After that, run the following command (change COMPORT to the board's serial port):
OS Command
Windows
.\windows\esputil -p COMPORT flash uart-bridge.hex
Linux
./linux/esputil -p COMPORT flash uart-bridge.hex
MacOS
./macos/esputil -p COMPORT flash uart-bridge.hex

Next step is to monitor and follow the instructions.

esputil -p COMPORT monitor

Note: if monitor command shows constant restarts, the flash parameters settings can be wrong. Reflash your device with -fp ... flash parameters settings. For example, WROOM-32 based boards use -fp 0x220:

esputil -p COMPORT -fp 0x220 flash uart-bridge.hex

For more on possible options for flash parameters, see https://github.com/cpq/mdk#flash-parameters