ESP32 Serial Swiss Army Knife

Universal wireless serial adaptor firmware for the ESP32-S3.

Initial hardware target

  • ESP32-S3-DevKitC-1
  • ESP32-S3-WROOM-1-N16R8 module
  • 16 MB flash
  • 8 MB octal PSRAM

The initial smoke-test firmware continuously sweeps the onboard addressable RGB LED through the color wheel at reduced brightness. The official ESP32-S3-DevKitC-1 v1.0 uses GPIO48 for the LED data signal, while official v1.1 boards use GPIO38. Compatible boards and clones may vary.

Hardware wiring

See wiring.md for hardware-specific wiring profiles. The initial profile covers the ESP32-S3-DevKitC-1 N16R8 and the Adafruit MAX3243 full-pinout RS-232 breakout.

Build

pio run

Upload and monitor

Connect the board's USB-to-UART port, then run:

pio run --target upload
pio device monitor

The application logs its startup, detected PSRAM size, and configured RGB LED GPIO at 115200 baud. Expected output includes:

ESP32-S3 build-chain smoke test started
PSRAM initialized: 8388608 bytes
Sweeping the onboard RGB LED on GPIO48

If the firmware runs but the RGB LED remains dark, verify the board revision. The project defaults to GPIO48, commonly used by DevKitC-compatible boards and official v1.0 boards. For an official v1.1 board — or another board wired that way — change RGB_LED_GPIO in platformio.ini from 48 to 38, rebuild, and upload again.

License

This project is licensed under the GNU General Public License version 3 only (GPL-3.0-only). This is compatible with using the GPLv3 releases of wolfSSL and wolfSSH later. Third-party components remain subject to their respective licenses.

S
Description
ESP32-S3 firmware for a secure, multi-transport RS-232 adapter. It operates one MAX3243-backed UART1 serial port and safely shares it between native USB CDC-ACM, an HTTPS/WebSocket browser terminal, and SSH: one connected client can write while others observe. The firmware also provides persistent serial and Wi-Fi configuration, a UART0 recovery console, and hardware diagnostics; it is not a general-purpose router, captive portal, or unauthenticated TCP serial server.
Readme GPL-3.0
1.3 MiB
Languages
C 99.2%
CSS 0.4%
CMake 0.2%
Python 0.2%