Should I get in this elevator? Could a $10 sensor inform my decision?

By Richard Audette,


I first heard about measuring CO2 as a risk proxy for Covid-19 from a Radiolab podcast. Covid-19 can be transmitted through respiratory droplets produced during exhalation. CO2 is also exhaled. We can’t easily measure Covid-19 droplets in the air, but we can inexpensively measure CO2.

Inexpensive CO2eq Sensor on Prototype Board in Elevator

A CO2 measurement greater than atmospheric levels (400 ppm) is a sign of air that has recently been exhaled. If a person were infected with Covid-19, aerosols containing Covid-19 could be lingering in the air. Proper ventilation decreases the concentration of aerosols that may be suspended in the air, as well as the concentration of CO2. As such, measuring CO2 is potentially a useful proxy indicator for airborne infection risk. A “HIGH” CO2 reading doesn’t mean there are Covid-19 aerosols, but a “LOW” reading suggests a low probability of infectious aerosols.

I was curious about this, as I live in a high risk area: I live in an urban neighbourhood in Toronto, which has lots of Covid-19 cases. I live on the 18th floor of a building, ride an elevator daily, and send my kids to school (when they’re open). We try to manage risk: we wear masks, we wash our hands, we don’t meet people indoors, we limit shopping to the grocery store once a week. But we don’t lock ourselves inside, and living in a building means using shared spaces.

So I searched for a way to measure CO2.


  • I am hobbyist, not an epidemiologist or sensor expert.
  • Please follow official guidance and not what you read here. I just think this is an interesting idea that I haven’t seen widely discussed. There is no mention of any value of CO2 monitoring or “safe” levels in any Government of Canada, provincial, or municipal health unit websites I have reviewed.
  • I don’t know if the idea of a personal CO2 monitor has any merit
  • My results haven’t been validated, my sensor has not been calibrated
  • The sensor I used, a Sensirion SGP30, is an “CO2 equivalent” sensor. It approximates CO2 from the Ethanol and H2 in the air it is actually sensing, rather than actually measure CO2

Commercial Offerings

Searching for “air quality sensor” or “CO2 sensor” on any marketplace will yield many products. Most seemed targeted at HVAC technicians - they are not devices individuals would carry on a trip to the grocery store. There are also a selection of devices for monitoring air quality in your home.

The most interesting devices I found were from a company called Atmotube. Atmotube has personal, compact, mobile air quality sensors that connect to a phone, priced between US$80 and US$180. I might order one, but to start, have decided to put one together to start.



SeeOhTwo Schematic


SeeOhTwo Data Logger

The data logger is implemented in NodeJS and sensor is on the Arduino platform. The code can be downloaded from:

Arduino Source

The Arduino source is in SeeOhTwo/arduino-seeohtwo/arduino-seeohtwo.ino . The board can be used without the data logger / Node server, and provides some guidance with each indicator LED.

Arduino GPIO Output Pin CO2eq range
5 400
0 401-599
4 600-799
13 800-999
16 1000-1199
15 1200+

The sensor takes a reading every 5 seconds, and sends a JSON payload with the following format over USB.
{ “co2”:400, “voc”:0, “abshumidity”:3.04, “relhumidity”:16.09, “temperature”:21.56}

With the ESP8266, it would be quite easy to send this to a web service hosted on the cloud, however, I chose local logging, as I wanted to capture readings in places without internet connectivity, like elevators and parking garages.

Data Logger

View screenshot

I’m using a Raspberry Pi as my data logger, but anything that runs Node will do. Download the code and run ‘npm install’ to install the dependencies and launch the server application as follows:

node SeeOhTwo.js

The code looks for a USB connected device based on the manufacturer’s string defined in seeohtwoconfig.json - for the SparkFun board I’m using, this is “FTDI” - you may have to update this setting for your board. The logger allows you to start/stop logging, associate a location with the data being logged, and to download a CSV file with the collected data.

My Initial Results

Download Raw Data

Location Description Avg CO2eq Min CO2eq Max CO2eq
car 8895 644 57330
elevator 413 400 485
parking garage 659 400 1995
hallway 400 400 400
library 434 400 540
starbucks 400 400 400

