-
-
Notifications
You must be signed in to change notification settings - Fork 0
Getting started
Checklist for a first tub-side install (M5 Atom Lite + Atomic RS485 Base). For generic ESP32 boards, use the same steps but set UART pins per the README M5 / pin section and src/config-example.h.
- Read ccutrer physical layer notes for where to tap RS485 on your controller (A/B, ground reference, accessory power).
- 12 V / GND on the M5 Atomic base are not the RS485 A/B pair — power the Atom per M5 docs; connect only the bus wires to the spa link.
- Bench testing with USB 5 V only is fine; verify frames before closing the spa cabinet.
git clone https://github.com/shomanjk/esp32_balboa_spa.git
cd esp32_balboa_spa
git submodule update --init --recursiveThe LittleFS web UI build requires the balboa-spa submodule. If uploadfs fails with submodule errors, re-run the command above.
cp src/config-example.h src/config.hEdit at minimum:
| Setting | Notes |
|---|---|
WIFI_SSID / WIFI_PASSWORD
|
2.4 GHz Wi‑Fi (ESP32 has no 5 GHz) |
MQTT_SERVER / MQTT_PORT
|
Optional until you add HA; required for MQTT/HA |
BROKER_LOGIN / BROKER_PASS
|
If your broker requires auth |
TX485_Rx / TX485_Tx
|
22 / 19 for Atom on Atomic RS485 Base |
AUTO_TX |
Prefer true unless your transceiver needs explicit DE/RE |
Comment out or remove the default GPIO 16/17 pair if you use the M5 stack pins.
pio run -e M5AtomLite-tub -t uploadSet upload_port in platformio.ini or pass --upload-port /dev/cu.… if PlatformIO does not auto-detect USB.
pio run -e M5AtomLite-tub -t uploadfsRun after the first firmware upload, and again when the web bundle changes.
- Find the device: serial log shows hostname/IP, or try
http://spa-XXXXXXXXXXXX.local/(hostname is derived from Wi‑Fi MAC — seewifiModule.cpp). - Open
/status— live water temp and equipment should update within a short time. - Open
/state— Wi‑Fi, firmware version, RS485 health summary. - Optional JSON checks:
GET /api/version-
GET /api/rs485— counters andhealth -
GET /api/status/controls— snapshot used by/statuspolling
RGB LED (M5 M5AtomLite-tub): green = Wi‑Fi has IP; red = disconnected; blue/yellow flashes = coarse RS485 activity.
Follow Home Assistant setup once the spa bus is healthy.
| Item | Value |
|---|---|
| PlatformIO env | M5AtomLite-tub |
| UART2 RX / TX | GPIO 22 / 19 |
AUTO_TX |
true recommended |
| No frames? | Verify A/B (swap if needed); check /api/rs485
|
Full detail: README — M5 Atom Lite + Atomic RS485 Base.
-
Troubleshooting FAQ if
/statusstays empty - Home Assistant setup
- OTA workflow for wireless updates