Sensirion SCD41 and SCD40 CO2 Sensors

Do you want a small CO2 sensor, from low consumption, versatile and high qualityThe Sensirion SCD40 and SCD41 are for you!

It is quite likely that the Sensirion SCD41 CO2 sensor (and its twin, the SCD40) is the sensor you are looking for.

In this article I bring you an analysis, together with my first impressionsSensirion SCD41 and SCD40 sensors.

Sensirion is a Swedish manufacturer with a long experience in the production of quality CO2 sensors. Its sensor SCD30a dual channel NDIR sensorhas been a benchmark for the last few years. A clear favourite when it came to a quality sensor at an acceptable price.

Recently, during the second quarter of 2021Sensirion has surprised us by adding new members to the CO2 sensor familythe SCD40 and SCD41.

What makes the Sensirion SCD40 and SCD41 sensors special?

The truth is that just look at it. What makes these sensors special it enters through the eyes.

The first thing that strikes you about this sensor is its tiny size. Only 10.1 x 10.1 x 6.5 mmunbelievable.

But this sensor is much more than a pretty face on a slim body... offers characteristics, on paper, that is in no way inferior to sensors of a much larger size (and power consumption).with little or no sacrifice.

The Sensirion SCD40 and SCD41 CO2 sensors are high-performance sensors.

What is the difference between the Sensirion SCD40 and SCD41?

These two sensors are virtually the sameare twin brothers.

Externally, the two sensors look the same, but internally they are two different beasts.

That said, the major differences are to be found in its measuring range and consumption.

The Sensirion sensor SCD40 can measure CO2 concentrations from 400 to 2000 ppm and has a typical consumption of 15mA at 3.3V or 11mA at 5V.

The SCD41 and can also measure a wider range, from 400 to 5000 ppm, has a Typical minimum power consumption of only 0.45mA at 3.3V and 0.36mA at 5V.This allows us to create CO2 meters with great autonomy.

To achieve this low power consumption, the SCD41 has a "single measurement" mode of operation, called "single measurement". "single shot mode where the sensor is used on demand to take a single measurement (the above consumption is that corresponding to a measurement every 5 minutes).

How did Sensirion achieve such a small sensor?

Sensirion's secret to achieving this small size has been to use a technology other than NDIR to which we are accustomed, while maintaining its high quality of measurement, has created a sensor for the electro-acoustic technology.

What is an electro-acoustic CO2 sensor?

In the NDIR sensors that we usually use, the operation is based on the absorption that CO2 is 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..

Electro-acoustic sensors are based on the effects that the CO2 concentration produces in sound waves.

Electro-acoustic measuring principle

In an almost completely closed measuring chamber, a narrow-band light is emitted that 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 the spectrum of the emitted light.

How many more CO2 molecules in the measuring cell, the more energy absorbed.

The energy absorbed from the CO2 molecules excites mainly the molecular vibrationswhich gives rise to a increase in the translational energy of molecules and, due to the enclosed measuring chamber, to a increase of pressure in the chamber.

A modulation of the light source causes a periodic pressure change in the measuring cell, which can be measured with a microphone. The signal of the microphone thus serves to measure the number of CO2 molecules present in the chamber. measurement and can be used to calculate the CO2 concentration.

Sensirion calls its implementation of this technology PASens® Technology.

How much does a Sensirion SCD40 or SCD41 cost?

The truth is that this has meant a real surpriseespecially when compared to ultra-low power sensors.

We are used, especially the makers, to buying our sensors in China, on sites such as AliExpress, and that makes it easier for the prices to be much lower than in the official marketing channels.

For example, 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 (same link where I bought it and it took me only 7 days to arrive), it costs about 35€.

Well, the SCD40 costs about 36€ at Mouser and the SCD41 47€ for one unit (you get good discounts for quantity). If we compare it with the price of the SCD30 in China, if we could buy the SCD41 on AliExpress (it's not available yet, I'll let you know here when it is, if you see it before let me know), it would cost around 25€ or less.

In addition, for applications where good battery life is needed, this sensor is significantly cheaper than other ultra-low-power sensors, such as the Senseair Sunrise S11 (which costs about 55€ at Digikey) and the Cubic CM1106SL-NS (which is not even readily available but is expected to be priced similarly to the Senseair Sunrise S11).

The Sensirion SCD41 development kit

