An open-source PID temperature controller for espresso machines, featuring WiFi connectivity and precise temperature control.
esp32-espresso/
├── pid-controller/ # PCB design (atopile)
│ ├── main.ato # Main circuit definition
│ ├── components/ # Custom component definitions
│ └── build/ # Generated manufacturing files
└── pyproject.toml # Python dependencies
The controller board is designed in atopile and manufactured via JLCPCB.
- ESP32-S3 microcontroller with WiFi/BLE
- On-board AC-DC converter (100-240V AC → 5V DC) - direct mains power
- USB Type-C for programming/debugging (also provides backup power)
- MAX31855 K-type thermocouple interface for precise temperature measurement
- External SSR control for heater switching (supports 25A panel-mount SSRs)
- Pressure sensor input with 5V→3.3V level shifting
- Status LEDs for system state indication
See pid-controller/README.md for detailed board documentation.
# Install dependencies
uv sync
# Build the PCB
cd pid-controller
ato buildManufacturing files will be generated in pid-controller/build/default/.
See individual component licenses in their respective directories.