Thanks to visit codestin.com
Credit goes to github.com

Skip to content

qrasmont/bmi2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bmi2

stability-wip

This is an embedded-hal driver for the Bosch BMI260/270 inertial measurement unit.

Quick start

// ...
use bmi2::Bmi2;
use bmi2::config;
use bmi2::{types::Burst, I2cAddr, types::PwrCtrl};
use embedded_hal::delay::DelayNs;

// Specify your delay type, for example:
let delay = MyDelay::new(); // Replace with your actual delay implementation

// Choose a buffer size (e.g., 512 bytes), needs to be >= max data burst
const BUFFER_SIZE: usize = 512;

/// Create a new Bmi2 device using I2C with its alternative address (0x69).
/// Configure the max data burst to 255 bytes:
/// - used for the upload of the configuration during initialization.
/// - This is a limitation from your device or its HAL.
let mut bmi = Bmi2::<_, _, BUFFER_SIZE>::new_i2c(
    i2c, 
    delay,
    I2cAddr::Alternative, 
    Burst::new(255),
);

/// Get the chip id. Should be 0x24 or 36 in decimal
let chip_id = bmi.get_chip_id().unwrap();
/// Initialize the senor.
/// During this process a configuration of > 8kB is uploaded to the sensor.
/// Alternatively, for the BMI260 call its dedicated config:
/// bmi.init(&config::BMI260_CONFIG_FILE).unwrap();
bmi.init(&config::BMI270_CONFIG_FILE).unwrap();
/// Enable power for the accelerometer and the gyroscope.
let pwr_ctrl = PwrCtrl { aux_en: false, gyr_en: true, acc_en: true, temp_en: false };
bmi.set_pwr_ctrl(pwr_ctrl).unwrap();
/// Read the raw data
let data = bmi.get_data().unwrap();
// ...

About

A Rust embedded-hal driver for the BMI270/260 IMU

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages