The SparkFun 9DoF IMU Breakout incorporates all the amazing features of Invensense's ICM-20948 into a Qwiic-enabled breakout board complete with a logic shifter and broken out GPIO pins for all your motion sensing needs. The ICM-20948 itself is an extremely low powered, I2C and SPI enabled 9-axis motion tracking device that is ideally suited for smartphones, tablets, wearable sensors, and IoT applications. Utilizing our handy Qwiic system, no soldering is required to connect it to the rest of your system. However, we still have broken out 0.1"-spaced pins in case you prefer to use a breadboard.
In addition to the 3-Axis Gyroscope with four selectable ranges, 3-Axis Accelerometer, again with four selectable ranges, and 3-axis magnetometer with an FSR to ±4900µT, the ICM-20948 also includes a Digital Motion Processor that offloads the computation of motion sensing algorithms from the detectors, allowing optimal performance of the sensors. We've also broken out all the ICM-20948 pin functionality to GPIO and labeled them I2C on the front, SPI on the back for ease of identification.
The SparkFun Qwiic Connect System is an ecosystem of I2C sensors, actuators, shields and cables that make prototyping faster and less prone to error. All Qwiic-enabled boards use a common 1mm pitch, 4-pin JST connector. This reduces the amount of required PCB space, and polarized connections mean you can’t hook it up wrong.
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels
Based on 4 ratings:
2 of 4 found this helpful:
This works worse than the Ebay 6050 Gyroscope for $5. The x,y,z data have massive spikes even though the unit is at rest. I researched this and Sprkfun has no solution. Ill try to return it but do yourself a favor and do not purchase this.
Sorry to hear you're having trouble! Please contact our technical assistance team for help resolving your issue.
I bought two of these and they both work really well. I'm using the gyroscope to control a mouse and am impressed with the accuracy from the chip. I did had an issue combining this board with another I2C device when using the basic example. Switching to the advanced example (which included additional configuration) resolved this issue. The qwiic connect ports make this an easy device to prototype with.
I bought three of these for a project and they all perform nicely. The datasheet provides information for basic operation; initializing, calibration and settings, reading sensor data etc. Wasn't able to get the DMP working, however. InvenSense doesn't provide information on the DMP to just anyone I guess. Very capable little device and easy to hook up with the Qwiic connectors. Thanks!
Just starting to use part. The software documentation is pretty poor. The base interface is in C but it seems to be primarily oriented toward Arduino CPP. Since I need just C, it was a chore digging out the C interfaces needed. Each C function should have a description and good comments as to what the sub-function are doing. The interface to the IMC-20948 is complicated, but the interface software should make it simple so that the details for setting up the modes do not need to be seen or understood bu the application programmer. All I really wanted to do was initialize the thing and get magnetometer readings from it. Interfacing to the software should be as simple as interfacing to the hardware unit.