SCD40 CO2 Sensor Appears to Read High CO2

Breakout boards, sensors, other Adafruit kits, etc.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
jsegre
 
Posts: 4
Joined: Wed Jan 19, 2022 2:23 am

SCD40 CO2 Sensor Appears to Read High CO2

Post by jsegre »

I have just wired up my SCD40 and found that it reads CO2ppm >900, even outside in ambient air in Oakland CA, which I would assume would be much closer to 400ppm. It also reads over 1500ppm inside my house, which seems high as well. The product spec sheet says that it is already calibrated and linearized, so I am not sure how to make my readings more accurate. Thanks for your help.

User avatar
jsegre
 
Posts: 4
Joined: Wed Jan 19, 2022 2:23 am

Re: SCD40 CO2 Sensor Appears to Read High CO2

Post by jsegre »

Additionally, I plan to use the device in a humid (greenhouse) environment and wonder if it needs to be protected from >90% humidity in some way?

User avatar
ullix
 
Posts: 11
Joined: Thu Jan 13, 2022 7:00 am

Re: SCD40 CO2 Sensor Appears to Read High CO2

Post by ullix »

At least on the SCD30 and SCD41 you can "Force" a calibration. I had to for both, they were off by some 300 ppm. I used a MiniMon device for reference, but outside air should do as well.

As Sensirion is referring to SCD4x, I am pretty sure that this applies to this sensor as well. datasheet

See my review here: Review of USB-To-I2C Dongles as used by GeigerLog

User avatar
jsegre
 
Posts: 4
Joined: Wed Jan 19, 2022 2:23 am

Re: SCD40 CO2 Sensor Appears to Read High CO2

Post by jsegre »

Thank you! With your tip, I was able to find recalibration code for Arduino which seems to have worked, here:
https://github.com/Sensirion/arduino-sn ... xample.ino


Any thoughts on the other question of how or whether the sensor might need to be protected in a humid environment? I am concerned that the humidity may destroy it.

User avatar
ullix
 
Posts: 11
Joined: Thu Jan 13, 2022 7:00 am

Re: SCD40 CO2 Sensor Appears to Read High CO2

Post by ullix »

The usual limit is "non condensing". This is a bit complex with dew point and temperature. Make sure any condense water can run off, and make sure to get no droplets on the sensor,

User avatar
jsegre
 
Posts: 4
Joined: Wed Jan 19, 2022 2:23 am

Re: SCD40 CO2 Sensor Appears to Read High CO2

Post by jsegre »

The SCD40 CO2 readings reallyseem to jump around a lot. Left to itself outdoors, I get readings from 250ppm to 650ppm. What am I doing wrong?

User avatar
ullix
 
Posts: 11
Joined: Thu Jan 13, 2022 7:00 am

Re: SCD40 CO2 Sensor Appears to Read High CO2

Post by ullix »

That is a lot! Begs the question what happens when you measure indoors? Effect of moisture?

The SCD40 results should be pretty close to my SCD41 results. I have published a review Measuring CO2 with SCD30, SCD41, and MiniMon which should give some insight into what kind of fluctuation one should expect. The changes that I do see (Fig 7) can all be explained in changes of the ventilation status.

User avatar
bprobbins
 
Posts: 15
Joined: Mon Mar 18, 2013 1:15 am

Re: SCD40 CO2 Sensor Appears to Read High CO2

Post by bprobbins »

FWIW,
I was getting reports of 1500ppm regularly in (AFAIK) outside fresh air with a scd30 until I fiddled with the scd.measurement_interval (adafruit python code) and raised it from 2 to 8 secs and immediately started getting more expected reports hovering around 400 without wild fluctuations, until I breathed on it -then it went up to 534 and then dropped back to ~400.
So measurement interval seems to have a dramatic influence on my scd30, at least. Maybe the scd40-41 is similar? Perhaps the underlying code needs a tweak?

User avatar
ullix
 
Posts: 11
Joined: Thu Jan 13, 2022 7:00 am

Re: SCD40 CO2 Sensor Appears to Read High CO2

Post by ullix »

bprobbins observation surely is worth reviewing; it would be a real programming oversight.

The SCD30 has a default cycle time of 2 sec, while the SCD4X has one of 5 sec. However, all devices have the command "get_data_ready_status" to check for, well, data ready.

This is what the SCD4X data-sheet says:
SCD4x
...
3.5.2 read_measurement
Description: read sensor output. The measurement data can only be read out once per signal update interval as the buffer is emptied upon read-out. If no data is available in the buffer, the sensor returns a NACK. To avoid a NACK response, the get_data_ready_status can be issued to check data status (see chapter 3.8.2 for further details).
Either there are data in the buffer, and you can read them, or there aren't and any data being returned nevertheless are purely "made up".

User avatar
ullix
 
Posts: 11
Joined: Thu Jan 13, 2022 7:00 am

Re: SCD40 CO2 Sensor Appears to Read High CO2

Post by ullix »

I just modified my code to make it read even when the data are not ready. I get this return:

Code: Select all

[255, 255, 255, 255, 255, 255, 255, 255, 255]
Every 3rd byte should be the crc8 of the previous two, but crc8(255, 255) = 172, and not 255. So the whole answer is qualified by the SCD41 itself as wrong.

But even if this were ignored, and 0xFFFF were taken as CO2 ppm, it would clearly not fall into the category of 400 ... 1500 ppm. Unless there is some further massaging of the data somewhere?

Locked
Please be positive and constructive with your questions and comments.

Return to “Other Products from Adafruit”