7Semi Wiki
7Semi7Semi • Sensirion SCD41 • I²C • Low Power NDIR CO₂ Sensor

ES-12130 | 7Semi SCD41 High Accuracy CO₂, Temperature and Humidity Sensor Breakout I2CProduct Title

Compact, production-ready embedded hardware module.

1 3D VIEWER

3D Model Viewer

Product view
2 OVERVIEW

Overview

The 7Semi SCD41 CO₂ Sensor Breakout is a compact, high-performance environmental sensing module designed for precise carbon dioxide monitoring in advanced applications. Built around Sensirion’s cutting-edge photoacoustic sensing technology, it delivers highly accurate and stable CO₂ measurements with minimal power consumption. In addition to CO₂ sensing, the module integrates temperature and humidity sensors, enabling real-time environmental compensation for improved measurement accuracy. With a digital I²C interface and factory calibration, the SCD41 breakout ensures seamless integration and immediate deployment in embedded systems, IoT devices, and industrial applications. Its ultra-low power operation and small footprint make it ideal for both portable and fixed installations, including smart air quality systems, HVAC automation, and environmental monitoring platforms.

3 FEATURES

Features

  • Integrated temperature and humidity sensing for environmental compensation
  • Wide CO₂ measurement range from 400 ppm to 40,000 ppm
  • High accuracy: ±(50 ppm + 5% of reading)
  • Ultra-low power operation suitable for battery-powered systems
  • Digital I²C interface for easy integration
  • Compact and lightweight design for embedded applications
  • Factory calibrated and ready for immediate use
  • Stable long-term performance
4 TECH SPEC

Technical Specification

ParameterValue
Supply Voltage3.3V to 5V
InterfaceI²C (0x62)
CO2 Measurement Range400–2000 ppm
Operational temprature -40°C to 80°C
Dimension of productL=30mm W=22mm H=7.83mm
5 MECHANICAL

Mechanical

Dimensions: L=30mm W=22mm H=7.83mm

Mesurements
6 PINOUTS

Pinouts

#PinDescription
1VCCPower 3.3V to 5V
2GNDGround
3SDAI²C Data
4SCLI²C Clock
7 HARDWARE

I²C Wiring (Arduino UNO)

wiring guide
wiring guide
  • VCC → 3.3V / 5V
  • GND → GND
  • SDA → A4
  • SCL → A5
8 EXAMPLE CODE

Arduino & ESP32 Notes

  • Install the library via Arduino Library Manager
* Basic.ino
* Example for using the 7Semi SCD4x CO₂, temperature,
*          and humidity sensor with I²C on ESP32/Arduino.
*
* Features demonstrated:
* - Start/stop of standard periodic measurement
* - Reading CO₂ (ppm), temperature (°C), and humidity (%RH)
* - Notes on single-shot mode, offsets, and airflow considerations
*
* Sensor configuration used:
* - Periodic Mode : Standard (2 s polling)
* - I²C Frequency : 100 kHz (recommended for bring-up)
* - Supply Voltage: 3.3V–5.5V (module dependent)
* - Data Output   : CO₂ (ppm), Temperature (°C), RH (%)
*
* Connections:
* - SDA -> A4 Default board SDA (or define custom pin)
* - SCL -> A5 Default board SCL (or define custom pin)
* - VIN -> 3.3V / 5V (depending on module)
* - GND -> GND
*
* @author   7Semi
* @license  MIT
* @version  1.0
* @date     24 September 2025
***************************************************************/
 
#include <7Semi_SCD4x.h>
 
// I2C speed for bring-up (100 kHz recommended; raise later if stable)
#define I2C_FREQ_HZ 100000UL
 
// Set to -1 to use board defaults
#define I2C_SDA_PIN -1
#define I2C_SCL_PIN -1
 
// Polling period while in periodic modes
#define POLL_MS 2000UL
 
SCD4x_7Semi scd(&Wire);
 
uint32_t lastPoll = 0;
bool running = false;
bool lowPower = false;
 
void setup() {
  Serial.begin(115200);
  while (!Serial) {}
 
  Serial.println(F("\n== 7Semi SCD4x =="));
 
  while (!scd.begin(I2C_SDA_PIN, I2C_SCL_PIN, I2C_FREQ_HZ)) {
    Serial.println(F("SCD4x not detected. Check wiring/power."));
    delay(1000);
  }
 
  // Start in standard periodic mode by default
  if (scd.startPeriodicMeasurement()) {
    running = true;
    lowPower = false;
    Serial.println(F("Started standard periodic mode. First valid reading ~5s."));
  } else {
    Serial.println(F("failed to start periodic mode."));
  }
}
 
/**
- Poll data-ready every 2 s
- When ready, read CO₂ (ppm), temperature (°C), humidity (%RH)
- Prints values to Serial (with basic formatting)
*/
void loop() {
  static uint32_t lastCheck = 0;
  if (millis() - lastCheck < 2000) return;  // every 2 s
  lastCheck = millis();
 
  uint16_t ready = 0;
  // Bit 10..0 used as "new data available" in many Sensirion examples
  if (scd.getDataReadyStatus(ready) && (ready & 0x07FF)) {
    uint16_t co2;
    float temp, rh;
 
    if (scd.readMeasurement(co2, temp, rh)) {
      Serial.print("CO₂: ");
      Serial.print(co2);
      Serial.print(" ppm\t");
 
      Serial.print("Temp: ");
      Serial.print(temp, 2);
      Serial.print(" °C\t");
 
      Serial.print("RH: ");
      Serial.print(rh, 1);
      Serial.println(" %");
    } else {
      Serial.println("Read failed (CRC/I2C error)");
    }
  }
}
 
/* ===================== Notes =====================
- If you never see data ready:
   * Re-check wiring, pull-ups, and I²C pins for your board.
   * Try 100 kHz I²C during bring-up.
   * Ensure stable power; SCD4x can run from 3.3–5.5 V depending on module.
 
- If values look offset:
   * Consider setTemperatureOffset() to compensate board self-heating.
   * Avoid strong airflow directly on the sensor.
 
- If you need single-shot mode:
   * Use measureSingleShot()/measureSingleShotRhtOnly() and then readMeasurement().
=================================================== */
9 YOUTUBE

7Semi SCD4x Working Demonstration

11 FAQ

Frequently Asked Questions

What is the SCD41 CO₂ sensor used for?

The SCD41 sensor is used for accurate indoor air quality monitoring by measuring carbon dioxide concentration along with temperature and humidity.

Which communication interface does the SCD41 breakout board support?

The module supports the I²C communication interface, making it compatible with Arduino, ESP32, STM32 and Raspberry Pi platforms.

What is the CO₂ measurement range of the SCD41 sensor?

The sensor supports a wide CO₂ measurement range from 400 ppm to 40,000 ppm.

Does the module require external calibration before use?

No, the SCD41 sensor comes factory calibrated and is ready for immediate use in embedded and IoT applications.