Tierra de Oro Laboratory

Physiology and Ecology in the Pinyon-Juniper Savanna

Build Your Own Respirometer

Step By Step Instructions on Hardware and Software

Yes, you too can have your own coulometric microrespirometer. To get a sense of what it will entail, please read the Introduction to Respirometry and Sandstrom and Offord Respirometer pages. If you manage to get through all that information and are interested in having a respirometer, this page will help you to build your own. The list of materials used to build the respirometers at TdO Lab is at the bottom of this page.

The minimum requirements are as follows:
1. A gastight chamber that contains a pressure sensor, a CO2 absorbing material, an oxygen generator, and a way of communicating with the outside world. And, of course, an organism.
2. Some sort of control system that turns on the oxygen generator when the pressure inside the chamber drops to a pre-set level, and records the amount of current used.
3. Environmental control, such as an incubator or water bath to keep temperature constant during the experiment. As long as temperature remains steady, the exact method used does not matter.

The actual equipment used has varied considerably between researchers and over time. As far as I know, all of them have functioned effectively. The system in use at TdO Labs, described in Sandstrom and Offord (2022), is simple to assemble and operate, and is constructed largely from off-the-shelf components.

After reading the description, you may need additional information. If so, please use the Contact link at the bottom of the page, and we will answer any questions and update the page as needed.

You may also find ways of simplifying or improving the hardware or software. If you do, please get in touch with us. We would love to hear about possible improvements.

The Chamber

There are a few requirements.

1. It needs to be absolutely gastight.

2. It should be easy to open and close, so that setup and cleanup are as simple as possible.

3. There also needs to be a way for information to enter and leave the chamber during an experiment.

4. A valve is helpful, maybe essential, for equilibrating the internal pressure of the chamber during setup and shutdown.

The chamber should also be no larger than absolutely necessary, so that consumption of oxygen by the organism causes the largest possible pressure changes.

Glass is by far the best material for the chamber. Plastic is easier to work with, but most plastics are unacceptably permeable to gases. Fortunately, the lab glassware industry provides a number of options that are readily available and relatively inexpensive.

Main Body

Drawing of a Schlenk tube
Generalized Schlenk reaction tube.

Let’s start with the main body of the chamber. Schlenk reaction tubes or flasks have been the best options so far. The key features are a body made up of a tube or flask, a tapered ground glass joint, and a stopcock that can be used to equilibrate the internal pressure. These vessels are available from 10 ml to 1 liter, and with a range of joint sizes.

Sensor Plug

The chamber needs to be sealed with a plug that has a joint matching that in the chamber body.

Diagram of a glass plug with a thermometer port. The port is at the top, and the tapered, ground glass joint that fits into the chamber is at the bottom.
Diagram of the glass plug before it is modified for use. At the bottom is a tapered, ground glass joint that will fit into the chamber. At the top is an opening for a thermometer through which the wires will pass into the chamber.
Plug modified for use as a sensor. A connector with six wires is fixed through the thermometer port, and connects to a four-pin header and a coaxial connector.
Glass plug with connections complete. A six-pin connector passes into the thermometer port. Four of the six wires from the connector are soldered to a four-pin header that will connect to the BME 280 sensor. Two wires (red and blue) are soldered to a coaxial connector for the oxygen generator.

The thermometer adapter (left) has a joint that fits into the chamber body and a port that will allow wires to pass. When completed, a six-pin connector connects a cable on the outside with the components on the inside (right). The six-pin connector is connected to six wires inside the plug, and all are sealed into place with a layer of epoxy followed by a layer of silicone. Four of the wires (yellow, green, white, and black) are soldered to a four-pin header socket that will accommodate the pressure sensor. The other two wires (red, blue)are soldered to a coaxial plug that will connect to the oxygen generator. Note that the wire colors and pin assignments are obviously arbitrary. You just need to make sure that the connections in the sensor plug, cable, and controller all match.

