From OpenWetWare
Jump to navigationJump to search
Diagram of the Evolvinator. A microprocessor controls the flow of media to the culture based on OD readings. Humidified air is provided via an air pump as mediated by a pinch valve.
Picture of the Evolvintator

The Evolvinator is a small, do-it-yourself turbidostat.


The Evolvinator is a 20-50 mL continuous culture turbidostat. It uses an Arduino Mega 2560 microcontroller to keep the culture at a target optical density (OD) by diluting the culture with fresh media when that target OD is met. An IR LED and photodiode pair determines OD, and a peristaltic pump adds media in pulses. The culture is aerated with an aquarium air pump, which also serves to mix the culture and keep effluent flow quick and unidirectional. The air input is humidified to mitigate evaporation of the culture. A pinch valve controls airflow to the culture, which is suspended during OD readings in order to increase accuracy. The culture volume is kept at a constant volume by a down stem that extends to the desired liquid level. Because the culture chamber is airtight, as new media is added old culture is siphoned off to waste. This outlet tube is also includes a tee valve used for sampling. The culture chamber is contained within a metal housing, which positions the OD sensor components. The Arduino is connected to resistors and a temperature sensor on the housing to regulate the temperature of the culture. The Evolvinator takes advantage of the Arduino Ethernet shield to connect to a network, providing a user interface for operational control and data acquisition.


Parts List

The complete parts list including distributors is at the end of this article.

Hardware & Fluid Flow

The housing is a custom machined solid aluminum piece. CAD drawings are at the end of this article (also for SolidWorks, thanks Nathan Brown!). The housing serves to secure the OD sensor, as well as maintain the temperature of the culture chamber. The housing is designed to hold a Boekel scientific 100 x 35mm hybridization bottle for use as the culture chamber. This bottle has a GL45 top, and standard GL45 bottles are used for the media and effluent reservoirs, as well as the humidifier. The caps contain 1/4”-28 NTP ports, and vessels are connected through 1/16” ID tubing and appropriate fittings. A peristaltic pump connected to the Arduino microprocessor controls media flow. Air from an aquarium pump is first run through a humidifying bottle before it reaches the culture chamber. A pinch valve also controlled by the Arduino regulates aeration. .2um filters are used throughout to prevent contamination.

Electronics & Control

Evolvinator Schematic.
Evolvinator Arduino Shield. List of components can be found in the parts list.

The Arduino Mega 2560 is a beginner friendly microprocessor capable of digital I/O, ADC, PWM output, and when equipped with the Ethernet Shield, can connect to the Internet. It also includes a micro SD port used with the Evolvinator to store run data. The control mechanisms for the Evolvinator are implemented through the Arduino. The Arduino sketch file can be found at the end of this article. An Arduino 'Shield,' a PCB that stacks on top of the Arduino's expansion headers, interfaces between the microprocessor and the OD sensor, pump, valve, and heating system. The Evolvinator shield was designed in EAGLE, and the accompanying board, schematic, and Gerber files can be found at the end of this article, as well as suggestions for low volume board houses.

Program Loop

The program loop contains functions to:

  • Read the OD of the culture, and check it against the target OD. A pulse of media is fed if the reading (or average of the last three consecutive readings) is above the target.
  • Regulate the temperature of the culture. A PID controller is used to maintain the temperature.
  • Save OD, pulse, and temperature data to the SD card.
  • Make sure the system time is correct.
  • Check for html requests and update the web interface.
