Skip to the content
PCBKitNew board
4 layers69.9 × 44.5 mmDoughLee2, the printed circuit board in 3D

A temperature-controlled container for proofing and fermenting soughdough

Size
69.9 × 44.5 mm
Copper layers
4
Thickness
2.07 mm
Parts
62
Nets
61
Pads
221
Tracks, vias
462, 77
Pours
3
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
28 Sep 2024
Updated
2 Nov 2026

Overview

DoughLee2 is an open-source printed circuit board by chl33, from the chl33/Dough133 repository on GitHub, published under the MIT licence. It is a 4-layer board of 69.9 × 44.5 mm with 62 parts on 61 nets, routed with 462 tracks and 77 vias.

It is built around the ESP32-WROOM-32, SHTC3 and BD90610EFJ-CE2, with the 74LVC1G08Z, AMS1117-3.3 and SN74LVC1G123DCUR among its other parts. Its parts include 5 ICs, 2 connectors, 1 capacitor and 1 inductor. It belongs with the ESP32 boards of this library.

Main components

8

README

README.md

Dough133 (v1.1.0)

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.

Doughh133

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:

Components needed for making this device, along with links and approximate price as of September 2024:

ItemSourceApproximate cost
Coleman 16 qt coolerAmazon$23
PTC Air Heater 12V 100WAliExpress$7
DC 12V 5A Power SupplyAmazon$12

KiCAD

The circuit board design is in KiCAD/.

Circuit board

These require footprints in chl33_library and symbols in chl33_kicad_sym.

OpenSCAD

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.

Heater mount

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.

Cooler plug

Software

The software is based on the og3 library and built using PlatformIO.

Features

  • 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 & Adafruit IO Integration: Supports MQTT auto-discovery for seamless integration with Home Assistant as a generic thermostat, as well as SSL/TLS and Adafruit IO broker modes.
  • Safety Features: Includes max/min temperature limits, sensor error detection, WifiWatchdog recovery, and a software-monitored 200 Hz heartbeat pulse for the hardware safety circuit (SN74LVC1G123) to cut heater power if the main loop or control loop stalls.

Getting Started

Prerequisites
  • PlatformIO (CLI or VSCode extension).
  • Node.js (v22+) and npm for building the Svelte web interface.
Configuration

The project uses ini files for local configuration and secrets. Create secrets.ini and local.ini based on the provided examples:

  1. Secrets (secrets.ini): Copy secrets.ini.example to secrets.ini and configure:

    ini
    [secrets]
    otaPassword = my_secure_password ; Password for Over-The-Air updates
  2. Local Build & Upload Settings (local.ini): Copy local.ini.example to local.ini:

    ini
    [platformio]
    default_envs = wifi              ; Use 'usb' for serial flashing or 'wifi' for OTA
    
    [local]
    uploadPort = 192.168.1.100       ; IP address of the board for OTA uploads
    build_flags =
        '-D LOG_UDP'
        '-D LOG_UDP_ADDRESS=192, 168, 1, 50'
    wifi_upload_flags =
Building and Flashing
  1. Install Svelte frontend dependencies (first time):
    bash
    cd svelte && npm ci && cd ..
  2. Build and upload the firmware (via USB or OTA depending on default_envs or -e):
    bash
    pio run -e usb -t upload   # Flash via USB (/dev/ttyUSB0)
    pio run -e wifi -t upload  # Flash via OTA
  3. Monitor the serial output to verify startup:
    bash
    pio device monitor

Usage

Physical Interface
  • 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.
Web Interface

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.
Home Assistant

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.

Parts

