Table of Contents

lamaPLC project: Sension SCD CO² measurement module

SCD 30 Modul

The main distinction between these Sensirion sensors lies in their measurement technology, which affects their size and power use. The SCD30 employs conventional NDIR (Non-Dispersive Infrared) technology, whereas the SCD40/41 series utilises a more recent, compact Photoacoustic principle.

FeatureSCD30SCD40SCD41
SCD 30 Modul-SCD 41 Modul
TechnologyNDIR (Dual-Channel)PhotoacousticPhotoacoustic
Size35 x 23 x 7 mm10.1 x 10.1 x 6.5 mm10.1 x 10.1 x 6.5 mm
CO² Range0 – 40,000 ppm400 – 2,000 ppm400 – 5,000 ppm
Accuracy±(30 ppm + 3% MV)±(50 ppm + 5% MV)±(40 ppm + 5% MV)
Voltage3.3V – 5.5V2.4V – 5.5V2.4V – 5.5V
Power (avg)~19 mA~15 mA~0.5 mA (Low Power Mode)
InterfaceI²C (Address 0x61), UART, PWMI²CI²C
Operating Temperature0°C to 50°C

Key Differences

If you'd like to support the development of the site with the price of a coffee — or a few — please do so here.

Here's a handy tip: you can quickly save this page as a PDF by clicking “export to PDF” in the menu on the right side of the screen.

2026/02/14 23:38

SCD30

The SCD30 is a high-precision, 3-in-1 sensor module from Sensirion that measures Carbon Dioxide (CO²), Temperature, and Relative Humidity. It is considered a “true” CO² sensor because it uses Non-Dispersive Infrared (NDIR) technology to directly measure CO² molecules, rather than approximating levels from other gases.

Key Features & Technology

SCD30 Pinout

PinNameDescriptionLogic Level
1VDDSupply Voltage (3.3V – 5.5V)
2GNDGround
3TX / SCLModbus Transmit / I²C Clock3.0V (internal pull-up)
4RX / SDAModbus Receive / I²C Data3.0V (internal pull-up)
5RDYData Ready (High when new data is available)3.0V
6PWMPulse Width Modulation output3.0V
7SELInterface Select (Floating/GND = I²C; High = Modbus)< 4.0V

Key Wiring Notes

SCD30 Arduino example code

To use the SCD30 with an Arduino, the SparkFun SCD30 Arduino Library and the Adafruit SCD30 Library are the most common choices.

#include <Wire.h>
#include "SparkFun_SCD30_Arduino_Library.h" //
 
SCD30 airSensor;
 
void setup() {
  Wire.begin();
  Serial.begin(9600);
 
  if (airSensor.begin() == false) {
    Serial.println("Sensor not detected. Check wiring!");
    while (1);
  }
  Serial.println("SCD30 detected!");
}
 
void loop() {
  if (airSensor.dataAvailable()) {
    Serial.print("CO2(ppm): ");
    Serial.print(airSensor.getCO2());
    Serial.print(" Temp(C): ");
    Serial.print(airSensor.getTemperature(), 1);
    Serial.print(" Humidity(%): ");
    Serial.println(airSensor.getHumidity(), 1);
  }
  delay(2000); // Sensor updates every 2 seconds by default
}

SCD41

SCD41 Modul The SCD41, developed by Sensirion, is a compact, highly precise sensor for measuring CO₂, temperature, and humidity. As the second generation of their optical CO² sensors, it employs photoacoustic NDIR (Non-Dispersive Infrared) technology. This approach enables the sensor to be much smaller than conventional CO₂ sensors while maintaining high accuracy, making it perfect for indoor air quality (IAQ) monitoring.

Key Features

Technical Specifications

ParameterRange / ValueAccuracy (Typical)
CO² Concentration400 – 5,000 ppm (up to 40,000 ppm output)±(40 ppm + 5%)
Relative Humidity0 – 100% RH±6% RH
Temperature-10°C to 60°C +-0.8 °C (at 15-35°C)
Supply Voltage2.4V – 5.5VN/A
I²C Address0x62N/A

SCD41 Pinout

Most breakout boards use a standard 4-pin or 5-pin arrangement for easy connection to microcontrollers like Arduino or ESP32.

SCD41 Modul

