Thursday, April 18, 2013

Using Arduino in Bread Making at Home

Photo of sourdough bread loaves rising
“Let rise at room temperature” is a common instruction in bread recipes, with “room temperature” being about 70 F (21.1 C)*. For various reasons, however, this temperature can be hard to find in my apartment in Berkeley, California, and so my bread doughs sometimes rise 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 one at Sears, or this one at Adafruit).  (Note: if you're looking for simpler temperature sensing hardware, consider the DS18B20 sensor that Adafruit sells.)
  • 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 16x2 character display shield kit: This snazzy device can display two rows of sixteen characters ("16x2"), 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.

Drawing of Arduino controlled proofing box for bread making at Mental Masala

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:

Photos of Arduino equipment for temperature-controlled enclosure

The First Full-Scale Test
My first full-scale test was a two-day 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. 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 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).

Chart of air temperature controlled by Arduino

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 air temperature and heater status using Arduino for control

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 air temperature and heater status using Arduino for control

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

* I looked in several books to find definitions of room temperature. 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).

Random link from the archive:  Cutting through the slime around "okra leaves"


Nurunnahar Amily said...

lovely post.I LOVE IT.Thanks for your post.I will review it again.Recipes

Anonymous said...

nice post, very cool use of arduinos. Thanks for sharing.

Elliott Montroll said...

Hey, I was considering using this idea for a school project. Can you tell me what the code is?