L.O.G. Sous Vide




Introduction: L.O.G. Sous Vide

About: Lazy Old Geek

So have you heard of sous vide? Well, this Lazy Old Geek (LOG) hasn’t or hadn’t.
It’s French. So it’s kind of like boil-in-a-bag only you don’t boil it.
The equipment can be rather expensive.
I thought that was rather expensive for a tender steak, so I decided to make my own.
There are a lot of other Instructables on doing this:

WARNING: Do not attempt to make this project unless you are familiar with working with 120 VAC. There is a shock hazard and fire hazard if you don’t know what you’re doing.
WARNING: Be ware of pathogens. Sous vide techniques may not take care of pathogens if you don’t follow correct techniques.
Quoting Douglas Baldwin:
“Raw food often has millions of microorganisms on or in it; most of these microorganisms are spoilage or beneficial bacteria and won’t make you sick. But some of these microorganisms are pathogens that can make you sick if you eat too many of them. Most food pathogens are bacteria, but some are viruses, funguses, and parasites. Your yogurt, aged cheese, and cured salami can have hundreds of millions of spoilage or beneficial bacteria in every serving; but they don’t make you sick because spoilage and beneficial bacteria are distinct from pathogens. Since pathogens don’t spoil food, you can’t see, smell, or taste them.”

By the way, this is a great introduction to sous vide. For sous vide novices, I highly recommend looking at ths:
There's a lot of technical information that you may want to skim over.

Step 1: Design

As others have done, my design uses a simple crock pot as the heating element. It has to be simple as the temperature is controlled by controlling the AC going to it.
The controller is my own design Arduino using an LCD1602 for display and a Solid State Relay, SSR25DA to control AC for the crock pot.I also use a cheap USB power supply to provide 5Vdc for the Arduino. (see pictures)

Basic Theory: A temperature sensor is connected to the Arduino. The temperature sensor is placed in the crock pot submersed in water along with the food to be cooked. Two pushbuttons on the Arduino set the desired temperature. If the water temperature is below the set temperature, the SSR is turned on so AC is supplied to the crock pot and the water heats up. When the water temperature reaches the set temperature, the SSR turns off and the crock pot stops heating. Thus the water temperature stays at the set temperature.

Parts List

1 Crock Pot   Simple design, on-off or high-low-off
1 Double AC box
1 Double AC cover
1 AC Outlet
1 SSR25DA    Solid State Relay (see picture)
1 DS18B20 waterproof temperature probe
1 USB power supply (see picture)

1 L.O.G. souse vide PCB
1 ATmega328 microcontroller
1 LCD1602 display
1 16MHz crystal oscillator
2 22pF capacitors
1 47uFd 25V capacitor
1 0.01uFd capacitor
1 LED, 5mm
2 10K resistor
1 4.7K resistor
1 1K resistor
(2 KF301 connectors) not used
2 pushbutton tactile switch (tall)

I purchased most everything off of ebay and at my local hardware store. The crock pot is borrowed.

Step 2: DS18B20 Temperature Probe

So you may ask, why did I select the DS18B20 for the temperature probe? There are many devices that are a lot cheaper.

The main reason is because they’re pre-calibrated. They are accurate to within ½ a degree C.

On ebay, the DS18B20 comes in two types: one is the TO-92 three lead package. The second is the waterproof type shown in the picture.

I have some of the TO-92 types and was thinking about making my own waterproof submersible one but I was feeling Lazy so I bought the waterproof version.

Here’s the datasheet

The primary reason I selected the DS18B20 is the accuracy. It is calibrated to +/- 0.5C. Most of the other cheap temperature sensors have to (or should be) calibrated at various temperature points to achieve better accuracy.
Irrelevant Information: Calibration: A typical two point calibration is to use freezing temperature of water, 32F (0C)and boiling point of water, 212F (100C). But wait! This boiling point is only true at sea level. My altitude is about 4600 ft. so boiling water is about 203F. Okay, this is a lot of work and I’m LAZY so I will just assume that the DS18B20 is as accurate as claimed.
Secondary reason: the DS18B20 is digital as opposed to analog. Analog sensor accuracy varies with associated components and noise. Digital data is not subject to any of that.
Technobabble: The DS18B20 data is transferred serially, specifically SPI (Serial Peripheral Interface). But serial is digital. Simply speaking, there are two versions of digital data, serial and parallel.
Third reason: This one only a Geek can love. The DS18B20 uses something called a 1-wire buss. In theory what this means is that you only need one wire to connect the DS18B20 to the receiver (Arduino, in this case). In practice you need two wires as the circuit needs a ground. And full disclosure, I’m using three.

