When you want to sense orientation using inertial measurements, you need an Inertial Measurement Unit, and when it comes to IMUs, the more DoFs, the better!
The ICM20948 from Invensense packs 9 Degrees of freedom into a teeny package, making it a one stop shop for all the DOFs you need! Within it’s svelte 3x3mm package there are not just one MEMS sensor die like your common sensors, but two sensor dies! The ICM20948 pair’s Invensense’s MEMS 3-axis accelerometer and gyro with the AK09916 3-axis magnetometer from Asahi Kasei Microdevices Corporation.
This chip is considered TDK's 'upgrade' for the popular (and now discontinued) MPU-9250 - but please note it is not exactly code compatible!
All 9 axes of measurement are made available thanks to a crew of 16-bit Analog to Digital Converters, diligently converting the raw analog signals from the MEMs sensors to digital readings that are accessed via I2C or SPI. Each of the sensors have the quality specs you would expect from such a sensor. Just see what the datasheet has to say:
3-Axis Gyroscope with Programmable FSR of ±250 dps, ±500 dps, ±1000 dps, and ±2000 dps
3-Axis Accelerometer with Programmable FSR of ±2g, ±4g, ±8g, and ±16g
3-Axis Compass with a wide range to ±4900 µT
Now that’s a handy and capable team of sensors, ready to help orient your project in the right direction!
Like any high performance device the ICM20948 can a bit particular about how it needs to be worked with. Unlike the pick and place machines that normally handle these sensors, most of us humans can’t readily take a little guy like the ICM20948 and plop it into our circuit; it’s small! What’s more, the ICM20948 runs on 1.8V which is increasingly common for device manufacturers but isn’t hardly common for makers, learners, prototypers or the like. With that in mind, Adafruit put the ICM20948 on a breakout with a 1.8V voltage regulator as well as level shifting circuitry to allow your 3.3V device such as a Feather M4 or Raspberry Pi, or a 5V device such as the Arduino Uno.
To make connections easy, the breakout puts makes the pins of the ICM20948 available on standard 0.100”/ 2.54mm pitch headers for use with a breadboard. Should you wish to avoid soldering, the Stemma QT form factor breakout also includes Stemma QT connectors which just like the SparkFun Qwiic connectors they’re inspired by (and compatible with). Using these handy connectors you can simply plug in the sensor and get rolling with your project. You can even use them to daisy chain multiple sensors together!
Lastly, all the wiring in the world wouldn’t do you much good if you didn’t know how to use those wires to talk to your sensor, so Adafuit have done the work of writing libraries for Arduino and CircuitPython that will allow you to use the ICM20948 with your favorite development board, be it an Arduino, Feather, Raspberry Pi, or one of the many other Arduino and CircuitPython compatible boards.
- 3-Axis Gyroscope with Programmable FSR of ±250dps, ±500dps, ±1000dps and ±2000dps
- 3-Axis Accelerometer with Programmable FSR of ±2g, ±4g, ±8g and ±16g
- 3-Axis Compass with a wide range to ±4900μT
- Onboard Digital Motion Processor (DMP)
- Android support
- Auxiliary I2C interface for external sensors
- On-Chip 16-bit ADCs and Programmable Filters
- 7MHz SPI or 400kHz Fast Mode I²C
- Digital-output temperature sensor
- MEMS structure hermetically sealed and bonded at wafer level
- RoHS and Green compliant
Product Dimensions: 25.7mm x 17.7mm x 4.6mm / 1.0" x 0.7" x 0.2"
Primary Guide: Adafruit TDK InvenSense ICM-20948 9-DoF IMU - One Package, Two Dies, Three Sensors, 9-DoFs, lets go!