For my use case — simply getting some statistics about the air quality in our shared flat, improving concentration, and having a reminder to ventilate — the accuracy of the SCD40 is sufficient. It also has a self-calibration feature, which works as long as it is exposed to atmospheric CO₂ levels at least once a week. See the detailed specifications here: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/d...
I built a meter around a SCD30 six years ago. The self-calibration routine was not very good, for two reasons.
1) It had an unrealistically low default level, something like 380 ppm. The atmospheric concentration keeps going up! The linked pdf says "The automatic selfcalibration algorithm assumes that the sensor is exposed to the atmospheric CO2 concentration of 400 ppm at least once per week." Atmospheric CO2 definitely is not 400 ppm anymore.
2) As far as I could tell it made no effort to choose a local minima. In a regularly ventilated space, if it decided to "calibrate" when a door was closed, it could abruptly declare 600 ppm to be 380. I just hard coded an offset value and disabled ASC.
> as long as it is exposed to atmospheric CO₂ levels at least once a week
That's much less likely than most people would think.
A modern building without active ventilation and windows closed is absolutely not going to see atmospheric CO2 levels.
I measured this once and found it took almost a full week of no human occupancy for such a building to be equal to outside.