Best CO2 sensor

I’ve opted for the Senseair K30. The build is described in this topic: Senseair K30 CO2 meter

Most relevant to this topic (‘Best CO2 sensor’ ), is the reason why i choose the K30: my goal was to have a reliable CO2 sensor, but there is very little fact-based information about ppm variance and accurarcy to be found on the different fora, so i felt the urge to do a little scienfitic literature study.

Long story short: i choose the K30 because it is scientifically tested and compared to calibrated lab equipment. Based on several scientific papers, the K30 came out in the top. In most home applications, it will most likely fulfil its intended purpose.

The Automatic Baseline Calibration (ABC) of the K30 checks the last 7.5 days for the lowest value. Therefore, as long as your location is ventilated once per week to aprox. 400 ppm, you will be fine.

If this condition cannot be matched, it might be better to look for a sensor with a second gas chamber, holding a known concentration of CO2 to perform the calibration. The Telaire T6615 is such a sensor and it looked very promising to me. However, based on the research i did on scientific papers, i discarded this sensor:

Tomomi Yasuda et al, Comparison of the Characteristics of Small Commercial NDIR CO2 Sensor Models and Development of a Portable CO2 Measurement Device, Sensors 2012, 12, 3641-3655:

The output differences between the sensor individuals of an identical sensor model were less than 54% in K30, but larger (160%) in T6615, suggesting different intra-model variation for different models.


In this study, the K30 and AN100 showed a good linear relationship between the sensor outputs and standard CO2 gas concentrations. These clear linear relationships were observed under most measurement conditions for different temperatures and lengths of use. The other two sensor models showed no clear relationship between the standard CO2 gas concentrations and their outputs.

Please note that this does not mean that other sensors are bad. It simply means that, -until your sensor is part of a scientific study-, you simply cannot know if it is reliable or not.

1 Like

I wonder if you could just use a cheaper sensor and have HA correct the received data using the same calibration method.

That fully depends on the quality of the sensor. If the sensor values are unreliable, no calibration can correct for that. The mentioned scientific papers support this statement.

Actually funny on these calibrations: my Airthings device calibrates at 450ppm, the Heiman at 400ppm and the Aranet at 420ppm; the result is indeed that the devices show their data with a different offset. Taking that offset into acount the reading are roughly the same with a bit higher differences as at 1.000+ppm readings.
At the same time: calibrating every week seems just too much; or better, it would show the sensor is of low quality. But then again if you get a good enough reading from a cheap sensor it is ok. In the end, it doens’t matter if the reading is even 20% off.
for info: I found a reference for global C02 outside air measurements/quality: earth :: a global map of wind, weather, and ocean conditions But I need to check what the source is of this data.

the problem is that you just don’t know how good the sensor is. Ideally a device should report on what corrections it is doing. So you get an idea on how sensor is really drifting. Like power meters for bicycles do: they give you their correction factor after calibrating (not that anybody uses this).
Doing is in HA, would only make sense if you get the raw data from the device. But if your aim is for high quality, you should also be calibrating at a higher value. And that is problematic to get a good reference*. For in home usage, in the end it is just a reference. Is the quality of the air really good, average, bad is enough as input. And if average starts at 800ppm or 1.200ppm is arbitrary I think.

Walter

  • the comparison with bike power meters: with the calibration they all get good on ‘average’ measurements; but in high loads they start to disagree… 1 point of calibration is just not enough to have quality over the complete range.
1 Like

Calibration is one thing, the humidity resistance is the other aspect. Normally the CO2 sensors are easily disturbed by high humidity, they correct their readings against it, but the precision especially in humid environments is where they differ a lot. This is why I tend towards the SCD41

1 Like

Hi.

I’m the CO2 Gadget author and Home Assistant user also.

I don’t know if you are aware of it but since one or two months ago CO2 Gadget supports the Home Assistant discovery, so it’s very easy to integrate it into HomeAssistant with minimal effort.

