So I finally got my DIY sous vide cooker up and running. I actually had it "done" a few months ago, but due to moving, busy-ness at work, and life in general, I haven't gotten around to putting together this write-up, until now.
The first step was to acquire, which I did for free, a cooler. I had this old one from my fraternity days with a missing handle, so it was really ready for a dissection (vivisection?).
From the hardware store (McMaster-Carr in this case) I got a 120V, 1 phase, 1500W water heater heating element. I drilled a hole in the long side of the cooler down at one end (near where I would place my fan) and installed, via a crapton of silicone caulk, the water heater. I drilled a second hole on the short end above the drain plug and installed a submersible fan, which I had jury-rigged basically by taking the butt-end of this decoy propellor and wiring a twisted pair to it. Outputting 1.5V from an Arduino Duemilanove is pretty easy, so I figured that would work fine.
The lid of the cooler had four cup-holders built into it, so I drilled holes in two of them. These holes were for my two temperature sensors. I eventually decided to write my software to do a simple (X + Y) / 2 temperature average. To make my temperature sensors, I decided against the termistors and instead bought some LM34 temperature sensors off of Digikey. Then I wired the red/green/black to them, and put them inside of a 1" long piece 3/8" diameter stainless steel tubing. To waterproof this, I filled it with a 2-part epoxy with good thermal conductance that we had sitting around here in the lab. Waterproof silicone caulk should work as well. Although this method makes for rugged, easy temperature sensors that cost almost nothing, the delta T gets much slower. This really isn't a concern though, because cook times are on the order of hours, and by "slow delta T" I mean 15-30 seconds. For a good guide on how to make these sensors, go see this website on Arduino-based beer brewing.
To further ruggedize the temperature sensor, I heat shrank over the twisted trio. This single black wire then routed up out the lid through the two pre-drilled holes, and over to the Arduino. I caulked the gaps in these holes shut with epoxy, for better insulation.
Finally, I added an old dial thermometer, for calibration purposes. This hard-mounted through the side of the cooler via a 17/64" hole. I caulked it in, just to be sure.
That's it for hardware. Well, kind of. The water heating element, obviously, requires AC power, so I grabbed an old 10A, 120V AC/DC relay we had in the lab that takes 2.3-5V input and controls the output. I figured the 1500W heater would be current limited by this switch, and therefore wouldn't risk exploding/frying. NOTE: DO NOT RUN A HEATING ELEMENT NOT SUBMERGED, IT WILL TORCH ITSELF!
I also ended up getting a relay for the submerged fan; although using a square wave to output variable voltage is possible with my Arduino, the fan seemed to surge and die, surge and die, surge and die and I wanted it to have a good long life before the motor burned out, so I got a switch that input 0-5V and output from a 1.5V AA battery.
I made a simple breadboard with a 5V line and a 0V line. The two LM34 sensors took 5V input, as did the two switches. I then tied the Arduino board across everything (wiring diagram will come when I have some friggin' time). The way it works basically is this:
1. Every minute (60,000 steps) it takes a reading from each of the LM34 sensors, sums and divides them, then converts this value into a temperature value based on a pre-selected calibration (depending on the manufacturer, this value may be given...confirm it via testing anyway).
2a. If the temperature falls below the temperature you selected at the beginning of your run, the heating element and the fan kick on for 30 seconds. Then they heating element kicks off and the fan runs for another 20 seconds. Then the fan kicks off for 10 seconds. Repeat back to 1.
2b. If the temperature >= desired cook temperature, the system simply waits a minute before returning to state 1.
At first I wanted to write some elaborate PID control loop, but it turned out I needed a PID-capable switch for my heating element to vary the output current...which I didn't want to buy because I wanted this project to be EL CHEAPO. So instead I've got this super simple if/else control loop. It works because the heating element has such a low power that the water basically doesn't get thermally shocked. If you do your own version of this project, you'll need to develop your own timing, but the steps 1, 2a, and 2b can work for you just the same as it did for me. The trick was to not turn the heating element on and off too much, as this would fatigue both the heating element and the switch.
When I start a new cooking-series, I just set the Arduino software with a "time" which is just hours *60000 and temperature, in Fahrenheit. Then I put my food in vacuum-saver bags, put them in the cooler, and fill the cooler most of the way full with tepid water. You can find a host of sous vide recipes online, you can find other DIY sous vide cookers online too. But this cooker cost almost nothing and works perfectly, so I thought I'd share it with the DIY crowd.
Cooler = Free
Heating Element = 12.09
Switch = Free
LM34 Sensor X 2 = 5.02
Arduino Duemilanove = Free
Submersible Fan = 9.99
Submersible Fan Relay = 3.98
Silicone Caulk = 1.24
Wires etc = Free
Like I said above, I have not had a chance to draw up the wiring diagram I used...though it is so incredibly simple that it is a laugh that I should even need to do it. But I'll try to get around to it. I'll also post a few pictures. Including pictures of some delightful food! For now, just understand that this was my first Arduino project and it went splendidly and you should be completely unafraid of taking this project on yourself if you are also interested. Please email me or send me comments if you need help understanding what I did, have recommendations for other readers, or just want to chime in with your own ideas!
Update: I noticed the $400 Sous-Vide Supreme comes with a vacuum sealer system. For my work, I just used Freezer Bags (generic brand, of course), and closed them up except for the very corner where I piped in a small tube to a tiny, $5 vacuum pump I had at work. I use this to suck out as much air as I can, then I simply pull the tube and close the freezer bag. Worked like a charm every time. Best to freeze any liquids you might be adding to your mix, though, else the vacuum pump would suck them right up!
Update 2: Schematic can be found here.
Live-Blogging Britain’s Marriage Debate
12 minutes ago