Calibrations are important for the eVOLVER to match its sensor inputs with its actuator outputs
The min-eVOLVER is not yet compatible with the normal eVOLVER GUI
Therefore, calibrations must be done manually (ie via recording of values and fitting of lines in excel)
Each min-eVOLVER needs its own calibration files. These are kept inside of the server folder for each min-eVOLVER (ie in evolver-min/evolver/calibrations.json)
Ask about calibrations in the relevant category on the .
Complete the page
Gather materials (see below)
Start cells for OD calibration the night before
Temperature calibration should be done before OD calibration because the OD sensors are effected by temperature. Calibrate OD at the temperature that you intend to run experiments. (For example 37C for bacteria and 30C for yeast)
Glass eVOLVER vials (6X)
eVOLVER vial caps (6X)
Temperature probe (we use a )
During temperature calibrations we will be setting the min-eVOLVER temperature to various 'raw' (uncalibrated) values
We will then measure the actual temperatures that the min-eVOLVER vials reach using a temperature probe
We then fit a line correlating the raw values to temperatures in degrees Celsius
Make a copy of temperature_calibration.xlsx and label with the date.
This can be found in /dpu/calibration/
While waiting for equilibrations you can start calibrating pumps.
Record the equilibrated temperature (in Celsius) in the space in the spread sheet for the correct vial
Repeat steps 3 - 6 for the other three values
Ideally the resulting plot will be linear, with little variation of the points from the line
Make a copy of pump_calibration.xlsx and label with the date.
This can be found in /dpu/calibration/
Fill a large beaker with water and submerge all pump input and outputs in the water
If you need the pumps to stop before the time is up, send the command:
python3 send_command.py <port_number> pump 0
Wait for the pump lines to fill
Calibrate the fast (grey) pumps
Leave fluidic inputs in water and put the outputs in eVOLVER vials
Calibrate the slow (pink) pumps
Leave the inputs in water and put the outputs in 1.5mL Eppendorf tubes
It may be helpful to remove the plastic Luer lock on the tube end
For running ePACE, OD calibration is required because S2060 cells have significantly different scattering properties while growing vs during stationary phase.
OD calibration allows for the min-eVOLVER to accurately read ODs of the cells growing inside.
While not completely essential with running chemostats, good OD calibrations are essential for turbidostats to give accurate results.
For ePACE in the min-eVOLVER, consider running calibration of the lagoon vial with 10mL volume for more accurate readings.
Make sure you have your on! This will drastically alter calibrations if you leave it off.
Set the min-eVOLVER to the temperature your experiment will be at
Open your temperature calibration file
Change the temperature in the "Set to ( C )" field for each vial
After changing which standards are being read, wait for the server to cycle a couple of times before recording values. Values are averaged and the values from the previous two OD standards could still be in the mix.
Copy and paste the Standard (OD600) and Median Values for each vial into od_data.xlsx
Do not include empty cells or change the formatting of od_data.xlsx
Copy and paste the values output from sigmoid_fit.py in evolver-min/evolver/calibrations.json for the correct vial and correct min-eVOLVER
Replace the values after "coefficients" (shown below)
To avoid confusion, replace everything until the "raw"
200mL cells at OD600 > 2
Turn on the min-eVOLVER and start the server as in setup.
In the dpu virtual environment, send the following temperature command to the min-eVOLVER using send_command.py:
python3 send_command.py <port_number> temp 31000
Wait for the temperature to equilibrate (using a digital temperate probe)
evolver-min/evolver/calibrations.json for the correct min-eVOLVERReplace the values and comma after "coefficients" (shown below)
WARNING: do not alter the format of the calibrations.json file. Doing this, (accidentally adding an extra square bracket or comma for example) could easily give errors during experiments.
Fill the pump lines by sending the following pump command to the min-eVOLVER using send_command.py:
python3 send_command.py <port_number> pump 30,30,30,30,300,300
Send the command:
python3 send_command.py <port_number> pump 20,20,20,20,0,0
Measure the resulting water output (either using a 20mL autopipette or using a small graduated cylinder)
Input the values into the excel spreadsheet
If you see significant variability, make sure all inputs are in water and try again
Make sure that the tubing is still full (send another command if not)
Send the command:
python3 send_command.py <port_number> pump 0,0,0,0,40,40
Measure the resulting water output (using a 1mL pipette)
Input the values into the excel spreadsheet (in mL)
Copy and paste the values under "Copy + Paste" in evolver-min/evolver/calibrations.json for the correct min-eVOLVER
Replace the values after "coefficients" (shown below)
Copy and paste the command next to "Temperature command:" field. (Change to target your min-eVOLVER's port)
Follow the OD calibration tutorial for the main eVOLVER until it asks to begin calibration via GUI
We will use this to make 8 standards, rather than 16
This will be less vials to deal with
Heat OD standards to temperature
Ideally, the vials will be stirring and continuously at the correct temperature
Stirring because cells will settle otherwise
At temperature because it effects the OD sensor
However, the min-eVOLVER only has 2 vials, so we must find a way to make sure the vials are at temperature before reading the OD values
We can either do this by
Waiting for vials to come to temperature in the min-eVOLVER vials (slow)
Keeping vials in an incubator until ready for reading (faster)
While OD standards are heating
Make a copy of od_calibration.xlsx with the date
Input the optical density of your standards into the Standard (OD600) cells
Make sure the od_led is set to 4095
Either check the server cycling log or send the command:
python3 send_command.py <port_number> od_led 4095
Record 3 server values for each OD standard
Cycle through the standards in an orderly fashion
For example:
Label the vials 1 - 8
Start with vial 1 in smart sleeve 1 and vial 2 in smart sleeve 2
Then rotate so that vial 8 is in sleeve 1 and vial 1 is in sleeve 2
Repeat for all standards
If you only have one min-eVOLVER you are calibrating, clear the rest of the rows of data to avoid confusion.
In a terminal in the dpu environment, install pandas using the command
pip install pandas
Run the following script for fitting a sigmoid function to the curve:
python3 sigmoid_fit.py
Evaluate the resulting curve fit in the window that pops up







You need to have finished temperature calibration before doing this step.
For running ePACE, this calibration is required because S2060 cells have significantly different scattering properties while growing vs during stationary phase.
This alternative method of calibrating OD is to be used if experimental raw OD values repeatably follow a different function than calibration OD values. This means that the OD calibration cannot be fixed despite recalibration and attempting to get better OD blanks.
Using this protocol, we can get significantly closer to actual experimental conditions in our OD calibration compared to the normal calibration where we use cells in stationary phase resuspended in 1X PBS.
We also turn off stirring for OD to get more stable OD readings. This is especially important in ePACE where the lagoon is only 10mL and thus the liquid line is very close to the OD sensor level.
Consider between experiments to have the OD calibration conditions line up perfectly with the experimental conditions.
Prepare actively growing cells of the type you want to calibrate
If cells are in stationary phase when you start this protocol, dilute at least 1:100 and grow for several hours before using for inoculation
This way your cells will be as close as possible to experimental physiology during calibration
If using a 96-well plate reader, always use 300uL of sample in the wells to best mimic the optical path length of a cuvette reader.
After temperature equilibrates, record 3 server values for the media without cells
Inoculate with growing cells to a low OD - aim for OD < 0.05
As cells grow, in 30 minute intervals:
Record sets of 3 raw OD values from the min-eVOLVER server
Copy and paste the values output from sigmoid_fit.py in evolver-min/evolver/calibrations.json for the correct vial and correct min-eVOLVER
Replace the values after "coefficients" (shown below)
To avoid confusion, replace everything until the "raw"
Make sure cells are suspended before reading values either through keeping in a shaking incubator or through pipetting or swirling

Load up the stir off for OD read conf.yml file
If the server is running, stop it via Ctrl+C
Overwrite the conf.yml file in the folder /evolver/evolver/ with the stir stop for OD conf.yml
Location here: /evolver/evolver/alternate_conf_files/stir_off_for_od_read/conf.yml
Edit the port and serial_port variables to the correct values for this min-eVOLVER
Start the server
Check that the min-eVOLVER is stirring and turning off during OD readings
Set temperature to experimental temperature using send_command.py and your temperature calibration spreadsheet
A calibrated temperature command is in your calibration file temperature_calibration.xlsx
Change the temperature in the "Set to ( C )" field for each vial
Copy and paste the command next to "Temperature command:" field. (Change to target your min-eVOLVER's port)
Assemble two vials and place them inside of the Smart Sleeves
Vials should mimic the experiment as closely as possible
Use stir bars, caps, septa and needles if you will use them in your experiment
For ePACE guide see
[Optional] Hook up influx and efflux lines to vials for easy volume control
Using send_command.py,
Fill lines with bleach
Wait 30 minutes for sterilization
Flush bleach 3 times through with media
Hook up lines to vial cap - for ePACE guide see
Fill vials with the media you will use for experimentation to the fluid levels you will use during experimentation
For ePACE:
Reservoir (left) vial = 30 mL
Lagoon (right) vial = 10 mL
Other experiments: most likely 25 mL in both vials
Allow vials to come to temperature (wait at least 20 minutes)
Temperature affects OD readings
While vials are heating
Make a copy of od_calibration_growth_curve.xlsx
Rename with the date and type of calibration
For example: od_calibration_growth_curve_250101.xlsx
Input the optical density of your standards into the Standard (OD600) cells
Make sure the od_led is set to 4095
Either check the server cycling log or send the command:
python3 send_command.py <port_number> od_led 4095
Record a 'blank' value for media without cells using your external OD reader
Record next to the cell MEDIA BLANK: in the upper left of the spreadsheet
External OD columnFor plate readers, 300uL of sample should be used
Samples above OD600 about 0.6 should be diluted before reading
Alter dilution factor in the spreadsheet to account for any dilutions you did
Replace any volume you remove via sampling, either through pumping or manually pipetting back in. This is especially important for the 10mL lagoon used in ePACE.
Collect OD values to at least OD600 of 1.0
Copy and paste the Standard (OD600) and Median Values for each vial into od_data.xlsx
Do not include empty cells or change the formatting of od_data.xlsx
If you only have one min-eVOLVER you are calibrating, clear the rest of the rows of data to avoid confusion.
In a terminal in the dpu environment, install pandas using the command
pip install pandas
Run the following script for fitting a sigmoid function to the curve:
python3 sigmoid_fit.py
Evaluate the resulting curve fit in the window that pops up