These sensors are not all advantages.

One disadvantage for makers is that this miniaturisation has a side effect: to achieve such a compact size, Sensirion has used a QFN encapsulationwhich complicates things quite a bit because we will need a custom printed circuit board and make some welds that are quite difficult to perform for the average amateur.

Fortunately, if we do not want to weld it ourselves, we have a solution that comes to our rescue: The development kit..

The development kit is nothing more than the sensor SCD41 or SCD40, soldered to a small printed circuit board customised with connectors, terminals and cable to make it easier to tinker with the sensor.

Of course, it's not all advantages, if we decide to use the ".Evaluation Kit SEK-SCD41"We are going to meet with:

  • A significantly higher price that the loose sensor
  • Also larger in sizefor the board and the connector.

Sensirion SCD40 and SCD41 programming, documentation and available libraries

A very good thing about this manufacturer, especially when compared to other manufacturers of CO2 sensors, is the large amount of documentation it providesas well as libraries and programming examples for multiple platforms.

Here is a link to the Sensirion SCD4x technical documentation.

Sensirion SCD4x sensors communicate with the outside world (our microcontroller, for example). via an I2C BUS and the truth is that have quite a few commands we can use.

Fortunately, Sensirion has prepared a official library supporting all major microcontrollers (Arduino, ESP8266, ESP32, STM32, and many others), which makes it very easy to use.

The truth is that I only take a couple of hours adapt my ultra-low consumption CO2 meter to use it with the SCD41 and start doing the first tests.

These two hours included learning absolutely everything about the sensor and how to use it because, that's the bad thing about being a pioneer, when I set out, I could not find a single project using this sensor.I could learn from.

Here you can see the CO2, temperature and humidity meter I built for testing with the SCD41:

I hope that, thanks to this article, it will be easier for you.

I have not yet conducted enough tests to draw any conclusions about the quality of their measurements, but I will update the article shortly with them so that you can see how it compares to other sensors.

I leave you, simply, with this graphic that measurements taken with the Sensirion SCD41The Senseair S8, along with those of a Senseair S8 to give you an idea:

Operating modes of the Sensirion SCDx

SCDx sensors have three modes of operation which affect, above all, their consumption.

It is important to choose the correct way on the basis of the use we are going to make of the sensor.

Periodic measurement mode

In the periodic measurement mode, which is the mode of default operation sensor, which is the easiest to use and with greater precisionassumes that the sensor is working permanently y provide us with an updated measurement of CO2 concentration, temperature and humidity every 5 seconds.

All we have to do is send the sensor the command "start_periodic_measurement" to start operating in a periodic measurement mode and every 5 seconds we can ask for a new measureWe do not need to do anything else on our part.

In this mode, the average power consumption of the sensor powered at 3.3V is between 15 (typical) and 18mA (maximum), according to the datasheet.However, there may be very short peaks where the sensor consumes as much as 175mA (typical) to 205mA (maximum).

In my own tests and experiments, the average consumption has been 15.78mA.which is very good and very close to the manufacturer's datasheet.

In the following chart you can see some of them consumption measurements of my experimentstaken over a period of one minute. That is, are real measurestaken by me, not by the manufacturer.

Low-energy periodic measurement mode

This mode, supported by both sensor SCD40 and SCD41is to be used in use cases in which sensor consumption is importantThis mode has a update period of approximately 30 seconds (the sensor provides a new CO2 measurement every 30 seconds).

We only have to activate this type of measurement by sending the start_low_power_periodic_measurement command to the sensor and it will automatically take a measurement every 30 seconds.

Note that the sensor will take that measurement every 30 seconds regardless of whether we read it or not. In other words, if we want our CO2 meter to only show one measurement every 3 minutes, the sensor will take six measurements in those three minutes, so five of them (and the energy used to make them) will have been wasted.

In the following graph with the consumption profile of the sensor for one minute, you can see how the average consumption is 2.72mA. Five times less than in normal mode. This is even less than the 3.2mA indicated by the manufacturer in the datasheet.

You can also see how the sensor has a very low consumption except in time, every 30 secondsin which it takes the measure.

Below, you can see a zoom of the same measure with the detail of that period, that repeats every 30 secondsThe CO2 reading is taken by the sensor.

As you can see, to take this CO2 measurement, the sensor consumes an average of 51.26mA for 1.2 seconds.

