Using Arduino in Bread Making at Home

“Let rise at room temperature” is a common instruction in bread recipes, with “room temperature” being around 70 °F (21.1 °C)1. For reasons that include San Francisco’s famous fog, this temperature can be hard to find in my apartment in Berkeley, California, and so my bread dough sometimes rises far too slowly.

One day, I realized that my Arduino Uno microcontroller could help solve this problem.  I had earlier configured it to measure milk temperature during yogurt making, and realized that would be a short leap to use it to control the air temperature inside a container, thereby creating a stable and warm location for dough fermentation and proofing (a “proofing box”).  My idea was simple: an incandescent light bulb in a clip-on lamp as the heat source, a temperature sensor, a switch that turns the light bulb on and off, and the Arduino to control the switch. Basically, as one person who heard my plan put it, “It’s an Easy-Bake Oven!”

But how would I switch the light bulb on and off using the low voltage, low current digital outputs on the Arduino? A relay could be wired in and the lamp could be hacked, but that would be bothersome and potentially dangerous.  Then I learned about the Powerswitch Tail II. This easy-to-use device allows your Arduino or other controller to switch on and off an A/C powered device, like a lamp, coffee maker, hot plate, and so on. By connecting a digital output line and ground from the Arduino to the + and – inputs of the Powerswitch Tail, the connected device can be switched on and off. No cutting, soldering or taping required, just connect and go.

After the jump, I’ll detail the parts that make up my air temperature controller and show some results from two batches of bread.

Parts List for a Proofing Box

Adafruit was my source of all of the components except for the lamp and thermocouple:

  • Ardunio Uno R3:  the “brain” of the system, it executes my program. It gets the temperature from the thermocouple (via the next item on the list), turns the light bulb on and off (via the last item on the list), writes text to the LCD, acts when a button is pressed, print to the screen on my computer (if connected).
  • Powerswitch Tail II: This easy-to-use device allows your Arduino or other controller to switch on and off an A/C powered device, like a lamp, coffee maker, hot plate, and so on. A digital output line and ground are provided to the + and – inputs of the Powerswitch Tail to control the flow of A/C to the connected device.
  • Thermocouple conditioning circuit: thermocouples are finicky devices, and need special circuitry to convert their low-level output into signals that the data acquisition device can read. This handy “breakout board” and tutorials from Adafruit makes it easy.
  • Thermocouple, Type K: the temperature sensor. Since the thermocouple is not immersed in something I’m going to eat, I’m using an unshrouded model (like this thermocouple at Adafruit).  (Note: if you’re looking for simpler temperature sensing hardware, consider the DS18B20 sensor or the TMP36 at Adafruit.)
  • Basic proto shield: for connecting the thermocouple circuit and other items to the Arduino in a more robust and permanent way than with a terminal block or breadboard.
  • LCD with 16×2 character display shield kit: This snazzy device can display two rows of sixteen characters (“16×2”), and has five buttons for user input. Thanks to great work by Adafruit’s engineers, the device only uses two of the Arduino’s pins.
  • A clip-on utility lamp with a 100 W incandescent light bulb.
  • Various wires, connectors and miscellaneous small parts.
  • A container or enclosure that will hold the lamp, thermocouple, and whatever you are fermenting.  Instead of buying a large plastic tub from the hardware store or building an enclosure with wood or plastic, I am repurposing a large cabinet to be the temperature-controlled zone.

The next drawing shows the basic layout, with the boundary of the temperature-controlled zone indicated and most of the major hardware shown.

Dough rising in Arduino-controlled proofing box

It’s not a very photogenic set-up, but for completeness, here are photos of the main components, the first showing the PowerSwitch Tail II and the Arduino with LCD, and the second showing the lamp and thermocouple installed in the cabinet:

Arduino-controlled bread dough proofing chamber

The First Full-Scale Test

My first full-scale test was a two-day sourdough bread from Nancy Silverton’s Breads from La Brea Bakery (the first recipe in the book). On the first day, I mixed and kneaded the dough, then let it ferment for a few hours in the temperature-controlled cabinet at 70 °F (21.1 °C). After shaping the loaf, I let it spend the night in the refrigerator to develop more flavor. Next, I returned the loaf to the temperature-controlled cabinet so it could warm up to the recommended internal temperature of 62 °F (16.7 °C) before going into the oven. The warm up took a long time, so I got a chance to test the system’s response to changes in set point as I increased it a few times.

In the figure below, the blue line shows the air temperature and the orange diamonds show manual measurements of the dough’s internal temperature during the seemingly endless warm-up period (it takes a long time for a piece of dough to go from 40 to 62 °F). The changes in set point are indicated by the five stair steps in the chart. I was quite pleased with the performance, as it reliably tracked the set point, even though my control algorithm was ultra-simple (perhaps someday – just for fun – I’ll dig out my control systems textbooks and implement a PID control strategy for optimal set point tracking. Update: Narrator: “He never did.”).

Chart of temperature in Arduino-controlled proofing box
Air temperature in proofing box and dough temperature during a long fermentation (6+ hours)

The next figure shows the heater response during a portion of the run, with the blue line again indicating the air temperature and the orange line indicating the heater (light bulb) status when the set point was 83 °F. The temperature sawtooths between the lower and upper bounds (defined by the hysteresis points), rising when the heater is on, and falling when the heater is off.

Chart of temperature and switch status in Arduino-controlled proofing box
Temperature evolution and heater state

A Less Eventful Test
On a warmer day, the controller doesn’t do much, as the figure below shows. After a few minutes of heating to reach the temperature target, the enclosure’s heat losses were small enough so that the temperature stayed above the set point until the fermentation and proofing was complete (this time, FWIW, the recipe was Cook’s Illustrated’s partly whole-wheat bread).

Overall, I’m happy with the device, and as the coolness of summer in the foggy East Bay and the bread-friendly tomato season approach, I expect to be using this system quite often.

Chart of temperature in Arduino-controlled proofing box
Temperature evolution and heater status on a warm day

Important note: Attempt the projects described in this blog at your own risk and observe common sense safety precautions.


  1. I looked in several books to find definitions of “room temperature” for bread making. In Peter Reinhart’s The Bread Baker’s Apprentice and Whole Grain Breads: room temperature is about 70 °F (see p. 88 and 284, respectively). In The Science of Good Cooking from the Cook’s Illustrated team, “room temperature is generally considered to be about 70 degrees” (p. 6). In Artisan Baking Across America, by Maggie Glezer, she helpfully writes “All these recipes were tested at about 75 °F, which is a temperature that works especially well for sourdough-based breads…Fermentation and proofing temperatures between 72 and 85 °F are ideal. A King Arthur blog post about recipe testing says room temperature is 68 °F to 75 °F” (p. 16). Professional Baking by Wayne Gisslen list the fermentation temperatures for each bread recipe, typically 75 or 80 °F, but there are exceptions when needed.


  1. As a baker and a recipient of a Pi this year. I was looking into building something like this. I started to see if it had been done before, and I was lead to this post. Thank you, this is awesome.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.