Dough133 is a temperature-controlled container for proofing and fermenting sourdough. It uses a small cooler and a PTC heater with a fan to heat the inside of the cooler. A PCBA with an ESP32 controls the power supplied to the heater to regulate the temperature of the enclosure.
This repository contains:
- KiCAD design for the PCB.
- Source code for the device firmware.
- OpenSCAD design for 3D printed components.
Instructions for the assembly of the device are in this are at my blog.
Please also see the other entries describing this project:
- Building a DIY Sourdough Proofer (Dough133),
- Dough133 Electronics: Designing a Custom ESP32 Controller for Proofing Sourdough, and
- Dough133 Control: Yeast Welfare through Applied Mathematics.
Components needed for making this device, along with links and approximate price as of September 2024:
| Item | Source | Approximate cost |
|---|---|---|
| Coleman 16 qt cooler | Amazon | $23 |
| PTC Air Heater 12V 100W | AliExpress | $7 |
| DC 12V 5A Power Supply | Amazon | $12 |
The circuit board design is in KiCAD/.
These require footprints in chl33_library and symbols in chl33_kicad_sym.
Designs for 3D-printable components are in scad/.
The EBox is based on the ProjectBox OpenSCAD system.
The heater mount secures the heater and temperature/humidity sensor inside the cooler.
The Cooler plug helps avoid heat leaking through the hole through which wires run from the heater mount through the wall of the cooler to the EBox.
The software is based on the og3 library and built using PlatformIO.
- Modern Web Interface: A responsive Svelte-based UI for real-time status monitoring, PID tuning, and system configuration.
- PID Temperature Control: Uses a Proportional-Integral-Derivative controller with feedforward to maintain precise temperature.
- Manual Fan Control: Toggle the enclosure fan manually via the web interface.
- Home Assistant Integration: Supports MQTT auto-discovery for seamless integration with Home Assistant as a generic thermostat.
- Safety Features: Includes max/min temperature limits, sensor error detection, and safety hardware to cut heater power if the microprocessor is not running properly.
- PlatformIO (CLI or VSCode extension).
The project uses ini files for local configuration and secrets. You need to create secrets.ini and secrets-usb.ini based on the provided examples.
-
General Secrets: Copy
secrets.ini.exampletosecrets.iniand configure:[secrets] udpLogTarget = 192, 168, 1, 100 ; Optional: IP for UDP logging otaPassword = my_secure_password ; Password for Over-The-Air updates
-
Upload Configuration: For USB flashing, copy
secrets-usb.ini.exampletosecrets-usb.ini:[secrets] uploadProtocol = esptool uploadPort = /dev/ttyUSB0 ; Check your specific port (e.g., COM3 on Windows) uploadAuth = uploadHostPort =
(For OTA updates later, you can use
secrets-ota.ini)
- Connect the ESP32 board to your computer via USB.
- Build and upload the firmware:
pio run -t upload
- Monitor the serial output to verify startup:
pio device monitor
- Button: Press the physical button to toggle temperature control ON or OFF.
- OLED Screen: Displays the current state (Off, Running, Cooling), current temperature, and target temperature.
Once connected to WiFi, navigate to the device's IP address (displayed on the OLED).
- Status Page: View current temperatures (Enclosure, Room), humidity, and heater status.
- Controls: Enable/Disable the heater.
- Configuration: Set the target temperature, ramp rates, and PID gains.
Ensure your MQTT broker details are configured in the Web UI. The device will automatically appear in Home Assistant as a climate device (Thermostat) if MQTT discovery is enabled.