Start by soldering wires to the header socket that will hold the BME 280 sensor. Note: this must be done before soldering these wires to the six-pin connector because otherwise the wires will be inside the glass plug and you will be unable to solder the wires to the socket.

First wire ready to be soldered to four-pin socket.
All four I2C wires soldered to socket.
Solder joints protected by shrink tubing.

Once the wires have been soldered to the socket, shrink tubing helps protect the joints from mechanical strain and from the humid environment of the chamber.

Next, the longer wires that will connect to the O2 generator are soldered to pins 5 and 6 of the six-pin connector.

Wires for the positive terminal (red) and negative terminal (blue) of the O2 generator are soldered to pins 5 and 6, respectively.

Now you can solder the I2C wires from the header socket to pins 1 to 4 of the connector.

The four wires that connect to the header socket are soldered to channels 1 to 4 of the connector.

The last electrical connection is between the wires for channels 5 & 6 and the DC plug that will connect to the jack in the O2 generator. The plug is subject to high humidity inside the chamber, and is manipulated each time the chamber is set up, so shrink tubing helps protect the soldered contacts. Remember to slide the shrink wrap onto the wires before soldering the connector on.

The wire from channel 5 (red) connects to the internal contact of the DC connector (to match the anode on the O2 generator). Blue goes the the external contact.
Shrink tube over the two soldered contacts.
Shrink tube over the whole rear part of the connector. This piece of tubing can be slipped over the connector after the contacts are soldered.

At this point, the electrical connections are all done. It is a good time to insert a BME 280 sensor into the header socket, put a resistor across the DC connector, and test that everything is connected and working.

If that goes well, all that is left is to seal the connector and wires in place in the plug.

First off, be sure to remove the BME 280 to keep it from getting fouled. Then plug the socket with a 4-pin header to prevent silicone or epoxy from blocking any of the holes.

Shrink tubing around the joint between the connector and the plug adds structural stability and prevents the low-viscosity sealers from leaking out before they cure.

I use three layers to seal the plug: silicone, then epoxy, then another layer of silicone. The silicone and epoxy are low-viscosity formulas (see parts list), so that they settle in and form even layers. Silicone or epoxy on the outside joint will interfere with the plug sealing in the chamber, so try to avoid this and clean any stray sealer immediately. One trick is to start with the plug in the upright position and insert the sealer nozzle upward, then invert the plug and sealer applicator and inject the sealer downward.

The first layer of silicone is shallow, and only intended to prevent the runnier epoxy from leaking past the connector.

The silicone is allowed to cure fully before the next step.

The epoxy does not seal as effectively as the silicone, and can separate from the glass when temperatures fluctuate. However, it provides structural stability around the wires. This is the thickest layer of the three.

Again, this should be allowed to cure for several days before the next step.

The final layer of silicone is thicker than the first. It provides a robust seal.

The final product should look something like this. A (probably hidden) layer of silicone at the bottom, a clear layer of epoxy in the middle, and one more layer of silicone at the top.

The photo at left shows a finished plug. The connector at top (an older version) passes through the thermometer port, and is soldered to wires inside. The wires and connector are secured with epoxy and sealed with silicone as described above. Four wires connect to the BME 280 sensor (purple, in middle of plug), and two connect to the coaxial plug at bottom.

Oxygen Generator

To generate oxygen inside the chamber, electric current is passed through a an electrolyte solution, thereby liberating O2. In practice, a screwcap centrifuge tube with a platinum wire anode and copper cathode work well.

The coaxial jack at left and the screwcap tube at right. The cap will be drilled to allow the jack to pass through it.

The main components consist of a coaxial DC power jack (4 mm OD, 1.7 mm ID), a 1.8 ml screwcap centrifuge tube, one copper wire and one platinum wire.

The wires are soldered to the contacts of the DC connector.

Electrodes have been soldered to the connector: platinum wire (anode) and copper wire (cathode) soldered to the inner and outer contacts, respectively.

