At last, a DIY programable water bath

Unfortunately, I meant to post more updates about the development of this water bath, but instead I just kept working on it. The good news is that I think it’s pretty much done! At least, it’s done enough for me to start using it in the lab.


Overall, the setup is pretty simple. There is a bucket water heater, a small circulation pump, a digital temperature sensor, a coil of copper pipe for cooling that will eventually be submersed in ice, and an Arduino Micro controlling everything. To control the bucket water heater, I picked up a PowerSwitch Tail 2 to avoid dealing with 120v mains myself (I’m not actually an engineer…).

2013-12-01 15.15.032013-12-01 15.15.092013-12-01 15.14.55

The Adafruit DIY sous vide guide was an excellent starting point for this project. They give a great deal of information about several of the components I used, so I’ll mostly just refer people to their site. I did end up getting rid of the PID controller, it was more complicated than it needed to be especially with both heating and cooling (with very different properties). Another plus of building this water bath was that I had a sous vide along the way. I made a few steaks, and they were excellent!


I also picked up a little PVC outlet box from the local hardware store for about 20 cents to enclose the controller. I figured with water and electricity, a few preventative measures couldn’t hurt. I used molex plugs to attach all the components making everything easy to transport and swap out parts.


2013-12-01 01.04.222013-12-01 02.00.02


Cooling is an important component for me, as one of my phage induction steps requires reducing the temperature from 42C to 37C relatively quickly. I played around with using Peltier elements to cool the ¬†water, but it would have required a large power supply (> 120 watts) and wasn’t much better than the coil alone. For smaller volumes, I’m sure the Peltier would be a great solution, but I have some other ideas for Peltiers in the future.


I’ve posted the code for the controller on GitHub. The values in the code are “tuned” empirically, and actually do matter quite a bit based on the volume of water you’re using. I’m hoping to add some interactive control to the water bath, along with a real-time visual interface. As soon as I figure out how to do it, I’ll upload the circuit diagrams. They are very simple, so I’m sure most of you could figure out how to put it together without a problem.


2013-12-01 16.25.49


I’m interested in hearing what other people would do with a programable water bath, especially if it involves microbial evolution experiments! I built this to save time for myself, but I imagine there are many experiments that are now feasible with a cheap programable water bath. I did a few sample runs and graphed the temperatures over time (in milliseconds). I’m very happy with the results.

quick_step_tempsLysis Temps



  • Thank you so much for writing this up! I have it bookmarked for when I’m ready to tackle my DIY yogurt maker project. I hadn’t thought of using a “chilling” coil and pump, which will make the whole thing almost entirely hands-off.

  • Pingback: DIY Programable Water Bath « adafruit industries blog

  • This is a cool DIY apparatus. One kind of experiments immediately come to my mind is to test the mode of adaptation to heat of the heat shok-induced stress response. To do so, you need a marker of the response (say a relevant protein tagged with GFP) and a signal detector, say flow cytometry. By applying the heat shock differently, say step function, sine function, spike, organism may adapt differently. This would reveal the mechanisms of adaptation.

    • Definitely a cool evolution experiment idea! Know anyone that would want a programable water bath to study that? Easy enough to make :).

  • Pingback: Community Corner: #HourOfCode, SumoBot Arena, Woodpecker Toys and Other Delights of this Past Week in Adafruit’s Community « adafruit industries blog

  • I’m interested in making something similar (also for biology work, but I’m most interested in cooling to below ambient), and had been also planning on using a Peltier cooler/Arduino setup, but your idea of a coil submerged in ice does sound much simpler.

    If you want to switch from heating to cooling, is that a manual process (i.e. unplug the heater and attach the cooler, then reprogram) or have you figured out how to get it all working automatically. Presumably you’d need a heating pump (or just something to stir) and a cooling pump, right?

    • Actually it is all automated already. I use the cooling to counteract any overshooting with the temperatures, since 42 is a bit close to the physiological maximum for E. coli. There is a little circulation pump to keep water moving… seems to work well enough. How much colder than ambient, and how quickly are you trying to get there? Peltiers are good for ~ 5C lower than ambient for a large volume of water, you can get a lot lower a lot faster with ice, but you might not have as precise control with just pumping ice water.

  • I’m really just looking to cool a few 1.5ml tubes in a floater to 16-19C, so probably within the range that a Peltier could handle. Ice just seems easier, since I don’t need it to run overnight or anything.

  • It seems you have a good system developed. I am looking for a water-bath system for Yogurt and Cheese-making, a water bath the size of a picnic cooler (i.e. about 4 gal.) Not being and electronic engineer I need more specific circuit diagrams and wiring details. I have done a moderate amount of work with electric circuits and electronics, but can’t just use a list of “components” to construct the water bath I need. For example I wasn’t able to figure out the precise use of the “Power Switch Tail 2″ and how it functions. Do you have an extended list of circuitry for hacks like myself? I couldn’t find my way to detailed information from Adafruit on how to implement their Arduino controller in this application.

    • Absolutely. I didn’t go into too much detail here because basically the only thing different from the Adafruit guide ( was the cooling component. Is cooling important for your Yogurt and Cheese making setup?

      As for the Power Switch Tail 2, it is just a way of turning on and off a high voltage device (like a big bucket water heater) using only a wimpy 5v microcontroller digital signal. I can find out an easy way of documenting the exact setup I made and post it here though!

      • Hey, Thanks. This helps. I didn’t find the link you just gave me for the Arduino. That site is a little more specific and tells what pins to use etc. on the controller. I’m still a little fuzzy on the exact circuit diagram for it, but if I acquire the parts it may become more intuitive. If you have the wiring diagrams or pictures for your set up that would be great. The step-wise increase in temp. is a real boon to the cheese process. Going from 85F to 108F over 60-90 min. is a bit tedious on the stove top 8>). Cooling is needed but that’s easily accomplished. We have a plate cooler for cooling the wort in beer brewing and that works fantastically! But I don’t need to do it that rapidly for the cheese or yogurt.

  • Hi, I really like the design of your website, especially blog part. Would you mind to share the source code or framework you used to develop your blog? Is it in Java, php, or you used an online blogging service?

    Thanks very much!

  • Hi,
    Great… idea
    Do you need to have the Arduino always connected to a computer?


    • Thanks! You don’t, but I do just so that I can record output on the temperature curves. The long term plan is to make an easy interface to program temperature curves and watch progress that is independent of the computer serial console.

  • Hey, good job! :) really nice project. I need a second water bath for our lab for medium at room temperature. May I ask you, how much money you had to invest into your project? Thanks :)

    • Thanks! Sorry for the delay. It was very inexpensive. The heating element was the most expensive part of this setup. For smaller things, a custom milled aluminum block may be a cheaper way to go. For large volumes, this is definitely the best I’ve come up with. For room temp, do you need temperature control, or just a circulating thermal mass?

Leave a Reply

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