#embedded #embedded-hal #sensor #i2c #scd30

bin+lib sensor-scd30

SCD30 environmental sensor driver

3 releases (breaking)

0.3.0 Feb 7, 2020
0.2.0 Aug 1, 2019
0.1.0 Aug 1, 2019

#483 in Hardware support

MPL-2.0 license

431 lines

Rust Sensor SCD30

A rust driver (and CLI utility) for the scd30 CO2, Temperature and Humidity sensor.


GitHub tag Travis Build Status Crates.io Docs.rs

Open Issues


Add the library to your project with cargo add sensor-scd30 or with sensor-scd30 = { version = "0.1.0", features = [] } in your Cargo.toml.

Install the utility with one of the following methods:

  • using a precompiled binary from the releases page
  • from source using cargo with cargo install sensor-scd30

Run scd30-util to communicate with the sensor.


pi@raspberrypi:~ $ sudo ./scd30-util --help
scd30-util 0.1.0
Ryan Kurte <ryankurte@gmail.com>
A Command Line Interface (CLI) for interacting with a local Scd30 environmental sensor over I2C

    scd30-util [OPTIONS]

    -h, --help       Prints help information
    -V, --version    Prints version information

    -d, --i2c <i2c>                  Specify the i2c interface to use to connect to the scd30 device [env: SCD30_I2C=]
                                     [default: /dev/i2c-1]
        --log-level <level>          Enable verbose logging [default: info]
    -p, --sample-period <period>     Specify period for taking measurements [default: 10s]
        --poll-delay <poll_delay>    Delay between sensor poll operations [default: 100ms]

Example output:

pi@raspberrypi:~ $ ./scd30-util -p 2s
04:01:00 [INFO] CO2: 556.21 ppm, Temperature: 19.15 C, Humidity: 49.39 %
04:01:02 [INFO] CO2: 553.72 ppm, Temperature: 19.13 C, Humidity: 49.44 %


~20K SLoC