Sous-vide Cooking

My love of gadgets is, I think, already well-established on these pages. I love food just as well, so it was probably inevitable that I’d decide to take some food and Do Science to It. And takes pictures of myself doing it. And put up a blog post about it.

Say you want a steak cooked perfectly, edge to edge. That means bringing the internal temperature of the entire thing to exactly the right point. It’s hard to do with a grill or a pan or a broiler, since those heat the outside more and the middle less, and you have to tightly control both time and temperature vs. the cut of meat.

The idea of sous-vide cooking is really simple: put the meat in an airtight, watertight vacuum bag. Plunge it into a water bath that’s exactly the temperature you want. Leave it there for a few hours — an hour plus or minus makes no difference. The devil, as usual, lies in the details — after the jump.

Safety

This is Mad Science, and as such there are some easy (and in one case, non-obvious) ways to kill yourself. Here at SGS, safety is definitely one of our top ten priorities, so we kind of hope that if you actually do this, you’ll read this section and boost your chances of survival.

The non-obvious risk is food safety, specifically botulism. The bacteria that cause botulism are killed at the temperatures we’ll be using, but their spores are not, nor are the toxins they create destroyed. Assuming that you’re starting with safe, cold meat: once you warm it up,  no part of the meat can spend more than four hours at any temperature under 55°C (131°F).

In other words, if you’re cooking to 129°F, everybody had better be done eating it four hours (minus safety factor) of when it came out of the fridge. If your thermostat flakes out and the water bath drops under 55°C for you don’t know how long, then you just made poison and it needs to go in the garbage. Do not rely upon the nasal appraisal; you cannot smell botulinum toxin.

Oh, and you’re also mixing line voltage electricity, heating elements and water. So, you can also look forward to burns, electrocution and/or fires if you mess up.

The Dread Apparatus

The basic requirements aren’t too complicated: Take a container of water, big enough to immerse some vacuum-bagged food. Heat it up to a selectable temperature well-short of boiling. Keep it heated to that temperature as precisely as reasonably possible. Move the water around.

For the container of water part, I used a simple polystyrene cooler of the sort used to ship frozen food. I happened to have a clean one around, and no other plans for it. It’s a win for recycling, cheapness and hackery. It’s also a win because it provides pretty good insulation, which means less power input required to hold a stable temperature.

To circulate the water, I got an air pump of the sort used for small aquaria, a length of silicone tubing and an air-stone. Most homebrew sous-vide setups use a water pump for circulation. I wanted to try an air-based design, since it was cheap and didn’t involve water having to leave and re-enter the containment vessel.

Electric heat seemed an obvious choice. I bought a simple 500W immersion heater of the sort used to boil a single cup of water for tea. It was only a few dollars, plenty powerful for my needs, and runs on simple 110VAC.

The control system was the real trick. A common bang-bang (hysteresis) thermostat would bounce the temperature up and down too much, even assuming it could be made to measure it precisely enough in the first place. A PID controller (a proportional controller that looks at both the current temperature and the rate of change) would be needed.

When I started, I was planning on making my own AVR-based controller, which would have required quite a bit of work. A little searching on the web revealed purpose-built PID controller for $32.50: the JLD612 (see also: 250KB PDF manual).

The JLD612 controller supports a wide variety of temperature sensors, but only with a Pt-100 thermocouple would it support 0.1°F resolution. It turns out they’re not terribly expensive, so that’s what I chose.

To allow the controller to switch the 500W load, I needed some kind of switching device. A mechanical relay would work, but would wear out very quickly (and be quite noisy) when switched several times a second. A solid-state relay (really just a MOSFET-based switching circuit) would be a better choice, and it turns out they’re quite cheap. I got a Futek 90A model (which is way over-spec, but didn’t cost much more than lower-rated models).

I found a 3′ extension cord rated for 15A for $3.50 at Target, which provided an easy solution for the high-current wiring.

Update: I also have a schematic as PDF document (5KB) or a gEDA project (3KB .zip file).