Single measurement mode (Sensirion SCD41 only)

In single measurement mode we have full control over what CO2 measurements the sensor makes and when it makes them..

It is a mode with very low consumption in which we can tell the sensor to take a measurement at any time. In this way, no energy will be wasted in taking measures that will not be used.

If we have a battery operated CO2 meter, which we only want to update the CO2 in the air. every three minutesIf the sensor is not in use, we can have the sensor with a really low power consumption for most of those three minutes and only tell her to measure once in those three minutes with a significant energy savings on the periodic measurement modes discussed above.

The energy savings can be as much as if we take a CO2 reading every 5 minutes, the average consumption would be between 0.45mA (typical) and 0.5mA (maximum).according to the datasheet.

This article is not intended to be a tutorial on programming the SCD41, so I won't go into the details, just give you a few pointers:

  • When we ask the sensor to take a measurement, it will takes about 5 seconds to give it to us.
  • If we only want to measure temperature and humidityThere is a command that only takes 50ms.
  • The manufacturer, Sensirion, indicates in the datasheet that after supplying power to the sensor (switching it on) the first two measures taken in this way should be discarded.
  • To reduce the noise in the measurements, the manufacturer suggests that we can take several measurements in a row and average them out among them.
  • According to the datasheet, the sensor consumption between measurements is between 0.15mA. (typical) and 0.2mA (maximum).
  • In single measurement mode, automatic calibration still worksThe sensor shall not be switched off between measurements.

According to my own measurements, carried out during my experiments, the SCD41 sensor has a idle consumption of 171µA. and the average consumption for 60 seconds with a single measure in that period was 1.20mA.

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 SCD4x 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 SCD4x 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 SCD4x is sufficiently good (with an accuracy of +/-0.8°C between 15 and 35°C and +/-1.5°C between -10°C and 60°C) the heat generated by the electronic components of the sensor itself, and the attached circuitry forming the meter, can cause differences between temperature read by the sensor and the temperature of the surrounding air.

To solve this problem, the SCD4x 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.

This temperature setting also allows the sensor to compensate for humidity measurements. In the datasheet the manufacturer already warns us that it is important to set this value correctly in order to obtain the best temperature and humidity measurements.

Sensirion SCD4x CO2 Sensor Calibration

Sensors like this SCD4x are very high precision instruments and such things as ageing of any of its components or simply the mechanical stress it may be subjected to during storage, transport and operation can affect its accuracy.

For this reason, it is important to understand the need for calibration of these 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.

Automatic calibration

The Sensirion SCD4x CO2 sensor is equipped with an automatic calibration system, called by Sensirion Automatic Self-Calibration (ASC), and it works quite well.


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.

A word of caution

Yes, I have explained the same thing in three different ways, but it is necessary to understand it well because it implies 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.

Automatic calibration procedure for Sensirion SCD41 and SCD40 Sensors

For the automatic calibration procedure of the SCD4x to work properly, it must be complied with:

  1. The SCD4x must be regularly exposed to fresh air with a concentration of approximately 400 ppm CO2.
  2. The SCD4x must run continuously (without being switched off) for the automatic calibration cycle to complete.
  3. 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.

Manual calibration

The Sensirion SCD4x CO2 sensor allows manual calibration so you don't have to wait those seven days for it to calibrate automatically (not all CO2 meters take advantage of this feature).

All you have to do to calibrate the sensor is: put the meter in a place with clean air (outside a window, for example), turn it on, wait more than three minutes with the sensor running in the mode you want to calibrate it (periodic measurement, for example) in an environment with a constant heterogeneous concentration and execute the calibration command.

If you want to know more about the calibration of the SCD4x, you will find the following Sensirion document very interesting: SCD4x datasheet.

A word of advice: The SCD4x is very sensitive to draughts. (all photoacoustic sensors, to a greater or lesser extent) so it is important that when taking it outside to calibrate it do not get too much direct airflow. Even a breeze, not too strong, can cause unstable concentration readings and affect calibration.

Here are the manufacturer's recommendations for the correct aeration of the sensor:

The SCD4x can be calibrated at concentrations other than 400 ppm, which is very interesting for calibration, for example, using a reference meter.