The cap is drilled with a 5/16″ Forstner bit to accommodate the connector.

Screw cap drilled and ready for insertion of connector.
Cap, connector and electrodes assembled, but not secured.

The connector is secured to the cap with epoxy, and the solder joints of the electrodes are coated with epoxy to protect them from the electrolyte solution. A short piece of shrink tubing can be used to hold the epoxy in place while it cures.

The electrode assembly has been secured in the hole of the cap, and the solder joints connecting the electrodes to the jack have been covered with epoxy.

The final step is to drill small holes at the top of the tube to allow O2 to escape.

Oxygen generator, assembled and partially filled with a saturated solution of copper sulfate. This unit has been used for many experiments, as shown by copper deposition on the cathode (right electrode) and blue staining of the epoxy by the electrolyte.

Unlike the other components (e.g., the sensor plug and chamber), the O2 generator will need to be replaced after several dozen experiments.

O2 generation electrodes after more than a year of regular use. The copper cathode (bottom wire) has a heavy coating of metallic copper deposited during electrolytic production of oxygen from copper sulfate. The platinum anode is not noticeably affected.

For example, the cathode may become too thick with copper deposits or fluid may creep past the epoxy and damage the to the contacts. The DC connector and copper cathode are not salvageable. However, the platinum anode (the most expensive part) is not altered by use, and can be removed from the old connector and reused.

Soda Lime Tube

The last component is the container for CO2 absorbent material.

Pelleted soda lime is effective and easy to use. A small, perforated tube such as this 0.8 ml centrifuge tube, will keep it contained but allow free circulation of air. The tube can be perforated in any number of ways (drill, soldering iron…), as long as the holes are not large enough to allow the pellets to escape.

Chamber, Assembled

Here are two versions of assembled chambers. At left is a setup for fruit flies, with a small tube of flies inside a Schlenk tube. At right is a chamber comprising a Schlenk flask for larger animals, such as beetles.

The Controller

Something is needed to read the sensor, activate current to the oxygen generator, and send data to a computer. This can be accomplished easily using a microcontroller. Our design is based on an Arduino Nano Every, but others (e.g., Raspberry Pi) will work equally well.

The controller uses the I2C serial connection of the Nano Every. Yellow and green wires power the BME 280 sensor, with black and grey wires carrying clock information and data (pressure, temperature, and humidity). Data are displayed on a small OLED display using I2C. The current circuit (blue and red wires) supplies power from the 5V output of the Arduino to the oxygen generator.

Details of the connections to the Arduino:

I2C connections to the Arduino for the BME 280 sensor and OLED Display

  • 5 volt power (yellow)
  • Ground (green)
  • SCL (Clock) pin A5 (black)
  • SDA (Data) pin A4 (grey)

Current to the oxygen generator (and Current Monitor)

  • Current out: pin D4 (red)
  • Current Monitor in: pin A0 (blue); note 10 ohm sense resistor between blue wire and ground.

A manual toggle switch (SW1) on the current output (red wire) prevents activation of the oxygen generator during setup. The voltage across a 10 ohm sense resistor (Rsense) is used to monitor the current through the oxygen generator, and is sent to one of the A/D inputs of the Arduino (Imon).

The controller connects to the chamber via a six-conductor cable. Data are sent to the computer via the USB connection of the Arduino.

The code for operating the controller can be found at the bottom of the page.

Controller Assembly

The actual controller needs to be soldered together and put into a box. Assembly is not terribly complicated, but it does look different from the diagrams.

Once assembled, a controller box for a single channel will look something like this.

Junction box with a hole drilled to show a digital display.  Black connector and swith at top, cable exits box at bottom.
Single channel controller. At the top, a cable connects the controller to the respirometer chamber (not shown). The switch at the top right shuts off current to the oxygen generator. The cable at the bottom connects to the USB input of a computer. A clear acrylic windows allows the OLED display to be viewed.

