Incubator Icon

Custom Incubator for Imaging

Undergraduate research project in the Raman Lab, co-advised by Prof. Martin Culpepper and Prof. Ritu Raman.

Incubator overview photo

Background

Removing thermally sensitive samples from their ideal temperature conditions in traditional incubators for extended periods is often necessary for in-depth imaging, but can adversely affect the health and viability of the samples.

I designed and built this mini incubator to protect sensitive samples during long experiments that require continuous imaging on a microscope. By maintaining a stable 37°C environment around a 100mm petri dish, this incubator enables both long periods of imaging and easy user interaction with samples. A multi-layer PID control system takes multiple sensor inputs into account for precise temperature control, while a small footprint allows for frequent relocation and storage in a lab where bench space is limited. You can read about some of the experiments enabled by this incubator in this publication.

Design Overview & Fabrication

A selection of revisions in the design evolution of this incubator can be seen to the right. Early designs in CAD were revised based on feedback about the incubator's usability and ease of fabrication, while fabricated prototypes were revised largely based on practical performance shortcomings (for example, initially oversimplified power calculations didn't sufficiently account for convective heat loss through an imperfect seal between the first prototype of the incubator and the microscope).

The fabrication process of the final prototype of this incubator is quite accessible, requiring a limited selection of easily operated machines and low cost materials (<$150 total). Top window panels were laser cut from acrylic, while the main walls, hinges, and electronics housing were 3D printed on a Stratasys J35 printer. Thin copper heat distribution linings for the walls were cut on a metal shear.

Please feel free to contact me if you'd like to build one of these incubators for your own use—I'm happy to provide relevant files and further fabrication instructions over email.

Incubator design evolution chart
Incubator circuit diagram
Here, H1 and H2 are the Thorlabs resistive heaters, ET is the environmental sensing thermistor, and H1T & H2T are the built-in thermistors for heaters 1 & 2 respectively. Vin refers to voltage inputs to the Arduino, while Vout refers to voltage outputs from the Arduino.

The electrical system of this incubator can be thought of in two sections: a higher power heating circuit, and a lower power sensing circuit. The heating circuit controls power from a 24V DC power supply to the heaters via an n-channel MOSFET, which is driven by a PWM voltage at the gate (a digital output from an Arduino Nano).

The PWM duty cycle to the heaters is determined by a PID control system (implemented in C++) that takes inputs from the sensing circuit: a set of NTC thermistors monitoring both the heater temperatures and the temperature of the internal environment of the incubator (see the following section for further details on the control system).

The resistance of these thermistors is deduced using analog voltage inputs to the Arduino Nano, and can subsequently be used to determine the temperature of the heaters and environment.

Control System Design

To control the temperature response of this incubator, two PID controllers run simultaneously, the first one controlling an upper-limit on the maximum PWM duty-cycle from the Arduino to the MOSFET (that is, the maximum power to the heaters), and the second one controlling a requested duty-cycle. The first controller (I will call this the limiting controller) takes the temperature data of the heaters themselves as an input, while the second controller (I will call this the requesting controller) takes the temperature data of the internal environment of the incubator.

Due to the high initial error between the desired temperature (37°C) and actual temperature (~20°C) of the internal environment when the incubator is first powered on, the requesting controller will ask for an outrageously high power to be supplied to the heaters. However, this value is "blocked" by the limiting controller, which lowers the maximum allowable power request as the heaters approach their maximum recommended operating temperature (around 100°C).

As the internal environmental temperature in the incubator approaches its desired value, the requested power from the requesting controller decreases to a more reasonable value, and is no longer high enough to cause the heaters to exceed their maximum temperature. As this transition takes place, we see the limiting controller become obsolete as it no longer needs to limit a large power request.

These two phases—the limiting controller initially dominating the response of the system, while the requesting controller later dominates the response—can be seen in the step response of the incubator. By running both controllers simultaneously, we have a safety net against overheating, and we can achieve both a fast rise time and long-term precision.

Incubator step response plot

Acknowledgements

Thank you to Prof. Ritu Raman and Prof. Martin Culpepper for providing continual advising and support over the course of this project, and to Nicolas Castro for providing indispensable user feedback! A special thank you as well to Dr. Harrison Chin and Steve Banzaert for data streaming and electrical system guidance, respectively.