DS18B20 and the Arduino: So, of course the Arduino needs a special library for the DS18B20 or actually for the One wire. I think there may be variants on this library or at least different versions but I used this one:

Here’s some more info on DS18B20:

I am also using the Dallas Temperature library. I think the only thing I’m using it for is the conversion of Centigrade to Fahrenheit, which I could’ve written myself. However, there’s a lot of other things you can do with this library.

Some of these waterproof DS18B20 ebay listings show the color code of the wires. Mine did but the code was wrong. Since I had a TO92 version, I used an ohmmeter to compare. Red was 5V, Green was signal and Yellow was ground. You may have different results.

Step 3: L.O.G. Sous Vide PCB

Instead of using a standard Arduino and shield, I decided to build my own Arduino on a PCB.
There is a USB_BUB type connector like the one on a RBBB.
There’s places for connectors for 5Vdc, SSR and DS18B20 temperatrue probe.
This is a single sided PCB, so it’s easier for the DIYer to make. Because of this plus some space considerations, there are some unique problems. The Eagle Cadsoft schematic and PCB files are included.
The LCD1602 is attached to the back of this PCB.
1. The jumpers and all components except the pushbuttons and LED are soldered onto the component side.
2. The wires for the 5V-Gnd, SSR and DS18B20 come out the component side and are soldered to the solder side.
3. The pushbuttons and LED are inserted on the solder side. The LED is not inserted flush so that it sticks out and is easier to solder.
4. Male header pins are put in the solder side of the PCB and carefully soldered.
5. The LCD1602 is inserted onto the header pins and soldered.
(see pictures)

The schematic is attached. U$2 is for 5V in from USB power supply. The 10K potentiometer adjusts contrast on the LCD1602. The SSR connector goes to the SSR25DA (polarity is important) The DSx connections go to the DS18B20 temperature sensor.

I’ve included the Eagle Cadsoft files if you want to make your own PCB.

Step 4: DS18B20 Temperature Sensor

DS18B20 Address
Each DS18B20 sensor has a unique address. You need to know that address so that you can talk to it.
I would recommend that you test each DS18B20 on a breadboard and get its address before hand.
If you haven’t done this or can’t remember, here’s a way to find it after it’s already installed on one of these PCBs.

Connect the sous vide PCB to your PC with a USB adapter. I use a PL2303 module but you can also use a USB-BUB.
In the Arduino environment, make sure the correct serial port is selected. Under Board, select Arduino UNO.

Under ‘File’ ‘Examples’ scroll down to OneWire and select
In the sketch about eight lines down, you will see this
OneWire  ds(10);  // on pin 10 (a 4.7K resistor is necessary)
10 is the Digital pin used in the example. Change it to:
OneWire  ds(2);  // on pin 10 (a 4.7K resistor is necessary)
Upload the program to the Arduino.
Open your Serial Monitor and set for 9600 baud. You should see something like the picture.
The first line shows the address: 28 6B 88 B4 4 0 0 D1
FYI, this is in hexadecimal. Write it down or put it in a database. This needs to go into the sous vide sketch. (The second line identifies the sensor and the fourth shows the temperature)
When you exit the environment, you don’t need to save the changes.

Step 5: USB Power Supply

I did some minor modifications to the USB power supply to make it easier to fit in the box.
First test it to make sure it works. One of mine didn’t work. I have phones and tablets that are charged with USB.
The AC connector plate can be removed with a little prying. I used a utility knife.
The next picture shows what’s inside.
I removed the AC tangs, and the USB connector and replaced them with wires. (see picture)
Then put it back together. Put some hot glue on the ends. All this helps insulate the assembly.

