Immersion Circulator

Fall 2022 Project Report

Lily Hubbard – Computer Engineering 
Ben Steinbach – Electrical Engineering

Update 2023

This project has since been updated and is now complete, go to this link to find the new project!:

What Is an Immersion Circulator? Why are they needed?

What is an Immersion Circulator?

Immersion Circulators are specialized devices that are used to heat water to a specific temperature and maintain that temperature for extended periods of time. This is primarily used in the culinary arts as a method for cooking food via a method called sous vide, French for “under vacuum.” In the sous vide method food is cooked inside an airtight container, usually a bag filled with some kind of flavorful fluid. This bag contains little to no air and is placed into a heated bath of water set to a specific temperature. The food is then pasteurized over an amount of time v.s reaching a temperature at which bacteria and viruses are instantaneously destroyed like 165°F. This allows one to cook at much lower temperatures and control the doneness of food to a much higher degree while still making sure the food is safe for consumption. The sous vide method also allows for a much greater consistency in the results of food as it largely removes timing as a factor in doneness. Immersion Circulators also have value in the scientific world as they are ideal for creating an environment with a very stable and even temperature. Both of these applications work because of water’s high specific heat capacity which allows for things placed into the water to be brought up to the same temperature through-out as the water the objects are placed in without the water being of a higher temperature than what is needed to reach the desired internal temperature of the food. This increased level of control does come at the cost of time as it usually takes longer to cook food via the sous vide method but this also typically allows for the food to absorb more flavor from the liquid it is placed inside of its sealed container. 

What is the purpose of this project?

This project’s goal is to provide a method for constructing a cheap and simple immersion circulator with the same functionality of other commercially available immersion circulators. This project also has the focus of creating a solution that is scalable for different applications so that whether you are considering this project for at home use or you want to use it in your restaurant there are different options for the construction of the device that fit your use case. The final goal of the project is to create a fully functioning Immersion Circulator that can reach ranges of temperature between 60°F and 190°F and provide functionality such as a timer for cooking, and scalable modules so that the user can decide how many heating/circulating modules they want to use to heat their bath.

Note: the project is still a work in progress and this report is being presented at the halfway point of the project, much of the testing and prototyping of the project is now complete and the second half of the project will focus on completion and assembly of the final product as well as all of the documentation on how to complete that assembly for your own use, the project’s deadline for completion is April 14th, 2023. Thank you for your patience!

Goals and statuses

1. The files pertaining to the design of the device will be kept in a google drive folder to be published at the end of the year as free open-source materials. 

Group members Lily Hubbard and Ben Steinbach have created a shared Google Drive with all test data, meeting notes, pictures, and FreeCAD design files. Program files are on GitHub and in the OSF repository below. FreeCAD files have also been uploaded to the OSF Repository below.

GitHub Link for Program Files:

OSF Repository Link:

2. The heating system prototype should be able to warm a 5-gallon bath of water to at least 170°F

Tests completed on 10/26/2022 verified that the heating element is capable of heating ~2 Gallon bath of water to 170°F.

3. The circulating system should be able to cause water to circulate in the 5-gallon water bath.

 In the test completed on 10/26, adequate circulation was provided via the pump used. This was proved by moving the thermometer around in the bath, and no difference in temperature was detected.

4. The housing for the system should be 3D printable and be waterproof such that water does not enter the housing even after being submerged for an extended period. 

Design changes have eliminated the housing altogether. Instead, shrinkwrap or similar will be used to waterproof electrical components.

5. The user interface should have the functionality of displaying information to the user and allowing the user to click options for cook time and temperature. 

As of 12/09/2022, the display screen is capable of displaying “F” or “C”. 

6. There should be at minimum a plan set-forth for how the heating system and circulating system fit into the same package, if not then the systems should already be in the same package together. 

The heating and circulation system are conceptualized as being part of the same package.

7. The prototype’s non 3D printed components should be easily sourced off the shelf components. 

All components thus far have been purchased at the in town hardware store or Amazon. See the BOM section below for more details.

8. The systems should be powered from everyday 120V AC wall outlet/s 

As of 12/09/2022, the heating element circuit plugs directly into the wall outlet, and the Aurdino Uno is powered via laptop computer. Plans to incorporate the Aurdino Uno into the heating element circuit are in place.

9. The circulating system has the ability to run for long durations, at least 1 day.

The longest test run has been for approximately 1 hour.

Value Added Goals

1. The system can communicate over the internet or bluetooth to another device to receive control input. 

As of 12/09/2022, the Aurdino Uno could only communicate via a wired connection.

2. The application that controls the device remotely has a GUI that allows the user to click buttons to control the device. 

A breadboard prototype of the buttons have been created, but is not yet functional.

