The use of masks under strenuous conditions can be quite uncomfortable and laborious. It is hence imperative that the air inside the mask is as fresh as possible and the act of breathing is easy. This places limits on the total amount of “dead” volume due to the rebreathing of CO2 from the previous breath(s). This effect can cause the overall oxygen levels to fall and the wearer to breath more heavily and quickly to make up the difference. This leads to exhaustion, uncomfort and severe drops in cognitive performance which leads to mistakes, low morale and motivation. Measuring the CO2 levels is hence imperative to ensure safe and comfortable use of the mask.


  • Breathing machine (or cough assist which can produce breaths of 2 liters in 2 directions at least 25 times per minute)
  • CO2 tanks
  • Flow meter for the CO2
  • Pressure sensor
  • 2 CO2 Sensors
  • Arduino Mega
  • USB cable (for the Arduino Mega)
  • Computer fan and suitable power supply
  • Computer (e.i. laptop)
  • The pneumatics (see figures)
  • Hand held wind speed measurement instruments
  • The setup shown in the following figure:

Figure 1: CO2 experimental setup

A close up of electronics

Description automatically generated

Figure 2: Pnuematics


The setup consists of a breathing simulating machine, CO2 tank and the pneumatic setup. The breathing machine regulates the inflow and outflow of the system via the pneumatics. The CO2 feeds CO2 into the system through flow meter. This flow meter has a controllable valve which can regulate the flow.

The pneumatics combine the CO2 and the clean air from the machine through a set of one-way values. These separate the inhale and exhale to the top and bottom pipes respectively when viewing Figure 2. Part of the CO2 is sampled by bleeding a small amount air through the sensor, by utilising the pressure drop over the one-way valves and a restriction. This blead air is stored into buffers for mixing and to minimise shocks and ripples. It also slows and mixes the air such that the readings provide an average with a variation slow enough for the sensor to accurately measure. The volume flow itself is measured through the pressure difference between the in and outlet of a venturi with known geometry. This can also be verified through an external handheld flow velocity meter held in front of the head with the known outlet diameter.

The CO2 for the exhale is measured by taking blead air from after the venturi and is dumped into the flow after the second to last one-way valve. The CO2 blead air for the inhale is taken from the mouth of the dummy head and is dumped after the second to last one-way valve.

The fan has the function of blowing away the CO2 “cloud” from the setup to ensure the dummy head is breathing fresh air and the only CO2 measured is the dead volume in the mask and setup.


Before the testing starts, the supply of the CO2 should be checked to see if this is enough for the number of tests. For each mask, the test can take up to 5 minutes or even longer when considering the time required to calibrate and gain an acceptable starting state. Hence, 5 minutes per mask and 10 minutes for other activities should be taken.

After the start-up, the process was the same for each mask. It is recommended to do multiple masks in one go and not to re-start the setup each time. This is because the valve which checks the CO2 changes position with pressure variations and the flow in the CO2 pipes are different due to hysteresis. The result is hence that each re-start requires time and effort to re-calibrate the CO2 flow which wastes CO2 and time for each mask tested. Instead, some settling time between the masks is recommended and during settling time to check the CO2 concentration to make adjustments.

The room where the test is done needs to be very well ventilated and large to ensure that CO2 poisoning does not occur. Not that the area immediately surrounding the setup should be safe, however breathing in close proximity to the outlet of the machine should not be avoided.

Test protocol:

Required software:

– Dedicated in house produced Arduino code for the reading of 1 flow sensor and 2 SprintIR-WF-20 CO2 sensors.

– Dedicated in house produced data readout and storage Python program.

– Dedicated in house produced data processing Matlab storage program.

– Handheld readout kit.


  1. Plug the CO2 into the CO2 coupler (do not turn on).
  2. Connect the breathing machine adaptor into the breathing machine.
  3. Plug the breathing machine into the wall socket.
  4. Connect the fan into its power supply.
  5. Connect the fan power supply into the wall socket.
  6. Place the fan near the face as shown in Figure 1.
  7. Plug the USB cable into the Arduino and into the laptop.

Calibration of breathing machine:

  1. Start the measurement from the laptop. (Run the most recent Python program for the test setup.)
  2. Turn on the application for the handheld readout measuring devices for wind speed measurement.
  3. Turn on the breathing machine (leave the CO2 off).
  4. Set the machine to manual.
  5. Make the machine inhale (note that inhale here is relative to the test setup and might not coincide with the breathing machine).
  6. Change the inhale pressure such that a speed of 3.2 m/s is measured at the mouth of the dummy head is measured.
  7. Check if the venturi readout registers roughly 430(+- 20) (this corresponds to 80 l/s).
  8. Re-do the previous two steps to ensure both sensors are in rough agreement with each other (note that the inhale is more important than the exhale).
  9. Set the machine to exhale (note again that this is relative to the test set up and not the machine).
  10. Change the exhale pressure until 3.2 m/s is reached for the wind speed measuring device and 675(+- 20) for the pressure sensor (corresponding to 80 l/s, note that this is more than the previous value due to the sensor and venturi dynamics).
  11. Do previous step until both sensors are in rough agreement with each other.
  12. Set the machine to auto (breathing in and out).
  13. Change the timing of the inhale to be 1.15 seconds long.
  14. Change the timing of the exhale to be 2 seconds long.
  15. Check if the measurements respond.
  16. Stop the measurements.
  17. Post process the measurements and ensure that the results are expected and in line with the requirements (if not, restart the calibration).

Calibration of CO2:

  1. Ensure the environment is clear for work to ensure that all tests can be done in rapid succession and ensure that the testing steps can be followed immediately.
  2. Turn on measurements.
  3. Turn on the breathing machine.
  4. Screw the control valve for the CO2 completely shut.
  5. Open the CO2 tank main valve (nothing should flow).
  6. Using the measurements read out of the sensor, increase the flow using the CO2 flow control valve slowly until 5% is reached (50,000 ppm or 5000 readout from the SprintIR-WF-20 sensor).
  7. Check this value during each settling period.
  8. Stop the measurements.


  1. Place the fan and make sure this is on.
  2. Start a new measurement.
  3. Check the CO2 levels.
  4. Let the setup run and settle for 30 seconds without mask (use this time to prepare the mask).
  5. Place the mask over the mouth and check if the mask fits well on all sides.
  6. Wait for 1 minute.
  7. Remove the mask and wait for 30 seconds for the system to settle.
  8. Add the mask again for 1 minute (prepare next mask).
  9. Remove the mask and stop the measurements.
  10. If there is another mask to be tested, start again from the first step. Else, go to the next segment.

Stop testing:

  1. Turn off the CO2.
  2. Wait for the system to purge by keeping on the fan and breathing machine for 30 seconds.
  3. Turn off the breathing machine.
  4. Turn off the fan.
  5. Unplug all machines.
  6. Clean work space.