Files
ESP32_Serial_Swiss_Army_Knife/README.md
T

2.5 KiB
Raw Blame History

ESP32 Serial Swiss Army Knife

ESP32 Serial Swiss Army Knife logo

Universal wireless serial adaptor firmware for the ESP32-S3.

Initial hardware target

  • ESP32-S3-DevKitC-1-compatible development board
  • ESP32-S3-WROOM-1-N16R8 module
  • 16 MB flash
  • 8 MB octal PSRAM
  • Adafruit MAX3243 full-pinout RS-232 breakout, product 5988

The current firmware is a command-driven Phase 0 hardware-characterization harness. It validates the MAX3243 breakout, its three drivers, its five receivers, valid-signal detection, active-low shutdown, and UART1 loopback before development of the wireless serial firmware begins. Tests run only when explicitly requested at the console; booting the board does not start an electrical test.

Hardware wiring

See wiring.md for the hardware profile, GPIO assignments, loopback diagrams, safety notes, and the recommended test sequence. 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 -b 115200

The firmware starts an interactive console on UART0. Type help to display command descriptions. The Phase 0 commands are:

status
transceiver <enable|disable>
drivers <tx 0|1> <dtr 0|1> <rts 0|1>
loopback-a
loopback-b
valid-test
uart-loopback <baud> [8N1|8E1|8O1|8N2|7E1|7O1] [bytes]
uart-suite

uart-loopback defaults to 8N1 and 256 bytes. Its accepted payload range is 1512 bytes. uart-suite covers 300 through 250000 baud and all supported frame formats. Follow the applicable loopback wiring in wiring.md before invoking a test.

The onboard RGB LED reports the most recent test-harness state:

Color Meaning
Blue Idle; waiting for a command
Yellow/orange Test running
Green Last test passed
Red Last test failed

This hardware profile uses the onboard RGB LED on GPIO48. Official ESP32-S3-DevKitC-1 v1.1 boards commonly use GPIO38 instead, and compatible boards or clones may vary. A different board revision requires an adjusted board pin profile before running this firmware.

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.