void loop() {
  // If the run has started check OD and feed pulses
  if (tStart && !sampling) {
    // Take OD measurement every minute
    currentMs = millis();
    if (currentMs - oldMsODRead > 30000) {
      oldMsODRead = currentMs;
    // Feed pulse if threshold is reached and it's been long enough
    currentMs = millis();
    if (OD3MinAvg > ODDesired && currentMs - oldMsPulseFed > pulseFrequency) {
      oldMsPulseFed = currentMs;
  // Check temp every 5 seconds
  currentMs = millis();                    
  if (currentMs - oldMsTempRead > 5000) {  
    oldMsTempRead = currentMs;
  // PID adjust every 10 seconds
  // Check and adjust time if neccessary
  currentMs = millis();
  // Check for web requests

The web interface is used to change the experimental parameters of an Evolvinator run. Adjustable parameters include:

  • Target OD.
  • Desired temperature.
  • Maximum dilution rate.

Additionally, the web interface is used to:

  • Zero the OD sensor.
  • Add an arbitrary amount of media.
  • Start the run.
  • Download a .csv file of the accumulated data, including timestamp.



The Evolvinator requires calibration of the OD sensor, pump, and heating system. Calibration data is provided at the end of this article and this data is incorporated into the provided sketch, but do not expect this data to describe your system accurately.

OD Sensor

Create 7 serial dilutions (dilution 1 to 0.015625) of 25 mL each, with dilution 1 having an OD of approximately 1 at 600 nm wavelength and 1 cm path length (OD600). Evaporated milk is a good substitute for bacteria for this purpose. Measure the OD600 of these dilutions (as well as a blank) with a plate or cuvette spectrophotometer. Then, use the Evolvinator's "Zero OD" function on the HTML user interface to successively measure and record the photodiode reading (0-1023) of the dilutions and blank. Compute the OD, as measured by the Evolvinator, and create a linear fit with OD600 from your spectrophotometer readings (the calibration file can be used as a template). This fit should be inserted into the ODRead() function.


The Evolvinator's vessels and tubing should be autoclaved before each run. Autoclave the Evolvinator's tubing and vessels already connected and in their entirety, with media and humidifying chambers filled if possible. Loosen the caps and cover open outlets with aluminum foil. Tighten all fittings after the autoclave cycle.

Starting run

Fill the media reservoir and air humidifier if not done prior to autoclaving. Doing this under a sterile hood is best, but if this is not an option clean your working area with a copious amount of ethanol. Using a selective antibiotic in your media is preferred, though the antibiotic must be added after autoclaving as it will not withstand 121 C.

The HTML user interface includes an option to fill the chamber with an arbitrary volume from the media chamber. Add your working volume of media. The length of the down stem in the culture chamber can be adjusted to accommodated volumes between 20 and 50 mL. The downstem should not extend all the way to the desire liquid level; the actual liquid level will be affected by how vigorously the culture is bubbled. Zero the OD sensor once the culture chamber is filled with media. Set all parameters for the run: Threshold OD, Temperature, and Maximum Flow Rate. The default temperature is 37 C, and the heating resistors will being with power on. Wait for the temperature to stabilize before inoculation.

Inoculation is best done by adding ~3 mL of inoculate into the sample port, first adjusting the tee valve so it faces the culture chamber. The tee valve has a male luer port to be mated with a syringe. include some air in the syringe to make sure the inoculate goes all the way to the culture chamber. Be sure to keep the sample port capped before and after accessing it to prevent contamination. Again, ethanol is your friend. Turn the tee valve back to direct flow from the culture chamber to waste. After inoculation, press "Begin Evolivination!," which will open the pinch valve and begin aeration, as well as start OD measurement/feedback loop, and data collection.

Notes and Known Issues

  • Depending on the growth rate of your strain and its propensity to form film biofilms or flocculate, wall-growth and clumped cells can confound the turbidometer. The culture should be well mixed to avoid flocculates, but the chamber itself will have to be exchanged if there is significant wall-growth.
  • The Evolvinator can be run anaerobically, by replacing the airpump with a gas canister of your choosing and a low pressure regulator. I recommend the [Air 850] for a cheap regulator.
  • If the OD threshold is set high, or you are using a particularly foamy media, consider adding anti-foam to the media. It is very effective, though cannot be autoclaved.


The Evolvinator was designed at by myself and Tom Knight at Ginkgo BioWorks in 2011. It is intended to provide a cost effective means of performing directed evolution experiments. The specifications released herein will remain publicly available. Please feel free to tailor these designs to your specific needs and budget.


External Links

  • Arduino homepage
  • CADsoft - EAGLE developer, a free version is available under Downloads.
  • BatchPCB.com, Dorkbot PCB order, PCB Fab Express - Three cheap, low volume PCB printing options.
  • eMachineShop - Custom machining ideal for 1 off prototypes.
  • WellPCB - PCB Online-Ordering System
  • OurPCB - PCB Prototype,PCB Assembly,PCB manufactured
  • PCBgogo - As a full-service PCB prototype and assembly provider,PCBGOGO can cover all your pcb requirements, including custom prototype and mass value fabrication,high-quality pcb assembly.
  • Cloom - ribbon cable, coaxial cable, USB cable