Measuring CO2 seems to be a reasonable way to asses the risk of contracting COVID-19 in an enclosed space with others. (1) From these results an excess of 1,000 ppm of CO2 experienced for 1 hour roughly doubles your risk of infection, and can be up to 2 orders of magnitude greater depending on how much exercise/loud conversation is going on.

So while planning on attending a live music venue for the first time in ~2 years, I decided the only way I’d feel safe doing so was being able to calculate the CO2 ppm live.

CO2 sensors

The Aranet4 CO2 monitor (AUD$355) looks like an excellent device for this purpose, but given I enjoy building things and already had a selection of CO2 sensors at home (SCD-41, SCD-30), I thought it might be worth building an open source lower cost alternative.

I decided on a similarly low-power-consumption device to calculate and display the results, a RP2040 powered Badger 2040 running Micropython:

A photograph of the Badger2040 e-ink display connected via a Qwiic cable to an SCD-41 Carbon Dioxide sensor
A photograph of the Badger2040 e-ink display connected via a Qwiic cable to an SCD-41 Carbon Dioxide sensor


I decided to wear a N95 1870+ mask, which I’ve found to be the best face fitting for my face. The dual straps around the back of the head keep it fitted well despite talking and movement, and the foam nose/cheek patch do a great job of keeping the seal on the upper section.

Running the Badger 2040 CO2 sensor off of two recycled 18650 ex-laptop batteries, I tested multiple places around the venue’s large main stage hall:

  • Rear centre ~2m from audience members: 1,900 ppm
  • Rear right ~2m from audience members: 3,200 ppm
  • Rear left ~2m from audience members, next to door: 800 ppm
  • Upstairs balcony ~1m from audience members: 2,700 ppm

The rear left of the venue near the door had a noticeable cold airflow as the venue kept the front doors open for the performance. This provided the least risk, but was also unfortunately right next to the bar, meaning lots of noise from audience members more focused on talking and drinking than listening made the experience less enjoyable.

I ended up staying for ~15 minutes as the risk vs reward didn’t add up for me personally, but it was nice to be able to measure and roughly calculate the risk in real-time.


(1) Exhaled CO2 as a COVID-19 Infection Risk Proxy for Different Indoor Environments and Activities

Join the Conversation

1 Comment

Leave a comment

Your email address will not be published. Required fields are marked *