3. There are multiple heating/circulating modules complete and functional

The first module is in the development phase. 

Steps Taken / Progress

During the initial phase of the project we were aimed in a slightly different direction than what we ended up with. Initially we had decided to create our own heating element using nichrome wire and a power supply. Our very first heating elements were constructed from brass tubing and lengths of nichrome wire wrapped with varying numbers of windings and being tested at different voltages and currents, but the results all came up the same: There just wasn’t enough power to heat the amount of water that we were aiming for successfully in a reasonable amount of time. In fact it was almost certain that the system would reach equilibrium between heat added and lost before the target temperature could be reached. These early designs also suffered from another issue: to insulate the nichrome wire we were using kapton tape. Kapton Tape is rated as being safe for use up to 500°F with some types being able to withstand up to 725°F. Our tape was not rated so high as 725°F. For one test we ran the nichrome wire glowed and the kapton tape began to burn immediately when power was applied. From that point one we decided that the safest option would be to go with an off-the-shelf heating element instead. Most heating elements today like the ones on your common electric stove are an alloy of high resistance contained inside a sheath of Magnesium Oxide powder, a material that makes a good thermal conductor but a poor electrical conductor contained inside of a stainless steel tube. It would probably be possible for us to make our own custom heating element with these materials, but the use of special tools, materials, long shipping times and the hassle of putting all these together makes this route nonsensical compared to buying an $8 washing machine heating element from your local hardware store.

After we switched to the new off-the-shelf heating elements, the two of us split into two different projects: designing the physical device that would be submerged in the tub of water, and the other working on the control scheme for the project. 

The original design for the submerged heater/circulator device included a water-proof box containing the electrical connections and a housing for the water pump to sit inside, however after consideration on how to make a 3D printed water-proof box and talking with other members of the enterprise as well as our advisor we decided yet again on a simpler approach. Instead of trying to create an entire housing that is water-proofed it would be simpler to just cover the connections themselves via some water proof material like epoxy, silicone paste or an adhesive shrink tube. Then the heating element and pump can be attached to each other via a 3D printed ring that fits around the heating element’s base. Finally a cage made of chicken wire or other wire mesh can be fit around the heating element to shield it from coming into direct contact with anything in the tank. This design removes any waster water-proofed space and also simplifies the 3D printed components so that they are easier to print. The first version we have of this system is shown below, although there was an issue in printing and it came out with one hole too small, but this is a good example of what the final version might look like.

The control system for the immersion circulator consists of the Adafruit Metro ESP32 S2 that I will refer to as simply the ESP32 from this point on, and a set of peripheral devices that it interfaces with for user interaction. The board is programmed in Arduino C as well as C++ for some files. The connections made to the board are detailed in the diagram below:

ESP32 wiring diagram:

The control scheme for the user interface includes 3 screens that the user will be able to interact with. The first screen will display information about the temperature of the water bath and has modes for the target temperature as well as the current temperature. The units can also be changed between Farenheit and Celsius. There is a timer screen which will be activated by the press of a button and will allow the user to set a timer for cooking or other uses if needed. The final planned screen is the wattage screen which will give the user an idea of how much power is being used by the immersion circulator, but this is still a planned feature and not close to be implemented. Out of these the temperature and timer screens have been partially implemented but are not yet completely functional. The temperature measurement itself is completed using an analog measurement across a 1k resistor hooked up in series with a thermistor. As the temperature of the tank changes the resistance of the thermistor changes and as a result the analog measurement across the 1k resistor in series changes. After calculating the voltage difference we can input the voltage measurement into the mathematical model we have set for voltage to temperature that was created by taking readings of temperature using another thermometer and with resistance values across the thermistor at the same time. This feature is still in development as well, and one issue that I have noticed is that the thermistor might be too slow to take measurements to provide the accurate data we need to control the heating circuit and a switch to a thermocouple might be necessary.


Open Source Resources Used



BOM Thus Far

Part NamePart Description / UsePurchase Location
Water Pump2 Pack, 3-5VAmazon
Thermistor5 pack, one meter longAmazon
Display Screen1.5” OLEDAmazon
Heating ElementFor use in washersSwift Hardware also available atHome Depot
Wire MeshHeating Element cageSwift Hardware also available at Home Depot
Adafruit Metro ESP32Single Board computer for controlling circulatorAdafruit’s website
1K ResistorSingle resistor for part of the circuit to get an analog measurement across the thermistorAmazon
Push ButtonsFor the control panel on the deviceAmazon
Lengths of wire,(pin connections preferred but completely optional)For connecting components together, any small gauge wire that can be connected to a breadboard will work.Amazon
Breadboard (optional)For making connections between components easier and more neatAmazon