Alternative: you could use it as is. The AC outlet can be wired so one connector is always has power and one is switched. The USB power supply is plugged into the first and a USB cable is plugged in and powers the 'Arduino.'

Step 6: Arduino Sketch

You need the OneWire and DallasTemperature libraries.
I also replaced the LiquidCrystal library with LiquidCrystal_I2C library by Francisco Malpartida. (Attached)

Sketch is attached.
You must change the following line to the address you recorded.
DeviceAddress thermometer = { 0x28, 0x88, 0x58, 0xBD, 0x04, 0x00, 0x00, 0x6C };
      (The 0x s before each number means it's a hexadecimal number)
I set the minimum temperature to 43C and the maximum to 84C. You can change these.
The sketch can be loaded with just the USB_BUB adapter for power.
The LCD contrast can be adjusted with the potentiometer. (You will probably have to readjust it when you have it connected up to the internal power supply)

The display shows the Set temperature in Fahrenheit and Centigrade on the first line.
The second line shows the DS18B20 temperature.

The set temperature can be adjusted with the up and down buttons.
If the probe temperature is less than the set temp, the LED will be off and the SSR on(heating the crock pot).
When the probe gets up to within 2C of the set, the LED will slowly blink. When it gets to the set temperature it will be on steady.
Technobabble: I added a little hysteresis so the temperature shouldn't overshoot the set temp by very much.

Step 7: Assembling Sous Vide Box

I used a double AC outlet box for convenience and safety.
The wiring diagram shows how everything is wired together. For US users, the AC pin that’s shorter is the ‘hot’ side and is the one that should be switched.

I used an old AC plug for the power connector.

The double outlet cover had to be modified to fit the LCD1602 and mounting holes.
I used a dremel clone and did a lousy job. Yes, it cracked the plate, so I superglued it back together. I also drilled the holes for the mounting screws, the LED and the up and down buttons.

I attached the LCD with nylon screws, attached the AC outlet to the box and tried fitting in the cover. Well,  the PCB extended into the box so I had to cut a notch out for the PCB. I hadn’t planned any of this out but this was helpful as the PCB is just suspended by the LCD pins and the notch helps support the PCB. I also had to drill and dremel clearance notches for the LCD mounting screws. (see pictures)

Assembly: The SSR25DA goes on the bottom of one side with the AC outlet above it. My SSR25DA came with a cover to help insulate it.
The USB power supply goes in the bottom of the other side with the PCB assembly above it. The DS18B20 also exits the bottom of the box.
Wire up per diagram.

NOTE: I used too heavy a gauge wire. This made it very cumbersome to get it all crammed in there. Something like 22 gauge wire would be fine for the 5V and the SSR. 

Step 8: Operation

WARNING:As pointed out by a reader. Solder is not good for human consumption. The vacuum sealed bag will prevent contamination unless it leaks. And the latest is that copper maybe be bad for people also. This is a warning for the wire rack. 
I made a little wire rack to suspend the DS18B20 probe in the water so it wouldn’t be touching the crock pot or the food packet. I used AC copper wiring and soldered connections.

Suggestion: Warm the water up to set temperature before adding food.

Plug the crock pot into the sous vide outlet box.
Put the DS18B20 into the wire rack. I used a tie wrap to hold it in place.
Put the rack into the crock pot.
Add lots of water.
Plug the outlet box into AC.
Set the temperature.
Turn the crock pot to High or On.
Wait for the water to reach set temp.
  (I have a couple of IR thermometers and verified that the set temperature was what it was supposed to be)

I bought a ZipLoc vacuum starter kit.
Put the food in the bag.
While expelling most of the air, close the top seal very tightly.
Put the vacuum pump over the round spot.
Pump out the air.

When the sous vide reaches set temp, place the food in the crock pot. I placed a dish over it to help hold it under water.
This pieces of roast took about 15 minutes to get back to set temperature.
Once set temperature is reached, you can set the crock pot to low. I don’t think it’ll make much difference.
Cook the food for an adequate amount of time. 

Since I forgot about it, It cooked for 30 hours. The meat was supertender. I ate it with a fork. One of the nice things about sous vide is that 'cooking' time is not really critical. It's great for an OLD Geek.

Arduino Contest

Participated in the
Arduino Contest

Weekend Projects Contest

Participated in the
Weekend Projects Contest

I Could Make That Contest

Participated in the
I Could Make That Contest

Be the First to Share


    • Meatless Challenge

      Meatless Challenge
    • Eggs Challenge

      Eggs Challenge
    • Build a Tool Contest

      Build a Tool Contest



    10 months ago

    I built one last week and modified the code very slightly to control a room fan heater. It works very well and is so much better than the useless in-built thermostat. If someone wishes to build one themselves just remember to use a large heat-sink on the SSR when controlling a heavy load such as a heater.
    I did build a unit for sous-vide quite some time ago and it still works quite well. Good fun.


    7 years ago on Step 6

    I liked this Instructable. I too am a LOG (65+) that has been fooling with sous vide for about11 Months. I like the results.Time to build a real controller! Your instructions and sketch were quite valuable to me. When I finally get 'er done I'll let you know if you are interested. I will likely use different hardware as I am lazy too. I just got a pair of "Mini Pros"?? to try out and this is the perfect project. And they are cheap! Less than $3.00 each, free shipping. Thanks for the lessons and sketch!


    Reply 7 years ago on Step 6

    Thanks, I started using the Pro Minis for project, too. They are incredibly cheap. I just converted some 5V Pro Minis to 8MHz 3.3V Pro Minis:


    Yes, I'd be interested in how your sous vide worked out. I've only used mine a couple of times but am happy with the results.



    8 years ago on Introduction

    Hi, when I'm making 12V version, I can't use DS18B20, can I?


    Reply 8 years ago on Introduction

    I am not quite sure what you mean. The DS18B20 needs 3 to 5Vdc.

    When you say a 12V version, I am guessing that you are talking about a regular Arduino Duemilanove or UNO. These boards can be powered by 12V but they all have a 5V output pin. So with these you can still use the DS18B20. Just connect the Vdd pin (and the resistor) to the 5V pin.



    Reply 8 years ago on Introduction

    I'm not talking about Arduino, I'm trying to build one out of these: http://www.ebay.com/itm/181350754907?ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1423.l2649


    Reply 8 years ago on Introduction

    That's an interesting little board. It looks like it already comes with a temperature sensor so it does not need a DS18B20. As far as I can tell, you should be able to connect up your crock pot, apply 12V and it should be ready to go. I hope it came with instructions that you can read as it looks like the temperature sensor needs to be calibrated. (By the way, the DS18B20 would not work with this board).



    Reply 8 years ago on Introduction

    OK, thanks for reply. But it does not come with a sensor, although it is on pictures.


    Reply 8 years ago on Introduction

    Well, that's terrible.

    The description says you need an NTC 10K 0.5% thermal sensor. You can find this on ebay by searching for "NTC 10K waterproof." Most of them are 1% which is probably okay for a sous vide but I did see 0.5% for a lot more money.

    Also in some of the descriptions it says "Stainless steel sheath and waterproof.(do not suggest used in water for a long time)"

    I'm not sure what that means.

    Some of them come with connectors but I don't have any idea if they're compatible.



    Reply 8 years ago on Introduction

    Thanks for the info, I am going to (or already have) get the board + the 1% sensor, just wasn't sure if that would work.


    8 years ago on Introduction

    Dear Manager/Sir,
    How are you?
    This is Yoseph from Wuhan Amate Technology Co., Ltd, a leading wireless temperature monitoring system & solution provider from China.

    Dear Manager/Sir, we came across your esteemed company info on the internet, and guess your esteemed company (specializing in similiar temperature measurement industry or logistics transportation) may have potential need or interest in our Wireless Temperature Monitoring/Measuring System or Solutions, thus we take the liberty to write to you, with hope of self-introduction & communication bridging.

    A brief introduction of us, Wuhan Amate has established on the base of two Chinese national key universities’ laboratories professionals in 2001. After more than 10 years development, featured in customer oriented and innovation-driven, we are now ranking among the top three Industrial Wireless Temperature Monitoring System Providers domestically. Our products mainly consist of Wireless Temperature Sensors/Transmitters, Wireless Temperature Display/Monitor/Data Logger/Data Receiver/Collector, Wireless Temperature Workstation/Data Server/Software that constitute the whole wireless temperature monitoring system.

    Dear Manager/Sir, should you are in the relevant field and have potential need of or interest in our wireless temperature monitoring systems or solutions, please feel free to contact us. If our info doesn’t appeal to you, we apologize for this boring “Email marketing” in advance and please kindly inform us to avoid further “junk emails”.

    And finally, we do appreciate your precious time of viewing this letter and looking forward to your favorable response..
    Best Regards,
    Yoseph Tsin Marketing Director
    Overseas Marketing & Sales Dept. of Wuhan Amate Technology Co., Ltd
    Add.: No.5 Building, Guandong Science Park, Wuhan East Lake National High-Tech Development Zone, Wuhan, Hubei
    Email:yoseph@amate.com.cn Skype:yoseph_amate
    Backup email:yoseph_amate@hotmail.com (MSN)
    URL: www.amate.com.cn


    8 years ago on Step 8

    There is no temperature differentiation on a Crockpot with Off-LOW-HIGH settings. This is a power control mechanism that reduces the current to alter the speed at which your Crockpot unit reaches its maximum temperature (between 170 ~ 190°F depending on your unit). A Crockpot on LOW setting, will reach it's maximum cooking temperature in about 1 to 2 hours, a Crockpot on HIGH setting will reach it's Maximum cooking temperature in about 30 minutes. Please note that this may vary from unit to unit, so I would suggest just doing some initial readings using the Temperature probe so you know the specifics of your particular unit. My recommendation for your project, is that if you have a High/Low setting, set it to High and leave it there as you will be controlling the power output from the Arduino anyway.

    Otherwise, awesome project, I've been thinking about making one of these and this is a very nice idea on how to do it.


    Reply 8 years ago on Step 8

    Yes, that's why I chose a simple crock pot. The way I use it is to turn on the crock pot with just water on high until it gets up to temperature than stick the food in. That reduces the time the food is sitting at a low temperature. I leave it on high until it gets back up to temperature, then I reduce it to low. I doubt it makes much difference but I don't want it to overshoot my set temperature.



    8 years ago on Introduction

    Most solder isn't food safe since it does contain lead. If you want to reuse the crock pot for anything else or, if the bag opens during cooking, it might be better to buy a stainless steel steaming rack from anywhere-cooking-mart rather than bother with the rick.


    Reply 8 years ago on Introduction

    Good point. I was thinking the vacuum bag would take care of it but like you say, if it leaked?? And the latest medical news is that copper may be bad for you also.



    8 years ago on Step 7

    Hi, cool project! I did something very similar to control a room's temperature. I used perfboard for my project and I used a n N-channel MOSFET and a 12v relay to control the a/c. You also should've put a reset button, but I didn't either.


    Reply 8 years ago on Step 7


    I usually don't put in reset buttons. This is pretty easy to reset by just unplugging and plugging.

    I like your idea of a thermostat.



    8 years ago on Step 2

    You mention that you used an ohm meter to compare the leads on the DS18B20 to determine "Red was 5V, Green was signal and Yellow was ground" can you please expound on how you did this.


    Reply 8 years ago on Step 2

    Yes. Most DMMs have a 'ohm's setting for diodes. Set it to diodes. Using a TO-92 DS18B20, I measured various combinations and directions to get some readings.In my case, I think I put the red lead on Gnd and the black on DQ and got about .613. Then I left the red on Gnd and the black on Vcc and got a reading of about .940. So the waterproof version is electrically just a TO-92 with extra wires, you just measure different combinations until you get the same results. Now your DMM will likely have different reading but there should be one common (Gnd) and one with a lower reading (DQ) and one with a higher reading (Vcc).
    Hope this makes sense.