AirGradient Forum

Model number for CO2 calibration?

First of all sorry for the confusion with the CO2 calibration. I just did the following to improve the current situation:

  • The checkbox for CO2 calibration on the AirGradient dashboard is now only shown for the previous generation that supports it until we have that functionality implemented in the v9 firmware
  • I added this information to the support article on our website

I also spoke to our firmware developer for the new v9 firmware and he is in the last stretch of development and expects to have a first version ready in a few days. Then we need to do some testing before we release it. If anybody interested to be beta tester please let me know.

This release will then include the CO2 calibration feature as well as a few other missing pieces, e.g. configuration of the LED bar and display via the dashboard.

I’m also curious about @ichiban’s question/issue “After establishing this baseline, it makes no sense to me that the baseline should periodically get updated with a 1 week trailing low.”

Can someone at AG or someone with more knowledge about the sensor explain why re-calibrating against a 1 week trailing low is the best default? For example, does post-calibration drift occur so fast that, if it was calibrated much less frequently (say, once a year), it would be inaccurate?

Stated another way, could it use the lowest value in the last 3 months instead of the lowest in the last 1 week (if it can stay calibrated for 3 months), or only calibrate when explicitly requested? I don’t know enough about the typical usage to propose the sanest default, so please take my comments with a grain of salt. That said, 1 week seems like a fairly short lookback period (plenty of rooms have bad airflow, especially in cold winters), and if the sensor can maintain calibration for months, a longer lookback period seems like a better default.

Alternatively, if the longest possible lookback period is 1 week, maybe let users choose the calibration mode based on the property of their room? For example, imagine 2 radio buttons on the sensor settings page:

Does this room receive plenty of outside air at least once a week, all year? Learn more

( ) Yes, my room gets plenty of outside air at least once a week, all year around. Automatically re-calibrate it to the lowest CO2 value seen in the past week.
( ) No, my room is sometimes closed up for a week or more or may have poor circulation. Don’t re-calibrate it automatically.

If the user chooses the second option, disable auto calibration and email the user a reminder once a year or however often it’s needed, or at least show the date of last calibration in red in the Dashboard when it’s past the recommended frequency.

1 Like

Basically all NDIR CO2 sensors (e.g. Cubic, Winsen, SenseAir, Sensirion etc) have ABC calibration. Some even daily which poses a much bigger issue. One of the reasons we chose the S8 was that it is NOT daily but weekly.

I think the biggest issue is if the place that is monitored has no regular fresh air circulation e.g. low energy houses, basements or permanently occupied spaces.

I put onto our roadmap a feature to disable the ABC completely (one that @MallocArray ESPHome implementation already has) and I have also asked my contact at SenseAir to send me more information about the expected drift if ABC is switched off. I am also checking if we can set a custom ABC period (e.g. one month).

I will let you know once I hear back.

@troy I like your UI proposal. Actually we deployed two front end developers recenly and one of their focus is to make the UI and especially the onboarding more user friendly.

4 Likes

That sounds like a great plan. Thanks!

I had a good meeting with SenseAir. They have some long term studies about the drift of the sensor when ABC is switched off. On average it looses only 5-15 ppm per month. So it means a longer baseline calibration eg 6 months would be totally doable.

1 Like

Excellent.

Here’s a casual attempt to test how realistic it is to calibrate using indoor air during a period when people aren’t in the room (ie, treating the weekly low like it’s 400 or so). These charts show CO2 readings in a bedroom during two periods:

  1. When nobody has entered the entire house (approx 40 hours)

  2. A bedroom usage pattern that’s probably at the low end of typical for a bedroom: occupied at night by 1 person, no one present during the day (someone might enter for a few minutes occasionally, but it isn’t used for other purposes). Although it does have some airflow from other spaces that may be occupied during the day, there’s no fan or other intentional air exchange.

Here’s the chart. From the start of the period until about 5 AM before the period where readings start to flat-line, the occupancy pattern is #2 (typical bedroom). From 5 AM that day until 9 PM the next day, the occupancy pattern is #1 (completely empty structure). After that, back to pattern #1 (empty).

The lowest reading is 418, and that level is reached after 27-28 hours of pattern #1 (empty). During periods when the space is only occupied at night, the lowest readings are 480 and 488.

A couple takeaways:

  • At least for this room, other than everyone vacating the house for multiple days (travel), it’ll probably never get under 480 in a typical week. Of course, it will occasionally when a window is opened, but outdoor temperature often makes that unrealistic.

  • On one day (chart day 2), the daytime low is 530. For a slightly different room or a slightly different occupancy pattern, a room may not go under 530.

I’m sure it’s a completely different story for, say, a school where classrooms are completely empty all weekend. But for home use, I don’t think ABC on a weekly basis was ever realistic.

We are home most of the time, but the CO2 between basement and main floor doesn’t typically deviate that much, but there is a central furnace that is circulating air.

Dark Blue is on the main floor, Orange and Purple are in the basement (one in finished side, one in unfinished) and Yellow is an outdoor monitor. Lowest I’ve gotten over 2 days is 600 around 3-4:00 am when the house hits the coldest and the furnace starts up.

image

2 Likes

We are thinking a good new default for the ABC calibration could be 30 days. Much longer than the current 7 days but also not too long to get into serious drift issues.

Then offering options for other durations and adjust switching it off completely.

5 Likes

One data point - our house is quite well sealed (maybe too well), so I disabled the ABC. I set the unit outside for several minutes after assembling it, and then did a calibration. The CO2 values seemed sane, but then we went on vacation for 2.5 weeks, and it soon became obvious that the CO2 values were drifting steadily lower. We returned home 29 days after the original calibration and I placed the unit outside again, and it then displayed a CO2 value of 314 ppm after 30 minutes, which seems much too low. I calibrated again, and it showed 400 ppm as expected.

So, it is possible that some units drift much faster than 5-15 ppm per month. My single data point suggests roughly 85 ppm / month of drift. I’ll calibrate monthly and see if there is any consistency to the drift rate. If so, I’ll look at adding a drift correction to the data displayed in Home Assistant.

1 Like

I don’t think they drift that fast. However, outdoor CO2 levels can vary quite a lot. Not only between day and night but also due to meteorological conditions.

You can see the variation from this blog post.
https://www.airgradient.com/blog/performance-of-low-cost-co2-sensors-outdoors/

So I think that is more likely the culprit.

That is very interesting! Thanks. We live in the boundary area between urban and rural, so perhaps our local CO2 concentration was well above 400 when I did the initial calibration. I’ll search the web for more information on why CO2 varies more in rural areas, and attempt to learn if there is a best time of day or weather condition to do a calibration.