# 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` Built-in web interface: - `GET /` serves a lightweight control UI for power, setpoint, PID, and safety reset. 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 ```