SparkFun Forums 

Where electronics enthusiasts find answers.

Have questions about a SparkFun product or board? This is the place to be.
By dgirman
#199442
Reference product: CO₂ Humidity and Temperature Sensor - SCD30

I purchased 2 modules. I am using the SparkFun_SCD30_Arduino_Library and ATMega2560. Modules are connected to different proc boards with basic example code executing. My first module reports a CO2 value 500 to 725. My second module reports a CO@ value 1900 to 2900.

Can you offer some ideas how to calibrate or verify interoperability?

I used both default and set pressure and altitude values, moved modules to different locations, restarted, used +5 and 3.3 volt power levels, used different MCU (Arduino, LPC, Micro...), with sames variances between units.

Temperature and Humidity read values are same between modules, and compare to values read from my connected Spark Fun_MS5637 Sensor.

Any help will be appreciated. :)
Thank you, Don Girman
By jremington
#199446
Did you follow the burn-in instructions on the sensor product page? If so, please describe what happened during the burn-in period. Best to log the output to a file over time.
Note: The SCD30 has an automatic self-calibration routine. Sensirion recommends 7 days of continuous readings with at least 1 hour a day of ‘fresh air’ for self-calibration to complete.
Your best reference is the device data sheet. Search the web or ask SparkFun to post a finalized copy, as the preliminary version they have posted is nearly useless.

Sensors like this must usually be checked and calibrated against one or more a standard gas mixtures before they can be trusted (if at all).
By dgirman
#199449
Thank you. I will repeat a 7 day burn-in period, this time recording the values. Is there a command to reset the SCD30 calibration calculation ? I went though the library code. I did see a class function discussing continuous measurement and saved in non-volatile memory. My sensor values were in 500-800 range. After a few days off, then on, readings started within range, then after continuous operation, they jump to 1900+. I need two working modules. I order a third to replace the one. I'm using these to add additional air sensors, with the MS5637 pressure sensor, in a green house which has ventilation and humidity controllers.

//Begins continuous measurements
//Continuous measurement status is saved in non-volatile memory. When the sensor
//is powered down while continuous measurement mode is active SCD30 will measure
//continuously after repowering without sending the measurement command and
//Returns true if successful
boolean SCD30::beginMeasuring(uint16_t pressureOffset)