The CO2 sensor SCD30 of the manufacturer Sensirion is one of the best options when deciding on a sensor for our CO2 meter. In some cases it can be the only recommended option.
It is not only an interesting sensor because of its accuracy of ±30 ppm ±3% of CO2 concentration measurementand their integrated SHT31 temperature and relative humidity sensors high precision, if not because has other characteristics that set it apart from most of the others.
- 1 What makes the Sensirion SCD30 sensor special?
- 2 Sensirion SCD30 Features
- 3 Where to buy the Sensirion SCD30 and how much does it cost?
- 4 Sensirion SCD30 programming, documentation and available libraries
- 5 The measuring interval of the SCD30 (sampling interval)
- 6 Altitude/atmospheric pressure compensation
- 7 Temperature sensor compensation
- 8 Calibration of the Sensirion SCD30 CO2 Sensor
- 9 Sensirion SCD30 sensor handling and installation
- 10 My experience with the Sensirion SCD30
- 11 SCD30 Conclusions
In this article I bring you an analysis, together with results and impressions from my own testsof the dual channel NDIR CO2 sensor Sensirion SCD30. I hope you find it useful and interesting.
Sensirion is a Swedish manufacturer with a long experience in the manufacture of quality CO2 sensors and this sensor has been a benchmark for the last few years. A clear favourite when you are looking for a high quality CO2 sensor at an affordable price.
What makes the Sensirion SCD30 sensor special?
I have been recommending several quality CO2 sensors on the eMariete blog for some time now, but the SCD30 has a feature that makes it different from the othersis a sensor of "dual channel".
Below I will tell you about the advantages of a dual-channel NDIR sensor, when to use it and even under what conditions it is virtually mandatory but I'll start by giving you an overview of how these sensors work.
How does an NDIR CO2 sensor work?
In the NDIR sensors that we usually use (single channel sensors), the operation is based on the absorption that CO2 molecules account for on an infrared beam.
In an NDIR sensor there is an infrared emitter and a sensor that detects infrared. The more CO2 there is between the infrared emitter and the sensor that detects it, the less infrared the sensor detects..
To achieve this, a narrow-band light (or a broad-band light accompanied by a filter) is emitted into an almost completely enclosed measuring chamber which coincides with the wavelengths that are absorbed by the CO2 molecules..
CO2 molecules in the measuring chamber absorb a part of the radiated lightwhile other molecules do not contribute to absorption due to their wavelength.
How many more CO2 molecules in the measuring cell, the more energy absorbed.
And how does a dual-channel NDIR CO2 sensor work?
A Dual Channel NDIR sensor is very similar. The main difference is that there are two air chambers and two infrared sensors.
The first camera, let's call it camera 1, is exactly the same as the previous, traditional, single-camera sensor, and is where the CO2 concentration in the air surrounding the sensor is measured.
The difference is in the second camera, or camera 2: The second chamber is filled with a stable gas since its manufacture.a gas that does not change and whose infrared absorption properties are known. By analysing the subtle differences in the measurement results of that gas, in that chamber 2, the sensor firmware can calculate how much the measurements have deviated from what they should be and you can apply a correction to the results measured in chamber 1..
This means that, even if the lamp ages or the filter loses its "spectrographic centre by the passage of time, humidity, or other variables, the sensor firmware will be able to correct it in real time.
This configuration of two cameras and two infrared sensors is used by the Sensirion SCD30. Different manufacturers use different technologies for the construction of their dual channel NDIR sensors.
So what are the advantages of a dual-channel NDIR CO2 sensor?
The great advantage of this technology is that it allows us to use an NDIR sensor in situations where the automatic calibration of a single-channel sensor would failthat is, in situations where the air does not periodically fall below 400 ppm.
Below, when I talk about calibration, you will see that in order for the automatic calibration to work properly, you must essential the sensor is exposed to air with a concentration of about 400 ppm (the concentration of clean outdoor air) periodically. The technology dual channel frees us from this requirement.
Is this an advantage for everyone? No. But it certainly is (and very much so) when we need to install a meter in a place where the CO2 concentration in the air never drops to outdoor levels (approx. 400 ppm).
Can't I use a single channel sensor in such cases? Yes, you can. Yes you can, but it will gradually become out of calibration and you will end up seeing a reading, in a few months, that is much lower than the actual reading.
To sum up: Are you going to use the CO2 meter in a greenhouse? Dual channel is almost essential. in a hospital? Dual channel is almost essential. in a 24-hour shop? Dual channel is almost essential.... you get it... in the section on calibrationMore on this below...
Sensirion SCD30 Features
However, if you are looking for the technical characteristics of the sensor, it is best to look at the manufacturer's specifications.I will give you a preview of some of them here, which I think may be of most interest to you.
|CO sensor specifications2
|Measuring range CO2
|0 - 40,000 ppm
|± (30 ppm + 3% MV)
(25 °C, 400 - 10'000 ppm)
|2.5 ppm / °C (0-50 °C)
|Response time (t63)
|Humidity sensor specifications
|Relative humidity measuring range
|0 - 100 % HR
|±3% HR (0-100% HR)
|Response time (t63)
|Temperature sensor specifications
|Temperature measuring range
|-40 °C - 70 °C
|Typical accuracy (°C)
|± (0,4 °C + 0,023 x (T [°C] - 25 °C))
|Response time (t63)
|3.3 - 5.5 V
|Average current measurement rate @ 2s
If you want to know more, you can download here the SCD30 datasheet.
Where to buy the Sensirion SCD30 and how much does it cost?
My recommendation is to buy the SCD from AliExpress.especially if you are a hobbyist and you are going to build your CO2 meter as a hobby.
The SCD30 sensor in an official distributor such as Mouser, costs approximately 55€. This same sensor, as you can see in this link: Sensirion SCD30 on AliExpress (the same link where I bought it and it took me only 7 days to arrive.), it costs about €35 including VAT.
Quite a few eMariete users have bought it from the AliExpress link I just posted and all have received it in due time and form.
As with everything else, and as it is an item that is not cheap, I recommend that you take care in where you buy it and if possible someone should give you direct references that he bought it there and he has done well.
Buying on AliExpress is usually safe, but there are cases in which they can make you dizzy, keep you waiting, send you what you don't want, etc.
Don't rely too much on the opinions on these portals either.. I guess you know what has happened to Amazon reviews and, for me, reviews are no longer reliable (even on reputable sites, although it may not be their fault, as seems to have been the case with Amazon).
Sensirion SCD30 programming, documentation and available libraries
A very good thing about this manufacturer, especially when compared to other CO2 sensor manufacturers, is the large amount of documentation they provide, as well as libraries and programming examples for multiple platforms.
The Sensirion SCD30 sensor communicates with the outside world. via an I2C BUS or UART.
There are several libraries, which support all major microcontrollers (Arduino, ESP8266, ESP32, STM32, and many others) that make it very easy to use.
I am talking about the main libraries, in some cases with first-hand experience, as I have used them in projects like this one:
The bookshop Seed SCD30 by SeedStudio:
I don't like it and I don't recommend it. It is very limited. It doesn't even allow a forced calibration. I have used it in the project "CO2 meter on your mobile phone with ESP32 and Sensirion SCD30 sensor [BASIC VERSION]". because it is the one Sensirion had used to create this project, and I have remained faithful to it.
The bookshop SparkFun SCD30 Arduino Library:
I like this library much better. I have used it, among others, in the project "CO2 meter on your mobile phone with ESP32 and Sensirion SCD30 sensor [ADVANCED VERSION]". and it worked very well. Easy to use, well written, well documented and I didn't miss any commands.
The bookshop Adafruit SCD30:
I have not used this library but it looks good and seems well written, documented and easy to use.
The bookshop CanAirIO Sensorlib:
This library has the advantage of supporting multiple sensors in a single library and has some very interesting advanced options. I haven't used it so far because I haven't had the need but I will.
Sensirion SCD30 Commands
This sensor has the following commands available:
- Activation of the continuous measurement with optional ambient pressure compensation
- Stop continuous measurement
- Setting the measuring interval
- Obtain data readiness status (data ready)
- Measurement reading
- Activate and deactivate the continuous calculation of the reference value for automatic self-calibration (ASC).
- Setting the external reference value for forced recalibration (FRC)
- Adjust temperature compensation for the built-in RH/T sensor
- Altitude compensation
- Read firmware version
- Soft reset
Here is a link to the document with the SCD30 communication protocol in case you want to know more.
Continuous measurement mode
Continuous measurement mode (the only mode supported by this sensor) assumes that the sensor is operating. permanently y provide us with an updated CO2 concentration measurement every 2 seconds. (optionally also temperature and humidity in the same reading).
All we have to do is send the sensor the command "activates continuous measurement". to start working and every 2 seconds we will be able to ask for a new measureWe do not need to do anything else on our part.
We can change the measuring interval of the SCD30 between 2 and 1800 seconds.This will reduce the consumption of the sensor at the cost of a slower response time.
The measuring interval of the SCD30 (sampling interval)
The SCD30, unlike most "normal" CO2 sensors, allows you to change the interval at which it takes measurements.
By default (factory default) the SCD30 performs a CO2 measurement every 2 seconds but it is possible to change this value. between 1 and 1800 seconds to adapt it to the needs of each use case.
The most interesting thing about shortening the measuring range of the SCD30 is that it allows us to reduce the SCD30's consumption by up to one thirdwhich can be crucial for their use with batteries.
Of course, to reduce the measurement range and therefore the power consumption. it is not freeis done at the expense of the increase sensor response time.
Another side effect of shortening the measuring range is that it reduces the accuracy of the sensor and it is necessary to recalibrate it with the new measuring range.
The low power mode of the CO2 sensor SCD30
The SCD30 is not an ultra-low power sensor like the Senseair Sunrise S11 or the Cubic CM1106SL-N.
To put you in perspective: With the default measurement interval of 2 seconds, the power consumption is about 19mA and the response time is about 10 seconds, [in preparation, to be continued...].
Altitude/atmospheric pressure compensation
The differences in height above sea level (in other words, the differences in atmospheric pressure) have an effect on CO2 concentration measurements.
The higher the pressure, the more the air is compressed, the more the molecules are compressed, the more everything is compressed... this means that more or less CO2 molecules can fit into the measuring chamber depending on the atmospheric pressure..
To compensate for these variations, the SCD30 has a couple of aids:
With the first of these we can simply configure the altitude in metres above sea level The meter will internally make the necessary adjustments to compensate for this.
The second allows us to provide the sensor with the current atmospheric pressure continuously (we can do it whenever we want, every minute, every hour, when there is a change...), in this way the SCD30 will make the compensation automatically.
Logically, these two possibilities are exclusionary and, if we use one, the other is cancelled.
Temperature sensor compensation
Although the temperature sensor of the SCD30 is highly accurate ( ±(0.4 °C + 0.023 x (T [°C] - 25 °C)), which is a very good accuracy) the heat generated by the electronic components of the sensor itself, and the attached circuitry that makes up the meter, can cause differences between temperature read by the sensor and the temperature of the surrounding air.
To solve this problem, the SCD30 features a temperature compensation so we can tell you the difference, or offsetThe temperature of the device will be adjusted to the actual temperature and it will compensate itself from that point onwards.
The idea is that, if we know that the thermal distribution of our particular setup means that the sensor reads 1.8ºC above, we communicate this to the sensor so that it can do its job of compensation.
Just for clarification, this temperature compensation does not have no effect on CO2 measurement.
In addition to this, I must say, for the sake of completeness, that the sensor also performs internal temperature compensation to calculate the CO2 concentration.However, it has nothing to do with this temperature sensor compensation that I have just told you about.
Calibration of the Sensirion SCD30 CO2 Sensor
NDIR sensors such as the SCD30 are very high precision optical instruments and such things as the ageing of any of its components or simply the mechanical stress to which it may be subjected. optical cavity during storage, transport and operation may affect their accuracy.
For this reason, it is important to understand the need for calibration of this type of sensors.
This sensor has two calibration modes: ASC (automatic self-calibration, or automatic auto-calibration) y FRC (forced re-calibration, or forced/manual recalibration) in order to maintain the accuracy of their measurements.
The Sensirion SCD30 CO2 sensor is equipped with an automatic calibration system, called by Sensirion Automatic Self-Calibration (ASC), and it works quite well.
It works as follows:
Since the natural CO2 concentration in the atmosphere is about 400 ppm (actually just under 420 ppm on average in 2021), when the ASC is enabled, the sensor assumes that, over a period of approximately 7 days, the minimum CO2 concentration it encounters will be equivalent to 400 ppm..
This means that, in a well-ventilated room, which at some point during the seven-day period has clean air, the lowest measurement will be around 400 ppm and the sensor will assume that concentration (whatever it is) as the zero point, or 400 ppm.
In other words, the sensor will assume that the lowest measurement in each 7-day period will be 400 ppm.
Yes, I have explained the same thing in three different ways, but it is necessary to understand it well because it assumes that:
You cannot use the automatic calibration if you are going to use the sensor in a greenhouseThe air in the greenhouse, for example, will never fall below 400 ppm, even in a place where there is always a human presence, such as an airport, a hospital and so many other places that are open all the time.
For the automatic calibration procedure of the SCD30 to work properly, it must be complied with:
- The SCD30 must be regularly exposed to fresh air with a concentration of approximately 400 ppm CO2.
- The SCD30 must run continuously (without being switched off) for the automatic calibration cycle to complete.
- Although we usually talk about the sensor needing 7 days to calibrate, to be precise, what it needs is 7 good measurements separated by at least 18 hours (that is, approximately 5 days).
This is a very convenient way to keep the sensor calibrated, using clean air as a reference value and automating the process.
The Sensirion SCD30 CO2 sensor allows manual calibration so that you don't have to wait seven days for it to calibrate automatically, although not all projects have this possibility implemented.
I have prepared a special firmware that is easy to use and install on an ESP32 in case you want to calibrate the sensor manually (you can find it on the tutorial Mobile CO2 meter with ESP32 and Sensirion SCD30 sensor).
This firmware, which only serves to calibrate the SCD30 sensor to 415 ppm, does the following:
- When you start it up, it will wait five minutes for the sensor to stabilise, during which time the LED on the board will be flashing every second.
- After five minutes it will calibrate the sensor and, once calibrated, will leave the LED on permanently.
All you have to do to calibrate the sensor is: put the meter in clean air (outside a window, for example), turn it on, wait five minutes for the LED to stay on and that's it. The sensor will be calibrated to 415 ppm.
If you want to know more about the calibration of the SCD30, the following Sensirion document will be very interesting for you: Field calibration for SCD30.
A word of advice: The SCD30 is very sensitive to air currents. (all NDIR sensors, to a greater or lesser extent) so it is important that when taking it outside to calibrate it don't give it too much air. Even a breeze, not too strong, can cause unstable concentration readings and affect calibration.
Sensirion SCD30 sensor handling and installation
The SCD30 is a delicate precision instrument and, as such, there are some things you need to know before handling and installing it.
Some things are very important, others less so. Here's what I think is really important (for the rest, here's a guide, written by Sensirion, below).
[in preparation, in the meantime consult the guide Handling and Assembly Guide for SCD30if you want to know more]
As I mentioned before, Sensirion takes great care with its documentation and has even published a guide with useful information, tips and recommendations for the correct handling and physical installation of the SCD30 sensor. You can find it here: Handling and Assembly Guide for SCD30
My experience with the Sensirion SCD30
After a few months of working with the Sensirion SCD30, I have to say that is a sensor that I like very much and would recommend without hesitation..
The truth is that the sensor has been tremendously stable in its measurementsThis is a very slight departure from my reference sensor, the Senseair S8 LP that I have been using for months.
I have not noticed that it is too sensitive to draughts. (in normal air currents, inside a room), unlike other sensors I have tested. The sensor is sensitive to air currents outside, if the sensor is naked (without a box).
Sensirion claims that the SCD30 is factory calibrated. (although he recommends calibration upon receipt or, ideally, after it is mounted in its final location to correct any mechanical stress it may have suffered). my sensor was not properly calibrated and measured well above normal.
Although I have done some quick tests with the air pressure compensation I have not seen it reflected in the results. I will have to do more tests.
I would have liked to put some graphs comparing their measurements with those of other sensors, but unfortunately I have lost that data. No worries, I will re-capture them and soon you will be able to find comparative graphs here. of measurements from different sensors, commented, as always.
For the moment I leave you with this one, from a period of a few hours, in which you can see the readings of the SCD30 together with a Senseair S8 LP and a Senseair Sunrise S11.
I haven't done any extensive testing of the sensor's power consumption either, just some quick tests and it seems pretty close to what Sensirion indicates. I promise to do more tests and post the results here..
In short: It provides stable measureshas a relatively low consumption (which is also adjustable, which is not possible with all sensors) and its automatic calibration works very well in the long term, saving us from having to calibrate the sensor manually.
Undoubtedly, the fact that Being dual-channel improves long-term stability. and ensures that the calibration is maintained (especially interesting in cases such as greenhouses, using manual calibration).
On the negative side, I would point out that it is a somewhat large sensor (albeit quite thin), which can be a constraint. physics in some assemblies, and its priceThe price of the Senseair S8 is somewhat higher than others (approximately €10 more than the Senseair S8, for example).
For use in environments where automatic calibration cannot be used and the CO2 meter has to be installed permanently or for long periods of time, the SCD30 would be my first choice, as the dual channel sensor gives extra stability to the manual calibration.
If you want to ensure that you maintain correct calibration over long periods of time, this would also be one of the first options to consider.
If what you want is a normal, high quality sensor for a normal meter in a normal environment, both this and the Senseair S8 would be highly recommended, bearing in mind that the SCD30 is more expensive than the Senseair S8 but includes quality temperature and relative humidity sensors, which, should you need them, you would save, so the price difference is not so great.
I don't want to leave out something I didn't talk about in the article, and that is that the SCD30 works within a wide voltage rangeThe voltage of 3.3 to 5.5V, which in some cases can be decisive, especially if we want the meter to work with batteries (the vast majority of NDIR sensors are battery-powered), is between 3.3 and 5.5V. normal only operate at 5V).
Finally, the physical format, which in most cases will not be decisive. The SCD30 is larger than the usual NDIR sensors that we makers usually use to make our projects, but it is also quite a lot of finer.
If you want more information about this sensor, the best thing to do is to check out the website of Sensirion. It is a manufacturer that takes great care of its documentation and you will probably find whatever you are looking for.
By the way, if you want to see more CO2 sensors from Sensirion, you have, in this same blog, this article about the tiny sensors (little more than half a cubic centimetre) SCD40 and SCD41 that you may find interesting: