Initial ESP32-C3 single-nail firmware with Wi-Fi onboarding

This commit is contained in:
2026-03-13 22:38:46 +00:00
commit ef06b18bdd
5 changed files with 434 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
# piNail ESP32-C3 (Single-Nail)
ESP32-C3 firmware for a single-nail piNail controller.
## What changed vs piNail2
- Single nail only.
- Loop timing is fixed for responsiveness (`1800ms` cycle, `200ms` tick).
- Loop timing controls are intentionally not exposed in API/UI.
- Wi-Fi onboarding uses captive portal (`piNail-Setup` / `pinailsetup`).
## Hardware target
- Board: ESP32-C3 DevKitM-1 class board.
- Thermocouple ADC: MAX6675 (SPI-like bitbang).
- Relay output: active HIGH relay module.
## GPIO mapping
- Relay: `GPIO2`
- MAX6675 SCK: `GPIO4`
- MAX6675 CS: `GPIO5`
- MAX6675 SO: `GPIO6`
## API compatibility
Implemented endpoints:
- `GET /api/status`
- `GET /api/history`
- `POST /api/power`
- `POST /api/setpoint`
- `POST /api/pid`
- `POST /api/pid/reset`
- `POST /api/safety/reset`
- `GET /api/heartbeat`
Not implemented in this firmware:
- Scheduler and dual-nail routing.
- Autotune endpoints.
- Loop timing reconfiguration endpoint.
## Build and flash
```bash
pio run -t upload --upload-port /dev/ttyACM0
pio device monitor -b 115200 --port /dev/ttyACM0
```