Update: By request, here is a table of connections to the PID controller by pin number:

  • 1: 110VAC live
  • 2: 110VAC neutral (I don’t think it matters if you swap pins 1 and 2)
  • 6: SSR control positive
  • 7: SSR control negative (polarity does matter here!)
  • 9: one of the balanced pair of temperature probe leads which are connected together at the probe end, AND shorted to the temperature probe shield using an alligator clip
  • 10: the other lead in the balanced pair from the temperature probe (it shouldn’t matter which way around you connect these, nor to which of them you short the shield)
  • 8: the third temperature probe lead that goes to the opposite side of the sensing junction from the balanced pair
  • All others: no connection.

alligator clip connected to outer braid of temperature probe

Here are some pictures showing the jumper from the outer braided shield of the temperature probe to the PID controller. This was added
after the fact to solve a problem with rapidly fluctuating temperature readings.

Preliminary Testing

For homebrew gadgets as well as software development, I subscribe to the “fail early, fail often” philosophy. Basically, that means doing the smallest possible thing that lets you see a result, then checking that result before going on. That means you learn about problems early and with minimal bad consequences, and hopefully don’t have to re-do a lot of work. An experiment isn’t a failure if it doesn’t do what you wanted or expected; it’s only a failure if you don’t learn anything.

So, for the sous-vide cooker, I built it in lots of little steps.

The first test was to apply power to the PID controller and check that it would boot up and do something. No problems there.

Next, to connect the temperature sensor. That was a little more challenging, since it’s a three-wire sensor. The label on the outside of the PID controller was clear about which three terminals were for the sensor, but not so clear about which wire goes where. The documentation was no help. Well, there are only six possible permutations. By learning a little bit about how the sensor works, I convinced myself that I was unlikely to hurt anything by hooking it up wrong, and that the order of the two identical-looking leads shouldn’t matter (so really, only three permutations to try). Of course, that meant I got it on the third try.

The controller manual had reasonably decent instructions about how to set the sensor type, though it took me a while to figure out that “Pt100” and “P10.0” were both for Pt-100 sensors, but the latter should be used for 0.1° resolution.

Now that I had a temperature displayed, I did some of the obvious tests (glass of ice water; comparing result against various other thermometers) and decided that the result seemed to be accurate.

Next step: wiring up the control connection to the solid-state relay. Two wires, clear labels; easy. The indicator light on the relay turned on and off in sync with the “output” light on the controller.

Wiring up the high-current side was the last step in the build. There was no mystery to it, just a lot of being careful that the connections were all solid and well-insulated.

As an early operational test, I used the rig to control a saucepan full of water on an electric hot-plate. Fortunately for me, my PID controller has an auto-tuning feature. Everything seemed to work well, although the temperature readings on the panel seemed to oscillate about a degree peak-to-peak every couple of seconds. The actual temperature (measured with another thermometer) was right on. The solid-state relay didn’t seem to be dissipating any heat at all (and this with a 1500W load, three times what I planned to use in the final design).

Experimental Protocol

For the first real test, I procured a package of flat-iron steaks from the local grocery. (This is an inexpensive cut, and one which I’d seen mentioned on other sous-vide cooking sites.)

I filled the cooler with water, ran the PID controller through a tuning cycle and brought it up to temperature (134.0°F). The temperature seemed to be correct and stable, though the oscillations in the displayed temperature were more pronounced, as much as three degrees peak-to-peak.

I sealed two vacuum bags, each containing two small steaks, and placed them in the water.

The first, I removed after two and half hours. I dried the steaks with a paper towel, pan-seared them and consumed. They were cooked perfectly and tasted good. Very beef-y flavor, and pleasant texture. (They’d have been better with a little salt and pepper, but this was for science and I wanted to see what the meat tasted like on its own before I started messing with it.)

The second bag, I removed after 24 hours, and pan-seared as with the first batch. The done-ness and color was fine, but the texture was a little bit too soft.

A subsequent experiment (involving Akaushi beef and searing on a very hot grill instead of a pan) produced absolutely excellent results.

Engineering Challenges

