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

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.


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.



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.

Now you can solder the I2C wires from the header socket to pins 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.



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 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.

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


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 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.

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.

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.

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.

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.

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.

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.

The Cable

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