The ICM-20948 is a low-power 9-axis MEMS motion tracking device that combines a 3-axis gyroscope, a 3-axis accelerometer, and a 3-axis magnetometer. This breakout board makes it easy to interface the ICM-20948 with your microcontroller via IยฒC or SPI, enabling a wide range of motion tracking applications like robotics, wearables, drones, and more.
- 9-axis sensor:
- 3-axis Accelerometer (ยฑ2/4/8/16 g)
- 3-axis Gyroscope (ยฑ250/500/1000/2000 dps)
- 3-axis Magnetometer (AK09916)
- Ultra-low power consumption
- Digital Motion Processor (DMP)
- Communication Interfaces:
- IยฒC (up to 400 kHz)
- SPI (up to 7 MHz)
- Voltage Regulator: Operates at 1.8โ3.3V input
- Onboard pull-up resistors for IยฒC
- Compact size: Typically 1"x1"
- ICM-20948 Datasheet (TDK InvenSense)
- AK09916 Magnetometer Datasheet
- Register Map and Programming Guide
| Pin | Function |
|---|---|
| VIN | Power supply (1.8Vโ3.3V) |
| GND | Ground |
| SDA | IยฒC Data / SPI MOSI |
| SCL | IยฒC Clock |
| SDO | IยฒC Address / SPI MISO |
| CS | SPI Chip Select |
- Microcontroller (Arduino, ESP32, Raspberry Pi, STM32, etc.)
- ICM-20948 Breakout Board
- Logic level compatibility (1.8Vโ3.3V)
-
Arduino:
-
Install via Library Manager or clone via Git:
git clone https://github.com/sparkfun/SparkFun_ICM-20948_ArduinoLibrary.git
-
Raspberry Pi (Python):
- RTIMULib2
- or write your own IยฒC interface using
smbus2
- Drone flight controllers
- Wearable fitness devices
- Gesture recognition
- Robotics
- VR/AR head tracking
- Automotive navigation systems
- For best magnetometer performance, avoid placing the board near ferromagnetic materials or current-carrying wires.
- Use DMP features if you want to reduce processing load on your MCU (advanced).
- Calibration is key for accurate results (especially magnetometer).
This project/documentation is released under the MIT License.
Feel free to open issues, suggest improvements, or contribute code via pull requests.