All of the circuitry is contained in a plastic relay box, drilled to accommodate a six-pin connector (for the cable to the chamber), a toggle switch (SW1 in the circuit diagram), a USB cable to the compter, and a viewing port for the OLED display.

The brain of the controller is an Arduino Nano Every on a circuit board.

Arduino on circuit board. Wires, some hidden under the board, connect the Arduino to a 6-pin header that will lead to the sensor plug . The Arduino is connected to a second header for the OLED display. A 10 ohm sense resistor (Rsense) serves as a current monitor. The Arduino will connect to a computer via its micro USB connector.

On such a small production scale, it is simple to use colored wires to connect the Arduino to the other components on the board. Six wires connect the Arduino to a six-pin header which will in turn connect to a six-pin connector on the outside of the box. The 4-pin header for the OLED display is connected to in parallel to the I2C (a 2X4 pin header helps to keep the OLED display standing straight).

Connector and wires.

Bulkhead connector soldered to cable, with toggle switch inline on one wire and a six-pin terminal connector
Assembled wiring from six-pin bulkhead to six-pin terminal connector. Toggle switch for shutting off O2 generator is inserted into the current source wire (red).

A six-pin female bulkhead connector is mounted on the controller box to connect to the chamber. Wires are soldered to the connector, then to a 6-pin plug that matches the six-pin header on the circuit board. A toggle switch (SW1) is soldered between the plug and connector of the current output channel.

circuit board with Arduino Nano Every, connected to 6-pin header with wires leading to a 6-pin connector and switch, OLED display at bottom right.
Assembled controller before mounting in the relay box. The six-pin connector that will lead to chamber is connected to the circuit board. A switch (SW1) shuts off power to the oxygen generator when not needed. OLED display is plugged into its header.

The photo above shows the finished controller before mounting in the relay box. The wires from the bulkhead connector are inserted into the 6-pin header on the circuit board and the OLED display is plugged into the 4-pin header.

ABS plastic box from Bud Industries
ABS Relay Box from Bud Industries. This size (3 1/4″ X 4 3/8″ X 1 1/2″) fits a single channel controller comfortably.

The box can be anything that holds the components and can be drilled for the connector, switch, and USB cable. We have been using ABS plastic enclosures from Bud Industries for single channel boxes. Forstner bits work well for drilling clean holes in the plastic.

Three holes have been drilled in the top for the bulkhead connector, toggle switch, and for a port on the top for observing the OLED display.

The connector and switch have been secured into place, and an acrylic window has been cemented into the viewing port.

In the bottom half of the enclosure, the circuit board has been screwed into place, a notch has been cut for the USB cable, and the micro USB has been plugged into the Arduino. After this, it is just a matter of plugging the connector from the top into the bottom and screwing the box together.

Respirometer controller box. The connector for the cable to the chamber and the toggle switch to the O2 generator are at left. The USB cable exits at the right.
Completed respirometry controller box. The cable from the chamber will connect to the bulkhead connector at left, the switch controls the oxygen generator, and the USB cable that exits from the right of the box will connect to the computer.

The Cable

Cable with black connectors at each end.
Six conductor cable with water-resistant connectors at each end.

The cables connecting the controllers to the chambers are made from 24 gauge, six-conductor cable with male connectors at each end. There is nothing mysterious in their construction, just make sure each wire is connected to the same pin at each end.

Additional Information

At this point, you should be able to assemble everything and measure oxygen consumption. Your questions will be very helpful for pointing out things that need to be expanded or clarified.

There is a video describing the setup of an earlier version of this respirometer for fruit flies here. Unfortunately, the journal has a rather restrictive paywall, so you may not be able to access the video if your institution does not subscribe.

If you are interested in using the technique, but do not feel like building your own or would like more information before starting, send a message using the Contact Tierra de Oro link at the bottom of the page.

List of Materials

Arduino code