Also, the firmware is compatible with any CO2 Monitor based on ESP32 you can already have (99% of them).

You can find updated information here: CO2 Gadget: Advanced CO2 Meter - eMariete

1 Like

I’m sorry to say that the new version is not very stable yet.
Settings disappeer when i reboot the device. I reverted to the previous firmware, and will follow developments with great interest.

Nobody has reported it until now.

Please, if it is not too much to ask, open an issue so I can understand what is happening and fix it:

I can’t fix a problem I don’t know about. :wink:

I can confirm that version v0.11.000 now works as expected.
Thanks for your hard work!
(i have not tested the new buzzer function b.t.w.)

1 Like

The firmware for the CO2 gadget got even better with version v0.12.022.

Also the TTGO T5 e-ink module is supported so it can be used for 3 months on a 18650 type battery!

While 400 is the usual average for outside, below is not impossible. If you have lots of plants and few people, co2 might drop.

If you really want to know if it works you need real calibration. If the results need to be really accurate, I would not go for self built devices anyway but hire or buy (semi)professional gear, which is calibrated and does not rely on autocalibration.

The T6615 has it’s own gas supply for accurate self calibration, unlike all of the other sensors I am aware of which need periodic exposure to outside air to deliver accurate readings. I’m still surprised it doesn’t get more coverage, especially since esphome support is very good for it.

Maintaining a calibrated CO2 meter is crucial for accurate readings, whether commercial or DIY. Users should understand their meter’s operation and calibration steps. DIY projects often provide deeper insights than off-the-shelf devices.

Regarding outdoor plant influence on CO2 levels, while significant alterations are improbable, basic knowledge is essential. I advise calibrating meters in fresh, unconfined air.

Additionally, from my experience, many commercial CO2 meters suffer design flaws, providing a false sense of quality. For more insights, please refer to my blog post:

Are CO2 Meters Homemade as Reliable as Commercial CO2 Meters?

While the T6615 is indeed a dual-channel CO2 sensor, there are several other dual-channel CO2 sensors available, such as the widely used Sensirion SCD30. This sensor, priced at a fraction of the T6615’s cost, operates at 3.3V (unlike the T6615, which requires 5V), consumes less power, and offers higher precision.

An important point to note is that dual-channel sensors also need periodic calibration to maintain accuracy.

I appreciate the mention of esphome support for the T6615. However, it’s important for users to explore multiple options before making a decision. The Sensirion SCD30, for example, provides excellent performance at a more affordable price point.

For more information on the Sensirion SCD30, you can visit the following link: Sensirion SCD30 Dual-Channel CO2 Sensor

I bought one SCD30 with ESP32 for test purpose, but I’m not able to get it working. I followed instructions in article on emariete. When the web tool uploading configuration to ESP, shortly after “Wrapping up” I’m getting an error:

Serial port is not ready. Close any other application using it and try again.

I tried restart computer, use diferent computers, cables, but still same.

The second issue is that I’m affraid that I have some problem with connection because I also tried install basic configuration from Sensiron via Arduino IDE, but in serial monitor I’m still getting error:

Error trying to execute blockingReadMeasurementData(): Received NACK on transmit of address

Could someone please help me to solve these issues?

For those who might be interested, I just finished the MoreSense MS-06 based on the Sensirion SCD40. It can easily be connected to HA via MQTT or REST (yaml). I have been working with the SCD40 for quite some time now and it turns out to be quite reliable. I did several comparison tests with the Aranet4 which is considered quite accurate and the results are very comparable. One can turn off the auto calibration (ASC) and also calibrate with a reference value.

Airthings Wave works well here. Smooth direct integration via Raspberry Pi built in Bluetooth. Connection drops occasionally, but not too badly. What is a bit disappointing is that HA doesn’t seem to retrieve stored data on Wave, so the app shows no gaps in history, while HA shows gaps. But overall I am pleased.