In conclusionThe Sensirion SCD41 and SCD40 CO2 sensors are very interesting devices for measuring CO2 concentration, temperature and air humidity. These sensors are characterised by:

  • Your reduced size and its low consumptionthanks to its PASens® electro-acoustic technology.
  • Your high precision and its measurement qualityThe NDIR sensor is comparable to that of larger and more power-hungry NDIR sensors.
  • Your versatility and its ease of usewith different operating modes, pressure and temperature compensations, automatic and manual calibrations.
  • Your competitive priceespecially if you wait for it to become available on the Chinese market.

If you want a small, low-power, versatile, quality CO2 sensor, the Sensirion SCD41 (or its twin, the SCD40) may be the sensor you're looking for.

By the way, be sure to check out this post about another Sensirion sensor, the SCD30:

8 thoughts on “Sensores de CO2 Sensirion SCD41 y SCD40”

  1. Hi, very interesting article, like all the others on the site.
    I am currently working on CO2 measurement in greenhouses. I have been testing the MHZ19B sensor, but the problem with it is that I have to calibrate it daily, which is impractical for the user.
    Is there a method that can optimise this process, other than ABC?
    The prices between the MHZ and SCD4x are similar, do you recommend using the latter and do you think it would solve the decalibration problem?
    Considering that the measurements are every 30 minutes and being battery powered, do you have any other recommendations ?
    Thank you very much.

    • Hello Danilo.

      When using CO2 sensors in greenhouses, and other similar applications, you cannot use the ABC. Turn it off and do a manual outdoor calibration from time to time (say once a week or once a month, depending on your needs), it is not necessary to calibrate daily.

      Better than the MHZ19B, I would use the Senseair S8 (, which maintains its calibration for a longer period of time.

      Both the MHZ19B and the Senseair S8 have quite high power consumption so the SCD41 would probably be a better choice if you are going to use it on battery as it has a single measurement mode that would allow the sensor to only take a reading every 30 minutes with quite low power consumption.

      From a measurement quality point of view, calibration stability, etc. I still have this sensor "under observation", I have to do more tests. If you want a proven option, with very low power consumption (much less even than the SCD41) and very good performance, I recommend the Senseair Sunrise S11.

      • Of course, I had read that it was not recommended to use ABC, that's why I had the problem of decalibration.

        So far I had only tested the MHZ19B because here in Argentina it was the only one I could get more easily.

        I will take your recommendation and test with the Sunrise, which also solves some power supply issues for me as the MHZ19 has no way to "skip" the regulator and supply 3.3V as I have done with other Windsen sensors such as the ZE07-CO.

        Thank you very much for everything!

  2. Hi!

    Do you have any updates about the SCD41 performance since then? I'm very curious about how it compares to other NDIR sensors 🙂

  3. Bonjour Mariete,

    Votre description est très bien faite, comme d'habitude.
    Therefore, being an amateur of this kind of product, is it possible to have the code for the realisation?
    Pour l'instant j'ai trouvé le kit de développement SEK-SCD41-Sensor chez RS, il me reste à trouver l'afficheur pour réaliser l'ensemble.

    Merci pour tout


  4. Hello! I recently found this sensor on Alliexpress and still haven't found any usage examples except this page. Thank you for great info.
    I'm going to build battery powered Co2 meter, so power consumption is vital. Also I would tolerate 5-10 minutes mesurement interval for the sake of power saving.
    I see that the single measurement mode is only present in SCD41. But it is more expensive, than SCD40. After reading datasheet I came upon idea - what if I simulate single measure mode on SCD40 by 1. starting low power periodic measurement mode (automatic measurement once per 30 seconds) 2. waiting 30-40 seconds for result 3. reading result 4. stopping measurement ? The trouble is, there seems to be no command to stop low power mode measuremet. How do you think, will the "stop_periodic_measurement" also stop low power periodic measurement?
    Could you also tell what is the idle current between measurements?

  5. Very interesting article, it has solved a lot of my doubts.

    I wanted to use it in an IoT application, I have seen in the datasheet that it has a wide power range, from 2.5 to 5V. In an application with batteries where it can vary from 3.6V (full load) to 3V, do you know if it can affect it in any way?

    Best regards and thank you very much indeed!

  6. Very good article, congratulations.
    I have a question that I haven't found an answer to on the net.
    Is it possible to install several SDC40 sensors to be read by a single Arduino board?
    If so, what would the code be?
    Thank you very much.


Leave a comment