After a couple of days of tagging data after I leave the house, I note:

  • Peak measurements from the car are very high. One might initially suspect something wrong with the car, but it is relatively new. I believe the SGP30 sensor is actually picking up VOCs from materials off-gassing in the car, as our car sits unused for prolonged periods. As the car gets going and the ventilation brings in fresh air, levels drop. As has been repeated in the media, if you have to drive with someone outside of your social isolation bubble, wear a mask and keep the windows open.
  • Peak measurements from the parking garage are also high. I believe in this case, the SGP30 sensor is also picking VOCs from the organic waste bin near the entrance. The further I am from the waste bin, the further the value drops.
  • I was surprised at my reading from the library. The North York Central library is currently operating a reserve pickup point in a vestibule. There is never more than 1 staff and 1 person in the vestibule, and the door is constantly opening and closing - I’m surprised to see a value above atmospheric levels. This could be a side effect of operating the sensor outside of its recommended temperature range. It was a cold day.
  • I was surprised to see the neighbourhood Starbucks at atmospheric levels. At lunch hour, there are typically 3 staff, and 7 customers inside.
  • I took measurements on a couple elevator trips over 18 floors, once by myself, once with my daughter. Levels were higher with my daughter, but sufficiently low to suggest that there is sufficient ventilation for two people.

I do plan to collect more data.

At what levels of CO2 am I “safe”?

I haven’t seen any agency putting forward a recommendation for a level that would indicate the air would be free of Covid-19 aerosols. Here’s what I have seen:

  • The Radiolab podcast I mentioned above suggests less 600 ppm is great following a discussion with a civil engineer
  • The Minnesota Department of Health’s guidance for schools suggests keeping levels below 800 ppm
  • A University of Colorado paper, still awaiting peer review, presents some formulas that suggest that any value would depend on the indoor environment and activities taking place

Why aren’t these sensors everywhere?

If a hobbyist can do this easily, and evidence supports that fresh air is an effective tool for mitigating the spread of Covid-19, why aren’t these CO2 sensors as widespread as masks? I’ve spent some time thinking about this - here’s what I’ve come up with:

  • The 2m of separation guidance is “good enough”. Guidance has to be simple to be effective. Why complicate guidance?
  • Sensor cost, power consumption, or physical requirements make it challenging to incorporate in phones or wearables like smartwatches
  • Building managers and HVAC technicians are doing a great job managing ventilation, there is no need for individuals to monitor
  • It takes a long time to commercialize a product. We’ve only been in lockdown for a year, and product development cycles are long - devices will come on the market at some point
  • As pandemics do come to an end, there is limited interest in product development when interest might evaporate overnight
  • Perhaps inexpensive sensors, like the one I’ve used, aren’t good enough for this purpose
  • CO2 levels, on their own, are not a sufficient indicator for risk
  • Marketing a device as a way to avoid Covid-19 would be a liability concern for manufacturers. Why isn’t Atmotube marketing this use of their device?
  • Most people follow the same routine and visit the same places everyday. Once one ensures that every space they spend time has sufficient fresh air, an air quality sensor is of limited use. It’s a device you want to borrow, not buy.
  • There is insufficient research linking CO2 measurements levels with Covid infection risk (what is safe?)

Next Steps

  1. I would like to discuss the idea of personal air quality sensors with experts to determine if it has any merit: epidemiologists, sensor experts, and industrial designers. Reach out if you have relevant expertise, I’d like to understand why this would/would not work.
  2. Compare various sensors. As we’re just interested in fresh air for this application, I believe an CO2 equivalent (CO2eq) sensor, like the Sensirion SGP30 used here, is adequate, but I would be interested in comparing results with an actual CO2 sensor (like the Sensirion SCD30/SCD40) and a calibrated, commercial grade device like those sold by
  3. Miniaturize the circuit, and build a wearable monitor, something that could be worn like on a wrist like a watch, a badge, or a clip-on accessory that could be taken anywhere.

Wearable Concept. Source Image @twinsfisch on Instagram

Further Reading, Listening, and Viewing

I’m a hobbyist, and not an expert - I suggest further reading. Here’s where I started:


It is not clear if there is value for individuals in measuring CO2 to inform their day-to-day decisions to manage their Covid-19 risk. Anyone following the official guidance would likely always be in areas with “LOW” CO2 levels.

That being said, building a CO2 data logger is quite simple and inexpensive, and there are ready-made consumer models available. In my testing, the readings do correlate with stagnant air - a potential Covid-19 infection risk proxy. Finally, the CO2 readings in the indoor spaces I frequent confirm there is sufficient ventilation to help mitigate the spread of Covid-19.

Please email if you have any insight on air quality sensing and airborne virus transmission, I would love to hear from you.