Team:NAWI Graz/Bioreactor


In order to habitate our ‘ strain’, a bioreactor was needed offering optimal conditions. Magnetic stirring, a thermostat and a construction that keeps the optical density of the bacterial culture in range, had to be built.

Ports on top of the reactor bottle

  • Temperature Sensor: Opening for a glass tube with a temperature sensor suspended in distilled water
  • pH Sensor: Wide opening for the pH-Sensor (DFRobot pH sensor)
  • Port 1: Silicone tubing inlet for dilution of the reactor medium, from a peristaltic pump that pumped fresh sterile medium
  • Port 2: Glass tubing that reached to the bottom of the reactor bottle used to pump out medium for OD measuring
  • Port 3: Inlet for silicone tubing (acidic solution)
  • Port 4: Inlet for silicone tubing (basic solution)
  • Port 5: Silicone tubing outlet - the tubing was placed deep inside the reactor bottle used to pump out medium to the heating block and the fluorescence chamber

[Bioreactor top view]
Fig. 1: Top view of the reactor bottle cap. A 500 ml lab bottle with GL 80 opening was the main equipment for the reactor. Several holes were drilled into the cap and metal threads placed inside them.

OD Maintenance

To keep the optical density of the reactor medium at values that are beneficial for good fluorescence signals, an "OD maintenance system" was built. This consists of two arduinos, an H-bridge module, two peristaltic pumps, a bottle with sterile medium and a waste bottle. The setup uses two "Arduino nanos" - one measuring the OD and the other controlling the peristaltic pumps.

OD Measuring Device

The OD measuring device was built by 3D-printing a case that surrounds a regular UV-cuvette. This case has an opening on one side for the 600 nm LED and on the other side for the light-sensor. A hole was drilled into the bottom of the UV-cuvette and sillicone tubing was fitted inside. The tubing was sealed with 2-compound glue to be air-tight. A 3D-printed cap was put on top of the casing that also had a hole for a second piece of silicone tubing. To protect the OD-chamber from any outside light, another case was modeled and 3D-printed. The OD-chamber was fitted inside this white chamber and cables and tubing were glued to it.
[OD measuring device]
Fig. 2: The parts that were used to assemble the OD-measuring chamber.
The assembled OD-case can be seen in figure 3. Inside one of the openings, a LED with approximately 600 nm and in the other opening, a light sensor (“TSL 235R-sensor”) was placed at the side and the light sensor (“TSL 235R-sensor”) inside the other opening. An isolation tape was wrapped around the OD-chamber to keep everything in place and to protect the sensor from outside light.
[OD measuring device parts]
Fig. 3: The assembled OD-chamber, the 600 nm LED and the photo resistor are pointing at each other. The emitting light of the LED can travel through the cuvette.
[OD measuring device assebly with case]
Fig. 4: A 3D-printed casing was used to protect the OD-chamber from any outside light sources.

OD Maintenance Set-Up


  • Pump 1: Used to pump out medium from the reactor bottle into the OD-chamber and finally to the waste bottle
  • Pump 2: Used to dilute the reactor medium with fresh sterile medium, if required
  • Pump 3: Used to pump out reactor medium through the heating block and the fluorescence chamber into another waste bottle
  • Arduino 1: Arduino controlling the H-Bridge module that had the peristaltic pumps attached
  • Arduino 2: Arduino running the OD-measuring code, sending GPIO signals to Arduino 1, if necessary
[OD setup top view]
Fig. 5: Top view of the whole OD-maintenance setup. A bottle of fresh sterile medium and a waste bottle were connected to the peristaltic pumps 1 and 2.
Arduino 2 was used to run the "Aachen final.ino", an Arduino code used by the 2015 iGEM team Aachen to measure the optical density of a medium with the "TSL 235R-sensor". Before use, the system had to be calibrated with samples of a known OD (measured with a laboratory OD-device). The output value was transformed into real OD-values for better control of the experiment. Then a "switch case" code was written using this output value to decide whether fresh medium was needed to dilute the reactor medium or if a defined pause was required for the next measuring cycle. The Arduino 2 communicated with Arduino 1 via GPIO signals.
For a measuring cycle the coding on the Arduino 1 was designed as follow: After 20 minutes had passed, a small amount of medium was pumped out of the reactor and through the OD-chamber from below. Then a 5 second delay was used for any bubbles inside the chamber to dissociate. A delay ensured Arduino 2 to measure the optical density in the meantime. Then the code was waiting for GPIO signals of Arduino 2 that triggered the pump 2 if necessary. Our experiments showed that the optimal optical density for proper fluorescence signals was at an OD600 of 0.3. The OD-maintenance system was set to this value and was able to keep the OD600 at ~ 0.3 over a long period of time (or until there was no fresh medium left). Whenever an OD600 bigger than 0.3 was reached, approximately 5 ml of fresh sterile medium was pumped into the reactor bottle.
One problem that came up was that the liquid level inside the reactor bottle - it should stay the constant over longer periods of time. Since liquid was pumped out of the reactor bottle every 20 minutes for OD and fluorescence measurements by the other pump, the liquid levels dropped relatively fast and the reactor bottle was empty pretty quick in first trials. The solution was to measure the volumes transferred by the peristaltic pumps for specific running times. Then it was possible to adjust the liquid level inside the reactor bottle by changing the Arduino code since the estimated volumes were known. Every pumped out volume of reactor medium was replaced with the same amount of fresh sterile medium after this adjustment.


Thermostat including a heating mat and a temperature sensor - for the maintenance of the optimal temperature inside the reactor bottle, a basic thermostat system was built:

  • Arduino nano: Running a temperature measuring code (DallasTemperature.h and OneWire.h)
  • DS18B20 digital temperature sensor: Placed inside a glass tube that was inserted inside the reactor bottle and filled with distilled water. The glass tube was built by melting the opening of a glass burette over a bunsen burner until it was closed and air-tight
  • 12W heating mat: Stuck on a small piece of aluminium and placed beneath the reactor bottle
  • Relay module: Suited for common microcontrollers
The relay module and the heating mat was connected to a 12V energy source. The controller pins of the relay module were triggered by the arduino nano, whenever the inside temperature of the reactor medium went higher than 30°C. This caused the relay module to stop the energy supply to the heating mat. Several test runs showed that this set-up holds the inside temperature between 29°C and 30°C which was sufficient for our purposes.
[Thermostat setup]
Fig. 6: The basic set-up for thermostat of the reactor medium. The heating mat kept the temperature of the reactor medium roughly at 30°C. Since magnetic stirring was used the temperature swings were minimal.