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

pio run -t upload --upload-port /dev/ttyACM0
pio device monitor -b 115200 --port /dev/ttyACM0
S
Description
Single-nail ESP32-C3 firmware for piNail with Wi-Fi onboarding
Readme 83 KiB
Languages
C 56.7%
C++ 43.3%