Sous Vide Cooker

by ssakuda, published

Sous Vide Cooker by ssakuda Apr 5, 2012



Sous Vide Cooker by ssakuda is licensed under the Creative Commons - Attribution license.

Use This Project

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

2726Views 670Downloads


A sous vide cooker made from a small rice cooker.



  • Rice cooker
  • Thermistor
  • 3.3 kΩ resistor
  • 10 kΩ resistor
  • Transistor (mine was TIP120)
  • SPDT Relay
  • Diode
  • Extension cord

Rice Cooker
The rice cooker provides many components needed for sous vide cooking. It has a pot for the water bath and a metal plate used for heat transfer. However, it does not allow for arbitrary temperatures to be set and maintained, so for the purpose of the sous vide cooker, we will remove all the electronics. All that should be left is the heating plate, the pot, and the housing.

A thermistor works by varying resistance with changes in temperature. The temperature as a function of resistance is T(R) = {A + Bln(R/Rref) + C[ln(R/Rref)]^2 + D*[(ln(R/Rref)]^2}^(-1) where A through D are constants dependent on the material and Rref is the resistance at a reference temperature. Since I wasn't sure of which exact thermistor I had, I took resistance and temperature measurements for a series of water temperatures.

The Arduino checks the temperature using the thermistor but cannot measure the resistance directly. To make up for this, I made a simple voltage divider, or adding a resistor in series to the thermistor, such that the voltage across the thermistor will also change with resistance.

The thermistor had a resistance range of roughly 1 - 10 kΩ during the earlier test. Using this information, I picked a 3.3 kΩ resistor so that the voltage across the thermistor would vary roughly 2.6 V from min to max.

NOTE: If you want to go the easier route, get a LM35/36 temperature sensor. You can skip the voltage divider step, and it's a linear curve!

To heat the water, we need a lot more power than what the Arduino can provide. However, we still want the Arduino to act as a power switch. This is where the relay comes in.

The relay I used had five pins. Two are connected to the Arduino and form a circuit internally. Inside there is a coil, and when power runs through it, it flips the relay switch. The other three pins are for the actual switching. The switch can flip between two things, but in this case, we are using it as an off-on.

My recommendation is that you test the relay with the Arduino first. When you apply enough power, you should hear a click.

My relay can only switch with a minimum 5V@80mA. The Arduino can do 5V but I believe only outputs 40-50mA.

I admit, I'm still not entirely sure how transistors work, but they can be used as amplifiers.

More information: http://www.youtube.com/watch?v=cEz1i5xzGEE

Wall Plug
My rice cooker had some extra circuitry for a light and the button to initiate cooking, so I cut that out and away left with a plug. I decided not to use it and instead went with making my own.

I bought an extension cord and cut off the female end. I then stripped the wire a bit and then attached one end to the relay and the other to the rice cooker's heating plate. You will complete the circuit using another wire going from the heating plate to the relay.

The wall provides a lot of power, so it's important to be safe while doing this step.

More information: http://www.sparkfun.com/tutorials/119

Your First Victim
To be on the safe side, try your new sous vide cooker on an egg first.

More information: http://www.edinformatics.com/math_science/science_of_cooking/eggs_sous_vide.htm

These are things I would like to do in the future.

  • Create a PCB to house the circuit.
  • Estimate error in thermistor curve fit
  • Timer

UPDATE 4/19/12

My thermistor appears to be a bit broken, so I am taking the opportunity to switch it out for an LM35/36 temperature sensor. The new code will be added once it comes in. I am also switching to a solid state relay.

LCD is now supported! Mine is a simple 16x2 screen.

All Apps

Upgrade this Thing with Thingiverse Apps

No results.

A nicer solution would be togive a semi-analog output to the heater with PWM. Since it runs on Mains which is AC, you could use an AC-solid state relais (which is basically a triac actuated with an opto coupler) if you somehow detect the zero-crossings of the AC. The alternative is PWM output to the SSR, but keeping the output frequency very low, like 2Hz. That would mean the power is divided into 50 or 60 separate steps, enough resolution for some nice PID control loop.

But anyhow, a SSR would benefit your circuit too, since it required much less power to drive it (only a led, actually) and it lasts much longer than a mechanical relay.

I looked into SSRs, and I am interested in replacing my current relay with one. Right now I have the Arduino measuring and switching relatively slowly, but I think I can speed it up with the SSR. Thanks for the tip. :)

Very nice documentation! This can probably be easily adopted to various other purposes were "bang-bang"-heating is utilized!

Thanks for all your effort put into this!

It would be really cool if this project of yours could turn out to something more "general", which is something I can relate to as I just a while ago thought about growing/making my own yoghurt, but since electronichardware is mostly some gremlin to me...
Then I found kefir, which "solved" the who
le thing before I could google something up. I am sure that there will be some other project ahead.
Heck, its nice that ones kefir change with the seasons of the year, but it would be cool to have a controlled environment just because one can. ;P
Thanks again! /D.

Thanks for your comment. As far as general use, I guess the idea behind a rice cooker is to hold the temperature at boiling, and I simply expanded it to a wider range of temperatures. It would be great if people to work off of this project to further expand its capabilities. :)

Electronics are mysterious to me too. I could program the Arduino for this project, but the wiring was hard haha.