Introduction: How to Build a Premium Sous Vide Cooker

Life is too short to eat bad food. This is especially true for overdone steaks and fish. Promise. There are few things better than an entrecôte cooked à point. Luckily I have read about sous vide cooking in Nathan Myhrvolds book Modernist Cuisine. With this method you get perfect results each time. So it is obvious that I want to have such a cooker!

There are tons of instructions for simple DIY sous vide cooker all over the web. As an engineering student I like to go crazy and build a cooker from scratch on. I had three main design goals in mind. The device should:

  1. look and act like a professional one
  2. be safe and easy to use
  3. be small and sturdy to use it outdoors


This project includes mains power, which can be dangerous, and if not treated with care, respect and intelligence, it can result in fatal injuring. You must accept that you and you alone are responsible for your safety and safety of others. While this project is provided in hope that it will be useful, you are responsible for verifying its accuracy and applicability. You are responsible for knowing your limitations of knowledge and experience. If you don't know exactly what you are doing, you should consider to consult a licensed electrician.

Step 1: Getting the Whole Picture

Basically a sous vide cooker is a controller which sets and holds a certain temperature of a water bath. In that bath you put the vacuum sealed food until it reaches the temperature of the water bath. For big pieces of meat that can take several hours.

The cooker may be divided in these parts:

Most professional sous vide cooker have a heating element integrated in the water bath. The downside of this approach is that unless you buy several cooker you are limited to that size.

I like to be more flexible. I made good experience with a rice cooker when I only want to cook one or two steaks. For more steaks or bigger pieces I tend to use heating coils. So I decided to add an AC power socket to the black box to be more flexible.

Some more parts used in this project:

Step 2: Inside the Black Box

Let's have a look inside the black box. It is powered by an Arduino Nano micro controller because it is small and cheap. The controller is programmed with a PID-library which get the temperature from the sensor as input and switches a relay as output. The relay switches the socket which is connected to mains power. Since the device is controlled via bluetooth, it also handles the connection to my mobile phone. I like to be able to control two water baths with different temperatures, so you find two temperature sensors and two outputs for the relay at the circuit board.

At the breadboard the red cables are for power supply, the black ones for ground. the green and yellow cables are for signal handling. The temperature sensors need a resistance to work.

To save space I decided to print a custom circuit board. You can get them for little money from China. The board is designed with the Fritzing software. You could change the design in order to add the relays directly to the PCB. I decided against it so I can exchange them without soldering when they break. My sous vide cooker is working for nearly a year without problems but the relay is the part which is most likely to break one day because it is the only mechanic part in the device.

Step 3: Source Code of the Microcontroller

You can program the Arduino easily via the Arduino IDE. I used the 'one wire'-, 'Dallas Temperature'-, 'Software Serial'- and a modified PID-library. You have to change the hardware address of your sensor in the source code.

Please find the source code attached. At the moment the code is only designed for one sensor. I will refactor the code when I find time for it.

Step 4: Low Voltage Circuit

The low voltage circuit powers the micro controller and the sockets. It is connected to mains power via a C13/C14 coupler to improve transportability. These connectors are safe to use with a maximum current of 10 Ampere so it can power heating coils with an overall output up to 2000 Watt. Most times 300-1000 Watt are sufficient.

The source powers three parallel circuits. They are connected via lever nuts. The first circuit powers the Arduino. An old mobile phone USB charger converts the 230V AC mains power to the necessary 5V DC. Next time I would add a print transformer directly to the PCB.

The other two circuits power the sockets. There is a relay connected to each of them in series, so the relay can switch the sockets on and off. Don't forget to ground your system. That is simply done by connecting the protective earth from the two socket with it's counterpart at the C13 connector (green-yellow cables in the picture).

Step 5: Temperature Sensor

The temperature is read by a DS18B20 digital temperature sensor. That sensor provides a wide range from -55°C to 125°C. It has a high resolution and the accuracy is sufficient for our purpose.

There are three wires but with the two wire method you need only two of them. That enables you to use a coaxial power connector to improve further the portability of the project. That means you simply solder GND and VDD pins to ground and DQ pin to digital input. You have to be careful with the colors of the wires because there are different standards. Check the manual for your specific sensor.

Step 6: Put It All Together

You have now all pieces together and can start the final assembly. Everything fits easily in a 160x95x55mm electronic project box. Make sure the box is waterproof and out of plastic to improve security.

You need two holes for the sockets and a third one for the C13 connector. Take your time because plastic melts easily. At the bottom of the box you have to drill four holes each for the printed circuit board and the relay.

Step 7: Control the Device

The device is controlled via Bluetooth. You can find an App for Ubuntu Phone in the Open Store. The App can scan for Bluetooth devices so you can select your device. It then connects to your cooker via tapping the Bluetooth icon. It turns blue when a connection is established. You can now change the temperature and see both the target and current temperature in a chart.

The source code is available on launchpad. It is written in Qt so it is cross platform. Feel free to fork it and build an App for Android, iOS or a Desktop version.

The App just establishes a serial connection to the hc-05 Bluetooth adapter, formats the input and sends data when you set a new temperature. That means any serial Bluetooth terminal App on Android or iOS should do the job as well. If you want to set a new temperature just send the plain number in Celsius to the device.

Step 8: Some Final Thoughts

If you come this far you have an precise sous vide cooker so you can for example make your steaks from one side to the other perfectly medium rare at 56°C. The final step is to sear them to get that wonderful tasty brown crust.

The keys to success are on the one hand very hot temperatures because the so called Maillard reaction only happens at very high temperatures. On the other hand you should sear it in a very short time to avoid that gray ring of overdone meat around the center.

Make sure you removed all the water from the steak before searing. Water vaporizes at 100°C and needs much energy to do so. Temperature rise only higher than that when all water is vaporized. Do also not use a teflon pan! Heavy iron cast pans are much better because they can store much more energy. Even better are alternative searing methods, like deep-frying or the use of a MAPP-burner. Try out different methods and find your way.

Enjoy your meal!

Circuits Contest 2016

Runner Up in the
Circuits Contest 2016

Meat Contest 2016

Runner Up in the
Meat Contest 2016