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.