S8 CO2 sensor reading high?

I recently assembled the DIY Basic kit with Jeff Geerlings airgradient-prometheus code and have been running it for a bit over a week. I’m seeing very high readings from the CO2 sensor and wondering if that’s normal to start with and over time it’ll get closer to “normal” values as it calibrates itself?

The drop to ~1200 was when I put the sensor in an open window this morning, which I’ve done a few times over the last week, but it never gets down to the expected ~400ppm for outside air.

Thanks for any help,

Please have a look at manual calibration.

OK, I’ll be more patient and see how things play out in the next week or two!

Though, I’m now also seeing periodic readings of -1 and ~520ppm, so perhaps I’ve got other issues I need to look into as well, perhaps poor solder joints or power supply?

Please make sure you update to Version 2.2.0 of the Arduino library that addresses these issues.

1 Like

@AirGradient, I would like to STRONGLY recommend that you include this information as part of the build and setup instructions for the Airgradient Pro kits.

Most of us are used to consumer devices that come precalibrated. And every scientific device I have that requires calibration came with explicit instructions for when and how often to perform that calibration. There needs to be a warning upfront that calibration is required and initial readings will be wrong. You also need to explicitly instruct people to expose the device to outdoor air for proper calibration, and tell them how long the autocalibration will take. The current instructions basically end by saying “the device will start sending data, and here is how to set up your dashboard.” If you don’t warn people explicitly that the “data” is useless, of course they will assume they are now seeing accurate data on the dashboard!

It also sounds like the device will continue to recalibrate its baseline every week, using the assumption that the room reached equilibrium with outside air during that time period. That assumption is incorrect most of the time for many of us. Most people in cold climates do not aerate like that during the winter. In North America it will also be incorrect in the summer, when most spaces are air conditioned. It will also be incorrect at any time in sealed multi-story buildings which do not have windows that can be opened, like most office buildings. I can only imagine how many people are getting completely incorrect data right now because they have only ever used their indoor monitor indoors.

To be honest, I would not have bought one if I had known that I will need to remember to take it outside at least once a week to keep it accurate. I’ve also been very disappointed with the instructions and information here in general. The very simple build instructions for the pre-soldered kit were full of errors and omissions, and while searching for information to fill in the gaps, I saw that many basic troubleshooting and set up questions have been left unanswered in these forums. If you really want this to be a community-building project, the onboarding and learning resources need to be much more user friendly and comprehensive.

Thank you for your feedback.

Yes, we will put this into the built instructions on the next update.

In general, all consumer indoor air quality monitors do an automatic baseline calibration and with the SenseAir S8 we use a high quality one that does a seven days baseline calibration. Many of the cheaper ones, e.g. the Winsen ones do an ABC every 24 hours which is not sufficient.

W monitors 1000s of rooms and in most cases, the ambient (or close to ambient) levels are reached at least ones every week. Exceptions might be extremely well sealed buildings or basements.

There might be ways to switch off the ABC completely and I will check this with our developers. That might be solution for these cases.

Regarding your disappointment with the instructions, it would be great if you could exactly specific what you did not like so that we can improve them. The latest instructions are here.

Last but not least, if you want to return your kit and get the money back please contact our support team for the process.

I have a DIY kit in my basement and a Pro in my main floor. Neither gets down to 400 over the course of a week. I actually saw over the last week that the main floor was always reading 300 less than the basement, so I took it outside and saw the levels drop to 150.
I kicked off a calibration and now I’m getting 400 outside. Giving it some time before I bring it back into the main floor, but I’m guessing my basement is way off.

I’m using ESPHome and HomeAssistant and I configured a button so I can kick off a calibration when I want, but I also saw there is an option to disable automatic calibration. Any idea as to how much the S8 drifts over time if I were to disable automatic and only do them periodically when I bring them outside?

Yeah, I work from home and live with two dogs in addition to my spouse, so there is really no time that I expect our interior to reach equilibrium with the outdoors as long as our windows are closed. There are always people and animals here emitting excess CO2. So, I elected to calibrate manually outdoors.

Unfortunately, this did not end my problems. After running the manual calibration outside, I found my indoor readings were below 400. That couldn’t be possible, so I assumed that the manual calibration script actually set it to 0 instead of 400. I figured that would be okay–it’s not like it’s complicated math to add 400 to a reading. So for a couple days, I just assumed a reading of 500 was really 900, etc.

However, today, I had all the windows open for an unusually cool morning. I expected to see the CO2 come down to around zero, where I assumed it was calibrated, but instead the readings were around 175. So, I decided to set it outside, to check the current outdoor reading. Outdoors, the reading immediately increased to 300, where it has stayed constant for over an hour. Womp womp.

I was prepared to accept that my house may not get exactly equal to the outdoor CO2 even with full ventilation, but there is no way that my house has lower CO2 than the outdoors! This strongly suggests that the measurements are unreliable.

I turned to the internet to find out what could interfere with the sensor accuracy–drafts? Humidity? It turns out NDIR CO2 sensors are affected simply by temperature. This is because the output of the infrared emitter may be different at different temperatures. The extent of this can vary according the manufacturer. For example, see this paper comparing two commercially available units. The units from one manufacturer stayed near the actual CO2 concentration as the temperature was adjusted. The units from the other manufacturer started at the reference measurement of 600ppm at 16C (~60F), but ended up as much 850ppm at 30C (~86F). With concentrations at 2100ppm, the high temperature measurement was up to 2850ppm, off by 750ppm! Its not unusual to see this kind of variation in temperature simply between daytime and nighttime where I live, so this kind of uncontrolled temperature dependence would render the unit useless.

Unfortunately, it appears AirGradient has a similar problem. I suspect that this CO2 sensor is also giving readings that increase with temperature, because my shady house is significantly cooler than the outdoors air during the part of the day when the temperatures have just begun to rise. This would explain the discrepancy in the readings.

It is also possible for software to compensate for these effects. If you know the curve for the increase in measured CO2 vs temperature, and the software can calibrated to take that change into account. In other words, a raw reading must be adjusted according to actual temperature, based on how the sensor is known to perform. From what I’m seeing, I assume that this is not being done in the AirGradient.

This poses a serious problem for accurate calibration. During the hot or cold seasons, the only way I can get air for baseline recalibration would be taking the unit outside or opening all the windows in the room, either of which will mean calibrating at a temperature that could easily be 20 F degrees hotter or cooler than the indoor air it will subsequently be measuring.

I love the idea of this whole project so much, but it just doesn’t seem ready for primetime. I mean, apparently some commercial monitors aren’t either, but with the scientific bent of this project, I expected this kind of caveat about the specs to be front and center.

Both temperature (T) and relative humidity (RH) can affect the NDIR CO2 measurements. However typically we do not see as big effects as you are having. Would it be possible you post your 24h charts for RH, T and CO2.

Obviously these big differences between outdoor T/RH and indoor T/RH could make the calibration challenging.

One idea for a baseline calibration could be:

  1. Open the windows in one room to get it to ambient CO2 levels
  2. Close the windows but nobody in the room and let the room warm up
  3. Go into the room and then perform the baseline calibration quite quickly

We currently run a large research project to develop compensation algorithms for PM and it might be interesting to do something similar for CO2.