#embedded-hal-async #async #embedded-hal #no-std #icm20948

nightly no-std icm20948-async

Async driver for the ICM20948 (Imu+Mag) for no_std environments

3 releases

0.1.3 Oct 12, 2023
0.1.2 Oct 8, 2023
0.1.1 Oct 8, 2023

#1875 in Embedded development

MIT license

35KB
811 lines

Async Rust driver for the ICM20948

This driver crate for the ICM20948 uses the embedded-hal-async traits to achieve completely non-blocking access to the ICM20948. The crate uses generics to automatically expose the relevant methods, when various hardware features are configured, for example when the magnetometer is enabled.

The current feature set is basic, but allows for reading the main sensors and writing the most important values. Below is the feature list, with supported features checked off. The rest are on the to-do list.

  • Reading from accelerometer
  • Reading from gyroscope
  • Reading from magnetometer
  • Reading from thermometer
  • I2C support (async)
  • SPI support (async)
  • I2C support (blocking)
  • SPI support (blocking)
  • Setting DLP, range and unit
  • Setting sample rate divider
  • Setting offsets (acc, gyro)
  • Support for FIFO
  • Support for DMP
  • Power management
  • Run self-tests
  • Interrupts
  • Release I2C/SPI object when not used
  • Use embedded-hal traits for delays

Dependencies

~3.5MB
~65K SLoC