mpu9250 0.4.1

no_std driver for the MPU9250 & onboard AK8963 (accelerometer + gyroscope + magnetometer IMU)
Documentation

mpu9250

no_std driver for the MPU9250 & onboard AK8963 (accelerometer + gyroscope + magnetometer IMU).

Build Status

What works

  • Reading the accelerometer, gyroscope, temperature sensor, and magnetrometer: both raw and scaled and converted values.
  • Setting DLPF, reading scales, sample rate divisor.
  • Reading the WHO_AM_I registers of mpu9250 and ak8963.
  • Getting resolutions and factory sensitivities.

Imu mode also works with mpu6500 (see #1 for details).

Basic usage

Include library as a dependency in your Cargo.toml crates.io:

[dependencies.mpu9250]
version = "<version>"

Use embedded-hal implementation to get SPI, NCS, and delay, then create mpu handle:

extern crate mpu9250; // or just use mpu9250; if 2018 edition is used.

// to create sensor with mag support and default configuration:
let mut _imu = Mpu9250::marg_default(spi, ncs, &mut delay)?;
// to create sensor without mag support and default configuration:
let mut marg = Mpu9250::imu_default(spi, ncs, &mut delay)?;
// to get all supported measurements:
let all = marg.all()?;
println!("{:?}", all);

More examples

Number of examples can be found in proving-ground repo. Examples include: reading temperature, calibrating magnetrometer, reading all sensors.

Documentation

API Docs available on docs.rs.

License

Licensed under either of

at your option.

Testimonials

Started off as a fork of japaric's mpu9250 repo.