Pin NameTypeDescription
VIN / VCCPowerConnect to (2.4V – 5.5V) (depending on your board's logic level).
GNDGroundCommon ground for power and logic.
SCLI²C ClockSerial clock line for I²C communication. Usually has a 10k pull-up.
SDAI²C DataSerial data line for I²C communication. Usually has a 10k pull-up.
3VoOutput(Adafruit boards only) 3.3V output from the onboard regulator.

SCD41 Arduino example

Search for “Sensirion I2C SCD4x” and install it. The example below initialises the sensor and outputs CO², Temperature, and Humidity readings every 5 seconds.

#include <Arduino.h>
#include <SensirionI2cScd4x.h>
#include <Wire.h>
 
SensirionI2cScd4x scd4x;
 
void setup() {
    Serial.begin(115200);
    while (!Serial); // Wait for serial monitor
 
    Wire.begin();
    scd4x.begin(Wire);
 
    // Stop potentially running measurement
    uint16_t error = scd4x.stopPeriodicMeasurement();
    if (error) {
        Serial.print("Error stopping measurement: ");
        Serial.println(error);
    }
 
    // Start periodic measurement (updates every 5 seconds)
    error = scd4x.startPeriodicMeasurement();
    if (error) {
        Serial.print("Error starting measurement: ");
        Serial.println(error);
    }
 
    Serial.println("Waiting for first measurement... (5 sec)");
}
 
void loop() {
    uint16_t co2 = 0;
    float temperature = 0.0f;
    float humidity = 0.0f;
    bool dataReady = false;
 
    // Check if data is ready to be read
    uint16_t error = scd4x.getDataReadyStatus(dataReady);
 
    if (dataReady) {
        error = scd4x.readMeasurement(co2, temperature, humidity);
        if (!error) {
            Serial.print("CO2: ");
            Serial.print(co2);
            Serial.print(" ppm\t");
            Serial.print("Temp: ");
            Serial.print(temperature);
            Serial.print(" °C\t");
            Serial.print("Humidity: ");
            Serial.print(humidity);
            Serial.println(" %");
        }
    }
    delay(1000); // Check status every second
}

Key Functions to Note

Communication topics on lamaPLC

PageDateTags
2026/04/23 21:51, , , , , , , , , , , , , , , , , , , , , , ,
2026/04/23 21:51, , , , , , ,
2026/04/23 21:51, , , , , , , ,
2026/04/23 21:51, , , , , , , , , , , , ,
2026/04/23 21:51, , , , , , , ,
2026/04/23 21:51, , , , , , , , , , , , , ,
2024/11/16 21:08, , , , , , , , , , , , , ,
2026/04/23 21:51, , , , , , , , ,
2024/11/16 20:43, , , , , , , , , , , , , ,
2024/11/16 01:16, , , , , ,
2026/04/23 21:51, , , , , , , , , , , , ,
2024/11/15 21:15, , , , , , , , , , ,
2026/04/23 21:51, , , , , , , , ,
2024/11/16 01:46, , , , ,
2026/04/23 21:51, , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
2025/09/23 21:25, , , , , ,
2026/04/23 21:51, , , , , , , , , , ,
2026/04/23 21:51, , , , , , , , , , , ,
2026/04/23 21:51, , , , , , , , ,
2024/11/15 21:28, , , , , , , , , , , , , ,
2026/04/23 21:51, , , , , , ,
2024/11/16 02:26, , , , , , ,
2024/11/15 21:33, , , , , , , , , , , , , , ,
2026/04/23 21:51, , , , , , , ,
2026/04/23 21:51, , , , , , , , ,
2026/04/23 21:51, , , , , , , , , , , , , , , , , ,
2026/04/23 21:51, , , ,
2026/04/23 21:51, , , ,
2026/04/23 21:51, , , , ,
2026/04/23 21:51, , , ,
2026/04/23 21:51, , , , , , , , , ,
2026/04/23 21:51, , , , , , , ,
2025/11/20 22:49, , , , , , , , , , , , , , , , , , , , ,
2024/11/15 23:07, , , , , , , , , , ,
2026/04/23 21:51, , , , ,
2026/04/23 21:51, , , , , , , , , , ,
2026/04/23 21:51, , , , ,
2026/04/23 21:51, , , , , , , , , , , , ,
2024/11/16 00:36, , , , , , , , , , , , , , ,
2026/04/23 21:51, , , , ,
2026/04/23 21:51, , , , , , , , , , , , , , , , , , , , , , ,
2026/03/22 03:14, , , , , , ,
2026/04/23 21:51, , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , ,
2026/05/13 00:06, , , , , , ,
2026/06/05 15:59, , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , , , , , , , , ,
2026/03/06 01:19, , , , , ,
2026/04/23 21:52, , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , ,
2026/06/05 15:59, , , , , ,
2026/04/23 21:52, , , , , , , ,
2026/04/23 21:52, , , , , ,
2026/04/23 21:51, , , ,
2025/05/31 23:32, , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , ,
2025/11/22 00:07, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
2023/07/01 17:29, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , , , , , , , , , , , , ,
2026/04/11 18:28, , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , ,
2026/04/23 21:51, , , , , , , , , , , , , , ,
2026/02/14 18:27, , , , , , , , , ,
2026/04/23 21:52, , , , , ,
2026/04/23 21:52, , , , , , ,
2026/04/23 21:52, , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , , , , , ,
2026/05/08 00:03, , , , , , , , , , ,
2026/05/15 01:03, , , , , , , , ,
2026/04/23 21:52, , , , , , , ,
2026/04/23 21:51, , , , , , , , ,
2026/02/14 18:42, , , , , , ,
2026/05/15 16:47, , , , , , , , , , , , , , , ,
2026/05/12 17:06, , , , , ,
2026/05/12 21:06, , , , , , ,
2026/05/12 18:58, , , , , , ,
2026/04/23 21:52, , , , , , , ,
2026/04/23 21:52, , , , , , , , , ,
2023/06/19 23:24, , , , , , , , , , , , ,
2026/04/15 19:41, , , , , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , ,
2026/05/19 21:37, , , , , ,
2026/02/14 23:51, , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , ,
2026/04/23 21:51, , , , , , ,
2023/06/25 00:43, , , , , ,
2026/04/23 21:52, , , , , , , , , , ,
2026/04/23 21:52, , , , , , , ,
2026/03/07 01:46, , , , , , , , , , ,
2026/05/15 15:17, , , , , , , , , , , , , ,
2026/06/05 15:59, , , , , , ,
2026/02/15 00:00, , , , , , , , ,
2026/05/12 22:18, , , , , , , , , , , , , , , ,
2026/03/05 21:19, , , , , , , , , , , , , , , , ,
2026/02/14 18:49, , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , , , ,
2026/04/23 21:52, , , , ,
2026/04/23 21:52, , , , , , ,

This page has been accessed for: Today: 2, Until now: 301