Although the first attempt was a success overall, there were a few things that didn’t work to my satisfaction. As any (pen-and-paper) RPG player can tell you, experience is what you get when you don’t get what you wanted. Experiences:

  • The temperature probe seems to be extremely susceptible to electrical noise. (It holds steady sitting on the bench, but the displayed reading oscillates over and under the actual if anything is electrically coupled to the shield — even touching the middle of the cable with your hand causes this.) Fortunately, the average temperature comes out right, so it still holds the actual temperature very close to the set point. (Update: Solved! Coupling the shield to one of the wires in the return pair makes it perfectly stable.)
  • The aquarium air-stone I bought is too big for the air pump; it only bubbles from one corner, providing no real benefit over just sticking the hose in there.
  • The aquarium air-stone is intended to be buried under gravel; if not thus installed, it tends to float.
  • I don’t think the aquarium air-stone was designed for operation at 135°F. It is starting to disintegrate after a couple of uses.
  • When the heater is constantly on (such as when bringing a new batch of cold water up to temperature), the rig works fine plugged in to a GFCI-protected outlet. As soon as it starts switching on and off, it pops the GFCI, apparently because of capacitative coupling between the ground and live lines in the heater. Breaking the connection between heater ground and outlet ground prevents this, but is somewhat scary.
  • Pumping in air as a way to circulate the water works, but that (now-very-hot-and-humid) air has to go somewhere. In my case, it poured out under the lid of the cooler and immediately condensed, leading to messy drips.
  • Some corrosion was observed on the fixtures of the temperature sensor.

Lessons Learned

  • This really works. It results in food which is not only edible but also good, with less hassle and uncertainty than other cooking methods.
  • Cheap cuts of meat that are normally objectionably tough and require tenderizing or marinating can be made very tender by cooking sous-vide. The flavor and mouth-feel rivals that of “good” cuts.
  • However, those cheap cuts of meat can also contain gristly bits of connective tissue which are unpleasant, and cooking sous-vide does nothing to magically fix this.
  • Even in sous-vide cooking, you can overcook things, and there is such a thing as too tender. The 24-hour batch was starting to verge on mushy, and wasn’t very nice.
  • Some kind of seasoning makes for a big improvement.
  • Browning the meat is still the weak link in the chain for me.

Future Directions

  • The polystyrene foam cooler I’m using as a containment vessel will need to be replaced with something more solid. I don’t think it will stand up to too many more uses. I expect that the weak point will be the hole I drilled to install the temperature probe.
  • The plastic box used to hold the prototype control system is also pretty awful. Using a proper project box, and bolting down the solid-state relay would be a big improvement.
  • Moving the heater and temperature probe outside the cooking vessel, then pumping water past them might be a more tidy solution. It should provide better circulation than the air system, make less of a drippy mess from escaping moist air, and would leave more room for food in the bath. (It’s hard to put more than a couple steaks in there now, as I’m worried about them directly touching the heating element.)
  • The PID controller has some programmable alarm outputs that are crying out to be used for something. At a minimum, a buzzer for over-temp would be nice. Maybe a timer for “elapsed time under botulinum safe-point” would be useful too.
  • Replacing the PID controller with a custom AVR-based system would be a lot of work, but much more hackable.
  • Instead of using a solid-state relay that turns on every few seconds, it might be neat to try continuously-variable power (via waveform modification, like a solid-state lamp dimmer) instead. Solving RFI issues would be something of a challenge, though.

[Updated 2010-09-24 DGH to add links to schematic.]

[Updated 2010-12-01 DGH to add pin assignments for PID controller.]

By dhenke

Email: dhenke@mythopoeic.org

