9 unstable releases
Uses new Rust 2024
| 0.5.0 | Apr 1, 2026 |
|---|---|
| 0.4.1 | Jul 6, 2025 |
| 0.4.0 | Mar 8, 2025 |
| 0.3.0 | Feb 18, 2024 |
| 0.1.0 | Mar 21, 2021 |
#245 in Embedded development
83 downloads per month
52KB
924 lines
Sensirion I2C SCD4x Driver
A platform-agnostic no_std Rust driver for the Sensirion SCD4x CO2 sensor family (SCD40/SCD41), built on embedded-hal traits. Based on embedded-i2c-scd4x and sgpc3-rs.
Sensirion SCD4x
The SCD4x is a miniature CO2, temperature, and relative humidity sensor using photoacoustic NDIR sensing.
Further information: Datasheet SCD4x
Features
- Full SCD4x command set (periodic & single-shot measurements, calibration, configuration)
- SCD41-specific commands behind the
scd41feature flag (single-shot, power down/wake up) - Async support via the
embedded-hal-asyncfeature - Optional
thiserrorintegration forstdenvironments - Optional
defmtsupport for embedded logging - Blocking and non-blocking measurement modes
Usage
Add to your Cargo.toml:
[dependencies]
scd4x = "0.5"
# For SCD41-specific features (single-shot, power management):
# scd4x = { version = "0.5", features = ["scd41"] }
# For async support:
# scd4x = { version = "0.5", features = ["embedded-hal-async"] }
Full Examples
- Linux / Raspberry Pi — blocking driver with
linux-embedded-hal - ESP32-C3 Embassy — async driver with
esp-haland Embassy
CLI Utility
Run the built-in CLI to read serial number and measurements (Linux only):
cargo run --features="util"
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.
Contributing
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~0–10MB
~67K SLoC