bolderflight/invensense-imu
Arduino and CMake library for communicating with the InvenSense MPU-6500, MPU-9250 and MPU-9255 nine-axis IMUs.
What it solves
This library provides a standardized way to communicate with Invensense Inertial Measurement Units (IMUs), specifically the MPU-6500, MPU-9250, and MPU-9255. It simplifies the process of reading motion data (acceleration, rotation, and magnetic fields) from these sensors using common microcontrollers.
How it works
The library implements drivers for these sensors via I2C and SPI communication protocols. It provides high-level C++ classes (Mpu9250 and Mpu6500) that abstract the register-level operations into simple methods for configuring sensor ranges, sampling rates, and reading processed data in standard units (m/s², rad/s, and uT).
Who it’s for
It is designed for developers working with Arduino or CMake-based build systems, particularly those using Teensy microcontrollers, to integrate motion tracking sensors into their hardware projects.
Highlights
- Multi-Sensor Support: Compatible with MPU-6500 (6-axis) and MPU-9250/9255 (9-axis) IMUs.
- Flexible Communication: Supports both I2C (up to 400 kHz) and SPI (up to 20 MHz for data reading).
- Advanced Interrupts: Includes support for Data Ready (DRDY) interrupts and Wake-On-Motion (WOM) for low-power applications.
- LFP Filtering: Built-in support for configuring digital low-pass filters to reduce sensor noise.
- Comprehensive Data: Provides easy access to accelerometer, gyroscope, magnetometer, and internal die temperature data.
Related
- Project
- Project
- Project
- Project
- Project