SparkFun 9DoF IMU (ICM-20948) Breakout Hookup Guide

Pages
Contributors: Ell C, Liquid Soulder
Favorited Favorite 1

Hardware Hookup

One of the many advantages of the Qwiic system is that hooking up your hardware is extremely simple. Simply grab a Qwiic cable and plug your 9DoF in!

Hooking up microcontroller to breakout via qwiic cable

Easy peasy lemon squeezy

If you'd like to use the broken out GPIO pins, things get a bit more complicated. That said, to make life a little easier we've organized them by function, and provided lots of labels. You'll first notice that one side has the text 'I2C' and the other side says 'SPI.' The labels on either side are those that apply to that kind of communication.

I2C Pin Labels SPI Pin Labels

Next, you'll see that on the left side are the main connections to the host microcontroller. When connecting I2C you'll have a 'No Connect' pin that serves as the chip select when using SPI. As noted before, there are no modifications required to switch between I2C mode and SPI out of the box. However if the 'ADR' jumper is closed SPI will be unavailable.

On the right side are connections to external sensors that can be controlled by the ICM, as well as the 'INT' and 'FSYNC' interrupt pins. The auxiliary I2C bus pins are level shifted to/from the 'VIN' level that you supply.

Breakout Board Pin Functions (SPI)
Breakout Pin Arduino Uno Esp32 Thing Plus Microcontroller Pin Requirements
MOSI 11 18 Data output of chosen SPI port
SCLK 13 5 Clock output of chosen SPI port
MISO 12 19 Data input of chosen SPI port
CS 2 2 An output pin to select the ICM for SPI
Breakout Board Pin Functions (I2C)
Breakout Pin Arduino Uno Esp32 Thing Plus Microcontroller Pin Requirements
DA SDA 23 Data line of chosen I2C port
CL SCL 22 Clock line of chosen I2C port
AD0 - - Optional - use to control I2C address from software
Breakout Board Pin Functions (Auxiliary I2C and Interrupts)
Breakout Pin Arduino Uno Esp32 Thing Plus Microcontroller Pin Requirements
ADA - - Data line of auxiliary I2C bus
ACL - - Clock line of auxiliary I2C bus
FSYNC - - Optional - synchronize measurements with a signal out from the microcontroller
INT - - Optional - respond to configurable interrupts in from the ICM