Firmware that turns a small ESP32 board into a home gateway for Comma. Plugged in at home, it lets your Comma agent reach lights, air conditioners, cameras and local APIs on your network while you are away. Boards with a mic and a speaker are also a voice terminal: tap to talk, tap again to hang up.
The board knows no device protocols. It forwards HTTP, UDP and TCP from the backend to addresses on its own network, and only after you allow device operations in the app.
| Board | ID | Voice | Screen |
|---|---|---|---|
| LilyGO T-Circle-S3 | t-circle-s3 |
✓ | 160 px round |
| M5Stack StickS3 | m5stack-sticks3 |
✓ | 135 × 240 |
| Waveshare ESP32-S3-Touch-AMOLED-1.32 | waveshare-amoled-1-32 |
466 px round AMOLED | |
| ESP32 DevKit (classic ESP32, 4 MB) | esp32-devkit |
Status LED |
Every board forwards HTTP, UDP and LAN discovery; all but the DevKit also open TCP tunnels. The DevKit build is for the classic ESP32 only, not ESP32-S3 boards. Limits and pins are in devices/README.md; test coverage is in docs/validation.md.
Install ESP-IDF v6.0.2 and activate it. Use exactly this version: the build patches a NimBLE pairing timeout and relies on its lwIP internals. Then, from the repository root:
idf.py --version # ESP-IDF v6.0.2
tools/board.sh t-circle-s3 build
tools/board.sh t-circle-s3 flash-monitor PORTUse your board's ID from the table. PORT is the board's serial port: /dev/cu.usbmodem* or
/dev/cu.usbserial-* on macOS, /dev/ttyACM* or /dev/ttyUSB* on Linux, COMx on Windows. The
first build downloads components, so it needs internet. Build one board at a time: all boards share
firmware/managed_components/. If esptool cannot connect, see each board's download mode in
devices/README.md.
Then add the device in the Comma Android app: the board advertises as Comma-XXXX and joins a
2.4 GHz Wi-Fi network. Screen boards show a six-digit code; the DevKit pairs without one. A new
board is read-only until you allow device operations in its settings.
Runtime calls and LAN control need the Comma backend; this repository has the firmware and development tools only.
| T-Circle-S3 | StickS3 | Waveshare | DevKit | |
|---|---|---|---|---|
| Call / hang up | Tap screen | KEY1 | — | — |
| Wake the screen | Tap (also calls) | KEY2, short | Tap or BOOT | — |
| Pairing mode (hold 3–10 s) | BOOT | KEY2 | BOOT | BOOT |
| Factory reset (hold > 10 s) | BOOT | KEY2 | BOOT | BOOT |
- Security — pairing, stored credentials, what the gateway may reach
- Connector protocol and Bluetooth setup
- Development — host tests, tools, repository layout, adding a board
Apache License 2.0. Some files are adapted from Meta, Espressif and Waveshare code under the same license; the Inter font is under the SIL Open Font License 1.1. See NOTICE and THIRD_PARTY_NOTICES.md. "Comma" and the Comma logo are trademarks and are not licensed.