42 comments

  1. Michael @#1: Lacking fascination with science and posting Fark photoshop memes in comment threads is no way to go through life, son.

  2. This looks awesome. I just bought the PID and will be buying the rest of the components. Do you have any pictures showing a bit more clearly about which wire goes where? I looked at your pdf and that helps, but if you can enlighten me as to which wires go onto the 1 of 14 nodes on the PID . . .

    For example – does the AC in 1 correspond to screw #1 on the JLD612 . . . and J2B correspond to screw #14?

    Also – can you explain a bit more about the shield and how that’s coupled the the PT-100 and the PID?

    Much appreciated . . . and great work.

  3. Jerry @#3: I will add some details of the pin assignments in the next few days. (I don’t have my PID controller in front of me right now to look at.)

    The temperature probe has three wires. Two of them go to the same side of the sensing junction, and are connected at the probe end. The third one goes to the opposite side of the junction. (This arrangement lets the controller measure and cancel out the resistance of the wire.)

    The probe I’m using has a metal jacket, not connected to any of the wires. To get a stable reading, I shorted that jacket (at the PID end) to one of the first two wires. (It did not seem to matter which one.)

  4. Jerry @#3: I have added a table of pin assignments to the end of the “Dread Apparatus” section. Sorry it took me so long.

    Please let me know if you have any other questions, and thanks for reading.

  5. Thanks – I will try that! Just renovated the kitchen and a bit preoccupied. Very much looking forward to trying this out.

  6. Many thanks for coming up with a solution to the noise issue. I’m got the same components, but using a crockpot instead of an immersion heater (at least for now).
    I’ve notice some corrosion on the probe also… has it caused you any problems?

  7. Mike @#7: I’m glad the hack of grounding the probe shield helped you. The crock pot is a nifty idea; since I have one anyway I might try that when my styrofoam cooler bites the dust.

    I’ve seen some discoloration of the probe — white crusty stuff that looks like lime scale on the bit that’s in contact with water. As far as I can tell, it’s just crud stuck to the metal rather than the metal itself corroding, and in any case it hasn’t caused any trouble that I can detect.

    If it got thick enough, I suppose it would thermally insulate the probe enough to change the impulse response of the system, in which case I’d either have to clean it off, or run the PID controller through another auto-tune cycle.

    (Actually, I tend to auto-tune before every use anyway, just because it’s easier than being perfectly consistent about the amount of water I put in…)

  8. Quick question — what kind of temperature overshoot do you see during autotuning? I just tried running an autotune with a target temp of 49C (120F) and stopped the test when the temp reached 75C.

    FYI, on a tip from a comment at http://mythopoeic.org/sous-vide-cooking/, I just picked up an indoor turkey fryer on sale from Lowes which seems ideal for sous-vide. It’s pretty much a 4 gallon tank with 1500 watt immersion heater.

  9. Mike @#9: I see a lot less overshoot than that. I didn’t record it, but from memory it wasn’t much more than 5C.

    OTOH, my rig is putting about 500W of heat into maybe two gallons of water.

    My suspicion is that your heating element has substantial thermal mass, and continues to put a bunch of heat into the water even after the electricity powering it is stopped.

    The auto-tune should be able to figure it out (eventually). I’d say let it run all the way up to boiling. If your turkey cooker is designed for frying temperatures, then it shouldn’t be hurt by 100C.

    (BTW, I’m assuming here that you’re running your tuning cycle with just water in the cooker and no food! That’s the way I’ve been doing it, and so far the addition of food after the tune cycle is done and the temperature is stable hasn’t changed the impulse response of the system enough to cause a problem.)

  10. Just thought I’d let you know how things turned out — I took a break after becoming frustrated with my auto-tune problems.
    Tonight I doubled checked the wiring, went through the JLD612 manual, and scanned the lightobject.com forums…
    DOH!
    Turns out I had been holding down the Set button (instead of the “>” button) to start auto-tune. The AT light flashes, and the SSR turns on, but it doesn’t stop at the target temperature.

    I just ran a couple of tests and successfully auto-tuned to different temperatures.
    Looking forward to cooking this weekend!

  11. I’m glad I found your site! I built one practically identical to yours, without knowing it, but I put a plug-in jack for the probe. I was having interference when the heating element was in the water, and just tried the shield jumper trick and it stabilized nicely. Thanks for the tip!

  12. Paul Miller @#12: The plug-in jack for the jumper is actually a really good idea. I’m thinking about upgrading to a nicer enclosure, and I’ll probably make the probe detachable when I do so.

    I’m glad the trick with shorting the shield to one side of the balanced pair was helpful.

  13. I was troubleshooting noise issues with my DIY sous vide device (also using the JLD-612 and a PT-100 probe) and came across your site! Got the probe shield coupled to the return and it’s nice and steady now. I also experimented using an AVR (arduino with a PID library) but figured after I added the interface and buttons I’d be in for way more than the 612.

    I am using a 28Q Coleman cooler and 2, 300W immersion heaters (used for a cup of coffee – little mass) – might add a third but it has no problem holding a temp, just takes a while to get there :-)

  14. When the Norpro heating element was plugged in and in the same water as the PT100, the temperature readings fluctuated rapidly within a 5F range. This happened even if the Norpro was not on, but simply plugged in.

    I tried the jumper solution (*) and it seemed encouraging – the fluctuations stopped. However, the temperature reading went up several degress (while in water that was around 65F).

    The biggest problem was when I attempted to calibrate by putting the PT100 probe into boiling water. (The Norpro heater was not used – this was a pot of water boiling on the gas stove.) With the jumper attached the readings fluctuated quite a bit and were around 240F. With the jumper removed the fluctuations were less and the temperature was near 212F.

    So it seems I’ve traded one problem (rapid temperature reading fluctuations when in the same water as a Norpro heater) for another problem (temperature error and, it seems, a temperature error that increases with increasing temperature).

    Any thoughts?

    * My “jumper” for this test was an aligator clip onto about 2′ of solid insulated copper wire with the other end bare wire (1/2″). The aligator clip was attached to the shield and the bare wire screwed into the back of PID #10 along with the third PT100 spade.

  15. Tew @#15: Does the temperature readout fluctuate with the Norpro unplugged (but still in the water with the probe)? What about when the probe is out of water and you just grab the shield with your hand?

    Does the part of the Norpro heater that’s in contact with the water have (DC) continuity with the neutral side of the supply? (If so, that scares me.)

    If not, try grounding the outside of the Norpro (to the supply ground, not the PID pin #10).

    Other things I might try are connecting the jumper to PID pin #9 (instead of #10), and/or connecting it via a blocking capacitor (or 1K resistor).

    FWIW, my jumper is nearly identical to yours except I used stranded wire. My rig passes the boiling water test. Maybe the difference is in the sensors? Mine is this one sourced from Lightobject.

  16. dhenke @#16,

    Thanks for your response. FYI, I am using a less expensive (cheaper?) PT100 shown here: http://www.virtualvillage.com/thermocouple-temperature-probe-pt100-003820-034.html

    I did experience the fluctuation issues when touching the shield (when fare foot, not with rubber soled shoes). I describe this in more detail in the following thread: http://www.lightobject.info/viewtopic.php?f=5&t=603

    (Note that the first post to that thread includes useful links to three other brief threads. Also note that the thread is still “open” as I’m hoping for another reply there.)

    (You’ll note that I did switch to a stranded wire for my jumper.)

    As for the immersed portion of the Norpro heater having (DC) continuity with the supply: I don’t think so. I’m still improving my electrical knowledge, but I’m not sure how this would happen. Wouldn’t the water bath itself (or a conductive edge of the vessel along with the Norpro coil) need to be connected to the supply neutral?

  17. Tew @#16: Thanks for the link to the lightobject thread. I learned a lot from it and commend it to other readers. (I thought the suggestion about the filtering caps was especially interesting, and is likely something I’ll try myself.)

    Let me explain my continuity question a little better: In your AC supply, you have (or should have) three wires. There’s a safety (earth) ground, usually bare copper or with green insulation. There’s a neutral (white insulation) which should be at 0V potential relative to ground (but often isn’t). There’s a hot (black insulation) which should be a 60Hz sine wave with peaks at about +160V and -160V relative to neutral. (That’s 115VAC RMS,)

    If your heater is like mine, it has metal coils in direct contact with the water. Ideally, they’ll be grounded (to the earth ground). So if, with the heater unplugged, you connect a multimeter to the ground wire and the outside of the heater, you should see a really low resistance.

    Less ideal but still okay is if the outside of the heater is not connected to anything. (Multimeter shows very high resistance from outside of heater to each of the three wires.)

    Scary is if the outside of the heater is tied to neutral. If you connect it to a properly wired outlet, at best it’ll be a noise source to anything in the water with it (like your probe.) At worst, you plug it into a (disturbingly common!) wrongly wired output, the outside is now hot and it’s a death trap. Not that I have anything against a good death trap, mind you, but I’d really rather they get built by design rather than by accident.

    In the event that your heater has only two wires, then it’s supposed to be double-insulated and the outside shouldn’t have continuity to anything.

  18. dhenke @#18: I’m glad that in asking my questions I was able to help a little with those lightobject links.

    It sounds like you have a three pronged plug for your heater. Do you know what make and model you’ve got?

    I’ve got a two pronged heater. See: http://www.acehardware.com/product/index.jsp?productId=1333319

    I used my multimeter to test continuity and resistance. If I touch either one of the prongs with one lead and the metal coil with the other, I get no continuity and no resistance reading (which I think means effective infinity for my multimeter’s capability). (If I touch a lead on each prong I get continuity and get a resistance of 50 ohms.)

    (The supply for the PID has a ground, but the PID does not accept a ground. That ground is also present to the strip into which the heater plugs. But, as I mentioned, I’ve only got a two pronged heater.)

    Anyway, my heater seems to check out fine. Maybe it’s the nature of this type of A/C heater to generate eddies / inductive currents or something like that.

  19. Tew @#19: Sounds like your heater is fine. (Mine is two-pronged, double insulated, much like this one, FWIW.)

    There will always be inductive coupling in something where you’ve got substantial AC currents flowing near conductors.

    An experiment: Try disconnecting your jumper from PID pin #10, and connecting it to the earth ground in the supply for the PID. Does that help at all?

    If not, the blocking caps from the lightobject thread are a good idea.

    Failing that, my only other thought would be to try a different probe.

    Happy hacking!

  20. dhenke @#20

    Sounds good – I’ve got this narrowed down.

    Alas though, my PLD612 PID controller does not accept an earth ground to my knowledge – I’ve got the hot and neutral wired to pins #1 & #2.

    I’ll report back when I attempt additional measures (some or all of the following: capacitors, different heater, different probe, etc.)

  21. Neither the jumper nor the capacitors solved my problem. For details see: http://www.lightobject.info/viewtopic.php?f=5&t=603

    I tried a new PT100 probe – same model from Virtual Village – and it does not have the problem. Thus, it appears that the noise interference temperature fluctuation problem was due to a (partially) faulty PT100.

  22. I think I love you! I’m experienced in sous vide, but when I lost my last job, I lost my equipment too…just getting rebooted here at home, and I ended up with jld612, not realizing it wasn’t equipped with AC plugs in and out, so your instructions have been helpful. I’m a philosopher, not an electrician, but I’m sure i can find someone to help me here in Portland, OR. thanks again
    Norm King

  23. I just finished my sous vide and thought I had (shockingly) managed to get it all working on the first try. Then the water got over about 50C and the temp from the probe started bouncing all over the place 58, 59, 62, 58, 67…..

    I am no electrician but qualified enough to get it all together in the first place. Can you explain the “jumper” solution, possibly with a picture?

    Thanks

    I have the JLD612 and a PT100 from LightObject (with 1 red and 2 blue wires)

  24. Philip @#24:
    I think I have the same sensor as you (the one with the metal housing and the metal braid on the outside of the cable), and I had a similar problem at first.

    The “jumper” solution involved putting an alligator clip on that metal braid on the outside of the cable, with a wire leading to terminal #9 on the JLD612. (One of the blue wires is also connected to the same terminal.)

    I’ll try to add a picture in the next few days.

    As for *why* it works, I’m not sure. I’m suspecting electrical noise from the heater being inductively coupled, but I haven’t put a scope on it to check.

    I should also point out that the jumper solution hasn’t worked for everybody. (See comment #21 upthread, for example.)

    Happy hacking, all.

  25. I have the same SSR as you, but I’m not able to tell whether pin 1 or 2 is the AC out or AC in. Could you enlighten me?

    Thanks!

  26. It doesn’t matter which of those two terminals on the SSR you connect to the supply vs. the load. Think of the SSR as analogous to a switch; when it’s closed, there’s continuity between those two terminals, and when it’s open, there’s no continuity. (To answer the question you actually asked: they swap which one is “in” and which is “out” 60 times a second — it’s *alternating* current.)

    Note that the control side of the SSR is DC, and polarity very much does matter there. It’s clearly marked, though.

  27. Philip @#24: I have added some pictures of the jumper wire. Hopefully that will help make it clear.

    Aside: I built a second version of the cooker for a friend. I plan to do another whole post about it, but one of the improvements was to use the waterproof Pt100 probe from LightObject. It did not exhibit the “bouncy temperature” problem, and did not require a jumper.

  28. The tip about the alligator clip solved my latent, rapidly fluctuating temperature readings too. Thanks!

  29. I am doing the auto-tune, but the light will just stay blinking blinking blinking.
    When you auto-tune the PID, does it matter what current temp is? No way can I keep water the same temp for an hour or so (if I could, I wouldn’t need to build a unit like this).
    From my understanding, the settings (from the auto-tune) are based on the probe type – I’m using the 3 wire pt100, someone maybe want to just post their settings so I can bypass the auto-tune?

  30. Tom @#30: When you do the auto-tune, you are pressing and holding the “>” button and not one of the other buttons, right? (Sorry if that’s a dumb question — I ask only because I made that mistake myself and saw the same symptoms.)

    It should not matter what the starting temp of the water is. (Within reason. If your environment is very cold, your heater very small and your containment vessel very poorly insulated, it’ll never be able to warm it up. If your environment and water are already over the set point, it won’t be able to tune.)

    Normally, when you tune, the controller will fire up the heater, fiddle around a bit, overshoot the set point by quite a bit, then settle down in a nice steady state.

    The settings are based on a whole lot more than the probe type! They depend on the impulse response of the entire system. In other words, if I have the exact same heater and probe as you, but I use a different container and/or a different amount of water, my settings will be different. (It’s probably overkill, but I re-tune each time just so I don’t have to be careful about measuring the water.)

  31. I still don’t get the auto-tuning.. Why can’t it be as simple as simple “turn on when X degrees before the set value, and turn off on the set value..

    I am 1000% sure I have the wiring correct, but weird stuff is happening.. Now, I’ve tried auto-tuning, many times and ways.. but sometimes my SSR will activate the heating element, even without the red light lighting up on the SSR!

    I have my filter value set to 2, and my temp fluctuates by .2 degrees (F); though at a filter value of 0, it fluctuates by a lot more.. But regardless of that, sometimes it will continue to heat even when it’s several degrees PAST the set temperature.

  32. Also to add, my settings are (those that are different than the defaults):
    ot = 60 (control period)
    filt = 2 (filter)
    rd = 0 (heating mode)
    CorF = 1 (F)
    temp sensor is P10.0
    I’ve never changed the 0001 settings, and I can’t imagine I need to change those values each time I use a diff temp.

  33. Tom @#30: I still don’t get the auto-tuning.. Why can’t it be as simple as simple “turn on when X degrees before the set value, and turn off on the set value..

    There are lots of thermostats that work exactly as you describe (like probably the one on your home HVAC system). The problem with using one in this application is that they generally exhibit several degrees “bounce”. With sous-vide cooking, temperature control within a few tenths of a degree (or better) is important. That’s why I resorted to a PID controller.

    (PID stands for proportional-integral-derivative. Basically, it tries to build a mathematical model of the impulse response of the system, and uses that to figure out a duty cycle for the heater that’ll bring the system asymptotically — but still rapidly — to the target temperature. The “PID Controller” link in the original post goes to a Wikipedia article with lots more detail.)

    > I am 1000% sure I have the wiring correct, but weird stuff is happening.. Now, I’ve tried auto-tuning, many times and ways.. but sometimes my SSR will activate the heating element, even without the red light lighting up on the SSR!

    That can’t be good. My guesses, in order, would be: noise coupled in to the wiring somehow, or a flaky SSR. You might try disconnecting the PID controller from the control inputs to the SSR, shorting the SSR input terminals together, and seeing if it still activates the heater. If so, your SSR isn’t working right.

    Another useful debugging technique is to connect an incandescent light bulb to the SSR instead of the heater. The PID controller “out” light, the light on the SSR and the SSR output should always turn on and off in unison.

    Finally, the only 0089 settings I ever changed are intY (sensor type) and CorF (temperature display style). The 0001 settings are only useful if you’re using the alarm outputs for something. The 0036 settings are what auto-tune should be setting up for you.

  34. Hey,

    I actually knocked one of these together completely independent of your instructions. I work as an HVAC-R tech, so controlling temperature is second nature to me! I just wanted to point out that not all JLD612’s have the same pinout on the back. Make sure that you double check the pin assignments. Also, some JLD612 have SSR out, and some do not. Strange, I know…

    I also built in a standard 110v wall outlet into my case. This lets me plug in a variety of heating devices.

    I didn’t notice a fuse. It is imperative to put a fuse in line with the hot wire coming in. What happens if somehow you get a short to case or a short circuit on your heating element? It is possible to have a partial short, without blowing your circuit breaker. Placing a 10amp replaceable fuse on the case would be a very safe option. Especially if you want to leave it unattended. I wouldn’t advice leaving an unfused heating device unattended for any length of time.

  35. oops. forgot to mention I have an auxiliary plug switched on/off with a toggle. This allows you to plug in a pump or bubbler and control it from the front of your panel. It’s nice having all your controls in one handy spot.

    Nice job by the way.

  36. Tim @#36, #37: Some good ideas there; thanks. I didn’t realize that there were different variants of the JLD612 out there.

    You’re right that a fuse or breaker is needed; I’ll probably retrofit one into my current rig before I next use it.

  37. I made a sous vide controller using a JLD612, a PT100, and a rice cooker. As soon as the probe went into the water, the temperature reading started jumping all over the place. I soon figured out that it would go crazy any time the probe contacted a grounded appliance. (My non-grounded crock pot, for example, didn’t cause any trouble.)

    My PT100 is a cheap unshielded version. (No metal braid around the cable.) So, I can’t use the jumper trick described above.

    I was able to fix the problem by connecting terminal 10 both to ground (the green wire in the power cord) and the black wire from the PT100. Now the temperature reading is perfectly stable.

    I hope this information helps somebody.

  38. Here’s a hint for anyone shopping for parts. Lowe’s sells a cheap 6 outlet power strip. My local store sells it for a bit under $3.50. If you take it apart, you get a 3 foot grounded power cord with 14 gauge wire that can easily handle 15 amps. As a bonus, it also includes a lighted switch that also functions as a circuit breaker.

    For a little more money, you can get a 5 or 8 foot version. If you cut off some of the cord and strip off the outer insulation, you get some very good wire you can use for connecting your components. (I bought the 5 foot version and didn’t have quite enough wire for my rig. You may want the 8 foot version if you take this route.)

  39. Can you elaborate more on the capacitative coupling and popping of GFCI outlets? I am experiencing this problem and looking for some help

    Great post, thanks!

  40. Disclaimer: I’m not a EE, and this is pure speculation. If you act on what I say, die, come back as a doleful ghost and haunt me, I will refuse to be terrified and your afterlife will be unfulfilling. Just sayin’.

    So, my understanding of GFCI outlets is that they work by looking for tiny (tens or hundreds of microamperes) difference in the current flowing on the hot and neutral lines. If the currents differ, that might mean the charge has found another path to ground. If that path happens to be the 100K Ohm 1/4W resistor that is the human body, then that’s Bad, with a capital B. Just in case, we should open the circuit quick-like.

    My speculation — which I want to be perfectly clear is based on thinking about it, not on doing experiments and measuring the results, which I should totally do and would were I not hopelessly lazy — is that if you’ve got a non-trivial capacitance between hot and earth ground, then you get a measurable current flow at 60Hz, and your GFCI trips.

    FWIW, the specific problem I saw was that the GFCI would be fine while the system was cold and the heating element was 100% on, but it would trip the instant the PID controller started switching on and off.

Leave a comment

Your email address will not be published. Required fields are marked *