The Sensirion SCD41 CO2 sensor (and the SCD40)

Last modified October 11, 2021

Do you want a small CO2 sensor, low consumption, versatile and of quality?

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

In this article you will see an analysis, along with my first impressions, of the Sensirion SCD41 and SCD40 sensors.

Sensirion is a swedish manufacturer with a long experience in the manufacture of quality CO2 sensors.

Your sensor SCD30, a dual channel NDIR sensor, has been a benchmark in recent years. A clear favorite when the pursuit was a quality sensor at an acceptable price.

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

What makes the Sensirion SCD40 and SCD41 sensors special?

The truth is that there is nothing else to look at it. What makes these sensors special enters through the eyes.

The first thing that stands out about this sensor is its tiny size. Only 10.1 x 10.1 x 6.5 mm, amazing.

But this sensor is much more than a pretty face on a slim body… Offers some characteristics, on paper, that nothing has to envy sensors of a much larger size (and consumption), with hardly any sacrifices.

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

What is the difference between the Sensirion SCD40 and the SCD41?

These two sensors they are practically the same, they are two twins, but they are not univitelline twins, they are bivitelline twins.

As in siblings, both come from two or more eggs that are fertilized by different sperm. The univitelline twins have the same hereditary characteristics and their appearance is almost the same. Bivitelline twins can be of different sexes and externally they do not have to look alike.

Externally both sensors look the same, but inside it's about two different beasts.

That said, the biggest differences are found in its measuring range and its 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 in addition to being able to measure a wider range, between 400 and 5000 ppm, has a minimum typical consumption of only 0.45mA at 3.3V and 0.36mA at 5V, which allows us to create CO2 meters with great autonomy.

To achieve this very low consumption, the SCD41 has a "single measure" operating mode, called "Single shot mode" in which the sensor is used on request to take a single measurement (the previous consumption corresponds to one measurement every 5 minutes).

How did Sensirion come up with such a small sensor?

Sensirion's secret to achieving this small size has been to use a different technology than NDIR to which we are accustomed, although maintaining its high quality of measurement, it has created a sensor electroacoustic technology.

What is an electroacoustic CO2 sensor?

In the NDIR sensors that we usually use, the operation is based on the absorption that CO2 supposes over an infrared beam.

Maybe you are also interested in:  Using a ModeMCU as a voltmeter

In an NDIR sensor there is an infrared emitter and a sensor that detects this light. The more CO2 there is between the infrared emitter and the sensor that detects them, the less infrared the sensor detects.

Electroacoustic sensors are based on the effects that CO2 concentration produces in sound waves.

Electroacoustic measuring principle

A narrow band light is emitted in an almost completely closed measuring chamber, which matches the wavelengths that are absorbed by CO2 molecules.

CO2 molecules in the measurement chamber absorb a part of the radiated light, while other molecules do not contribute to absorption due to the spectrum of the emitted light.

The more CO2 molecules in the measuring chamber, the greater the energy absorbed.

The absorbed energy of the CO2 molecules mainly excites the molecular vibrations, which results in a increased translational energy of molecules and, due to the closed measuring chamber, a increased 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 sign of the Microphone thus serves to measure the number of CO2 molecules present in the chamber measurement and can be used to calculate CO2 concentration.

Sensirion calls for 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 surprise, especially if we compare it with ultra-low consumption sensors.

We are used, especially makers, to buy our sensors in China, on sites like AliExpress, and that makes it easier for prices to be much lower than in 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 at Mouser about € 36 and the SCD41 € 47 for a unit (you have good discounts for quantity). If we compare it with the price of the SCD30 in China, if we could buy the SCD41 in AliExpress (it is not yet available, I will notify you here when it is, if you see it before let me know), it would cost around € 25 or less.

In addition, for applications where we need a good autonomy, this sensor is considerably cheaper than other ultra-low consumption sensors, such as the Senseair Sunrise S11 (which costs about € 55 at Digikey) and the Cubic CM1106SL-NS (which does not even it can be bought easily but would, predictably, be priced similarly to the Senseair Sunrise S11).

The Sensirion SCD41 Development Kit

Not everything will be advantages in these sensors.

A disadvantage for makers is that this miniaturization entails a side effect and is that, to achieve that compact size, Sensirion has used a encapsulated QFN, which complicates things quite a bit because we will need a custom printed circuit board and make some welds quite difficult to perform for the average hobbyist.

