a day ago
- The author needed a better kiln controller for pottery after a cheap PID controller failed by overheating and lacking programmable temperature curves.
- Existing solutions like PyKiln and PIDKiln were too fragile due to dependency issues, prompting a custom build.
- Key requirements included a web UI, programmable temperature curves, a maximum duty cycle limit, durability, and quick development.
- MicroPython was chosen for its portability across microcontrollers and the ability to run the same code on a PC for testing.
- All dependencies were vendored to ensure long-term compatibility, except for Plotly.js which is large.
- Cool features include dynamic JSON-based settings, runtime pin configuration, WebSocket communication, OTA updates, and drag-and-drop temperature profile editing.
- Reflecting on the project, the author appreciated Python's flexibility for rapid prototyping but noted frustrations with singletons, callbacks, and asyncio blocking.