3 releases (stable)
Uses new Rust 2024
| new 2.0.0 | Jun 13, 2026 |
|---|---|
| 1.0.0 | Jun 9, 2026 |
| 0.1.0 | Jun 8, 2026 |
#1514 in Embedded development
23KB
476 lines
True-to-spec async I2C driver for the BMP580/BMP581/BMP585 barometric pressure sensors.
Features
no_stdcompatible, works without an allocator- Widely compatible, generic over
embedded_hal_asyncI2C traits - 100% documentation coverage
- Based on Bosch Sensortec BMP581 datasheet, written by a human
- Fully tested on real hardware: compatible with Adafruit BMP581 development board
Usage
Getting started is easy:
// initialize the sensor
let bmp5 = Bmp5xx::new(i2c, Delay, 0x47);
bmp5.init().await.unwrap();
// new pressure measurement
let pressure = bmp5.meas_pres().await.unwrap();
Advanced operations:
// change oversampling rate
bmp5.osr_temp(Oversampling::X8);
bmp5.osr_pres(Oversampling::X128);
// set up interrupts
bmp5.int(Interrupt::default().enable(true)).await.unwrap();
// start continuous measurement
bmp5.start_continuous(true).await.unwrap();
bmp5xx
True-to-spec async I2C driver for the BMP580/BMP581/BMP585 barometric pressure sensors.
Features
no_stdcompatible, works without an allocator- Widely compatible, generic over
embedded_hal_asyncI2C traits - 100% documentation coverage
- Based on Bosch Sensortec BMP581 datasheet, written by a human
- Fully tested on real hardware: compatible with Adafruit BMP581 development board
Usage
Getting started is easy:
// initialize the sensor
let bmp5 = Bmp5xx::new(i2c, Delay, 0x47);
bmp5.init().await.unwrap();
// new pressure measurement
let pressure = bmp5.meas_pres().await.unwrap();
Advanced operations:
// change oversampling rate
bmp5.osr_temp(Oversampling::X8);
bmp5.osr_pres(Oversampling::X128);
// set up interrupts
bmp5.int(Interrupt::default().enable(true)).await.unwrap();
// start continuous measurement
bmp5.start_continuous(true).await.unwrap();
License: GPL-3.0-or-later
Dependencies
~205KB