62
QtyValueFootprintReferences
6100nFCapacitor_SMD:C_0603_1608MetricC_RST1, Ca1, Ca2, Ca3, Ca4, Ca5
41kResistor_SMD:R_0603_1608MetricRl1, Rl2, Rl3, Rl4
3LEDLED_SMD:LED_0603_1608MetricD_HR1, D_LFN1, D_SFTY1
2100kResistor_SMD:R_0603_1608MetricR_T1, RPUSW1
210kResistor_SMD:R_0603_1608MetricRu3, Ru4
210uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderCb2, Cb3
212kResistor_SMD:R_0603_1608MetricRu1, Ru2
22.2kResistor_SMD:R_0603_1608MetricRf1, Rf2
2470Resistor_SMD:R_0603_1608MetricRRST1, Rt3
2490Resistor_SMD:R_0603_1608MetricRt1, Rt2
2Barrel_JackConnector_BarrelJack:BarrelJack_HorizontalJHTR1, JPWR1
2IRLB8721PBFPackage_TO_SOT_THT:TO-220-3_VerticalQ_FAN1, Q_HTR1
2SolderJumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mmJP1, JP2
1100 μHchl33_library:CD54L1
1100pFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC_RT1
110nF (50V)Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderCB1
1180pF (50V)Capacitor_SMD:C_0603_1608MetricC2
11N4001Diode_SMD:D_SMBDFAN1
1220uF (35Vx2)Capacitor_THT:CP_Radial_D6.3mm_P2.50mmCbulk1
127kResistor_SMD:R_0603_1608MetricR_RT1
133kResistor_SMD:R_0603_1608MetricRB1
14.7uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC_B1
143kResistor_SMD:R_0603_1608MetricRB2
144uF (16V)Capacitor_SMD:C_0603_1608MetricCc2
147uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderCc1
174LVC1G08chl33_library:SOT-23-5U5
18.2kResistor_SMD:R_0603_1608MetricRB3
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U3
1BD90610EFJ-CE2chl33_library:BD90610EFJ-CE2U_B1
1BLULED_SMD:LED_0603_1608MetricD_PWR1
1Conn_01x04_FemaleConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ_OLED1
1Conn_01x06Connector_JST:JST_XH_B6B-XH-A_1x06_P2.50mm_VerticalJ1
1ESP32-WROOM-32RF_Module:ESP32-WROOM-32U2
1Edge2x6_Connectorchl33_library:EdgeConnector_2x3J3
1SHTC3Sensor_Humidity:Sensirion_DFN-4-1EP_2x2mm_P1mm_EP0.7x1.6mmU1
1SN74LVC1G123DCURchl33_library:SOP50P310X90-8NU4
1SS34Diode_SMD:D_SMADB1
1SS34-E3/9ATDiode_SMD:D_SMBDHR1
1SW_PushButton_Switch_THT:SW_PUSH_6mmSW_ON1

The 59 most common of 62 parts.

Questions

How big is the DoughLee2 PCB?

It measures 69.9 × 44.5 mm and has 4 copper layers, 2.07 mm thick.

What parts does the DoughLee2 use?

62 parts, built around the ESP32-WROOM-32, SHTC3, BD90610EFJ-CE2 and 74LVC1G08Z. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the DoughLee2 KiCad files?

From the chl33/Dough133 repository on GitHub, at the commit this page was made from: the board is KiCAD/DoughLee2.kicad_pcb and its schematic KiCAD/DoughLee2.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the DoughLee2 design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 4 layers49.5 × 39.4 mmLoRa133, the printed circuit board in 3D

    LoRa133

    chl33/LoRa133

    A base station for LoRa-based satellite sensor devices.

    22 parts1MIT
  • 4 layers25 × 41.5 mmPhyphox m, the printed circuit board in 3D

    Phyphox m

    Dorsel89/phyphox_m_pcb

    61 partsGPL-3.0
  • 6 layers46 × 76 mmQ2-v2, the printed circuit board in 3D

    Q2-v2

    0x616c6f6e/esp32s31-mp3

    打开 q2-v2.kicadpro。这是 ESP32-S31NRV16 裸芯片版的独立工程,当前按用户要求改为 0402 阻容、电源分区铺铜并就近打过孔,信号待手动布线。不是可打板文件。原生产主板 hardware-q2 的 PCB 保持原文件哈希。

    198 parts
  • 4 layers140 × 120 mmPianoMatrice, the printed circuit board in 3D

    PianoMatrice

    manvalan/MuonScope

    Piano di rivelazione MuonScope con 16 fotodiodi VBPW34S in matrice 4×4 a passo 10 mm, per il bus MIKILAB REV5.1.

    490 parts
  • 4 layers160 × 100 mmLunar Hawks Rover Control, the printed circuit board in 3D

    Lunar Hawks Rover Control

    Matthew-Garcia/NASA-Lunabotics-UHCL-Lunar-Hawks

    UHCL Lunar Hawks proof-of-concept excavation rover: ROS 2, micro-ROS, MicroPython, control PCB development, CAD, and research.

    207 partsMIT
  • 4 layers30 × 30 mmNeuromorphic ir sensor compact, the printed circuit board in 3D

    Neuromorphic ir sensor compact

    RyanHailey21/neuromorphic-IR-hand-assembled

    All through-hole re-implementation of the Rev A neuromorphic IR event sensor: no SMD parts, solderable with a basic iron.

    121 parts
  • 2 layers70 × 100 mmUpper, the printed circuit board in 3D

    Upper

    sbarisic/MagMouse

    Open source hall-effect based mouse - no mechanical contacts - no failure points

    92 parts2
  • 4 layers70 × 38 mmPeak holder, the printed circuit board in 3D

    Peak holder

    umn-impish/kicad

    kicad files for the IMPISH piggyback

    91 parts1MPL-2.0