Fortunately, if we don't want to solder it ourselves, we have a solution that comes to our rescue: The development kit.

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

Maybe you are also interested in:  Connect a BME280 sensor to ESP Easy

Of course, not everything will be advantages, if we decide to use the development board we will find:

  • A significantly higher price that the sensor loose
  • A size also bigger, by the board and the connector.

Sensirion SCD40 and SCD41 programming, documentation and libraries available

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

I leave you here a link to the Sensirion SCD4x technical documentation.

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

Luckily, Sensirion has prepared a official library that supports the main microcontrollers (Arduino, ESP8266, ESP32, STM32, and many others), which greatly facilitates its use.

The truth is that I only take a couple of hours adapt my ultra-low consumption CO2 meter for use 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, it's the bad thing about being a pioneer, when I put on, I did not find a single project that used this sensor, from which I could learn.

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

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

I haven't done enough testing yet to make any conclusions about the quality of your measurements, but I will update the article shortly with them so you can see how it compares to other sensors.

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

Sensirion SCDx Operating Modes

SCDx sensors have three operating modes that affect, above all, your consumption.

It is important to choose the right way based on use What are we going to do with the sensor?

Periodic measurement mode

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

We just have to send the order to the sensor "Start_periodic_measurement" to start working in periodic measurement mode and every 5 seconds we can ask you for a new measurement, without the need to do anything else on our part.

In this mode, the average consumption of the sensor powered at 3.3V is between 15 (typical) and 18mA (maximum), according to the datasheet, although there may be very short peaks in which the sensor can consume up to between 175mA (typical) and 205mA (maximum).

In my own tests and experiments, the average consumption has been 15.78mA, which is very good and is very close to that indicated by the manufacturer in the datasheet.

In the following graphic you can see some consumption measurements of my experiments, taken over a period of one minute. This is, they are real measurements, taken by me, not that the manufacturer says so.

Low consumption periodic measurement mode

This way, supported by both SCD40 and SCD41 sensor, is to be used in use cases where sensor consumption is important, this mode has a update period of approximately 30 seconds (The sensor gives us a new CO2 measurement every 30 seconds).

Maybe you are also interested in:  Gallery: User CO₂ Meters

We only have to activate this type of measurement by sending the sensor the command start_low_power_periodic_measurement and it will automatically perform 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 perform them) will have been wasted.

In the following graph with the consumption profile of the sensor during 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 check how the sensor has a very low consumption except in time, every 30 seconds, in which you take the measurement.

Below, you can see a zoom of that same measure with the detail of that period, which repeats every 30 seconds, in which the sensor takes the CO2 reading.

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

Single measurement mode (SCD41 only)

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

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

If we have a CO2 meter with battery, we only want it to update the CO2 present in the air every three minutes, we can have the sensor with a really low consumption for most of those three minutes and just tell him to measure once in those three minutes with a very important energy saving about the periodic measurement modes that we talked about earlier.

The energy savings can be as much as that, 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 programming tutorial for the SCD41, so I will not go into the details, I will just give you a few strokes:

  • When we ask the sensor for a measurement, this takes about 5 seconds in giving it to us.
  • If we only want to measure temperature and humidity, there is a command that only takes 50ms.
  • The manufacturer, Sensirion, indicates in the datasheet that after supplying power to the sensor (turning it on) the first two measures taken in this mode must be discarded.
  • To reduce noise in measurements, the manufacturer suggests that we can take several measurements in a row and take the average between 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 continues to work, as long as the sensor is not turned off between measurements.

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

3 thoughts on “El sensor de CO2 Sensirion SCD41 (y el SCD40)”

  1. Hello, the article is very interesting, like everyone else on the page.
    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, and this is impractical for the user.
    Is there any method that can optimize this process, other than the ABC ?.
    The prices between the MHZ and SCD4x are similar, do you recommend using the latter? Do you think it would solve the decalibration problem?
    Considering that the measurements are every 30 minutes and being powered by battery, do you have any other recommendations?
    From already thank you very much.

    • Hi Danilo.

      When you use 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), no need to calibrate it daily.

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

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

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

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

        For now I had only done tests with the MHZ19B because here in Argentina it was the only one that achieved it more easily.

        I will take your recommendation and do tests with the Sunrise, which also solves some power issues for me since the MHZ19 has no way of "skipping" the regulator and feeding with 3.3V as if I have done in other Windsen sensors such as the ZE07-CO .

        Thank you so much for everything!


Leave a Comment