65 lines
2.5 KiB
Markdown
65 lines
2.5 KiB
Markdown
# ESP32 Serial Swiss Army Knife
|
||
|
||

|
||
|
||
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`](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
|
||
|
||
```sh
|
||
pio run
|
||
```
|
||
|
||
## Upload and monitor
|
||
|
||
Connect the board's USB-to-UART port, then run:
|
||
|
||
```sh
|
||
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:
|
||
|
||
```text
|
||
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 1–512 bytes. `uart-suite` covers 300 through 250000 baud and all supported frame formats. Follow the applicable loopback wiring in [`wiring.md`](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](LICENSE) (`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.
|