Arduino Sous Vide and Crock-pot Controller
THIS PAGE IS A MIRROR ON A BACKUP SERVER. IF YOU ARE SEEING THIS PAGE, IT MEANS THAT ZANSSTUFF.COM IS CURRENTLY DOWN. INFORMATION ON THIS PAGE MAY BE OUT OF DATE.
This project was originally inspired by an article in Make Magazine about making a $75 Sous Vide cooker and an article by Andy on ChiefMarley.com called Turn your crock pot into a PID controlled sous vide cooker for $25. The end result was a ~$50 arduino-based controller box that can turn any small electric cooking appliance into a sous vide machine.
The controller box consists of an Arduino Nano and a relay module on a solder breadboard, which is mounted inside a plastic outlet box along with a 5V power adapter. The power adapter and the AC side of the relay are attached to the end of a cut up extension cord. The relay output is wired into one plug of a standard duplex outlet. The picture on the left above shows an older version where an external power adapter was plugged into the other plug of the duplex outlet, but the current version on the right with the internal power supply uses the second plug for the aquarium pump.
The temperature sensor is a 3-Pin TO-92 Dallas One-Wire digital temperature sensor. The sensor was tested against a few oral thermometers and read about 0.5°C low (erring on the side of food safety). It is soldered onto a two-wire cable (data and ground). The solder joint and all exposed wires were coated with silicone aquarium sealant, and the silicone was covered with heat shrink tubing. The other end of the wire connects to the box through a 2.5mm audio plug.
The original Sous Vide vessel was a Rival 6.0 Qt Crock Pot, which is regularly available for under $20 (see update below). To circulate the water in the crock pot, I purchased the cheapest aquarium filter I could find at a local pet shop and removed the filter portion, leaving behind a tiny pump with suction cups that mounts to the inside of the crock pot. I haven't had any problems running it for hours in hot water, but I've also never cooked at above 65°C with the pump in.
Tuning the PID loop was a bit tricky. All sorts of tuning algorithms were tried, but given how slow a large crockpot is to react to changes in input, none of them really worked. Due to the amount of damping present in the system due to the large volume of water and the ceramic crock, a PI loop ended up being the best approach. Tuning it was as simple as increasing the P alone until the crockpot came to a steady temperature quickly, and then adding a small amount of I. With very little time spent optimizing the values, the controller was able to keep the water bath within 0.1°C of the target temperature.
The code below also includes functions for using the controller to automate crockpot cooking.
MARCH 2013 UPDATE:
The crockpot could often take up to an hour to come up to temperature, so version 2.0 of the project uses the Continental Electric Stainless Steel Single 30-Cup Coffee Wall Urn, which is available from Amazon for $30 shipped (idea taken from http://lowereastkitchen.com). The aquarium water pump was also replaced with an aquarium air pump, using bubbles to agitate the water. The latest version of the code below has the PID values adjusted for the urn. The urn can come up to temperature in a matter of minutes.
I opened up the base of the urn and removed the keep-warm heater (which is a white fiberglass-covered wire wrapped around the main heater). This step is optional, but allows to urn to reach a full boil.
The percolator tube and basket were removed from the urn and two small holes were drilled in the lid -- one for the temperature sensor and one for a silicone air hose. The air hose is run from the pump and down into the urn, with a standard aquarium diffuser attached to weigh down the end of the tube.
I've also successfully used a Butterball XL Electric Fryer by Masterbuilt, which I picked up for $40 at Walmart when it was on clearance after Thanksgiving. You can see it behind the coffee urn in the picture at the top of the page.