ICM-20948 9-Axis IMU Module Pinout

The ICM-20948 is a 9-axis motion-tracking IMU that combines a 3-axis gyroscope, a 3-axis accelerometer, and a 3-axis magnetometer in a single compact package, alongside an onboard Digital Motion Processor (DMP) for sensor fusion. By measuring rotational movement, acceleration, and magnetic field direction, it provides accurate motion tracking, orientation sensing, and heading information at extremely low power.

This makes the ICM-20948 ideal for applications that demand full 9-degrees-of-freedom (9-DOF) motion sensing under tight power budgets, such as smartphones, tablets, wearable sensors, drones, robotics, and IoT devices. Its compact size, ultra-low power consumption, and onboard sensor fusion have made it a popular successor to older 9-axis IMUs in embedded projects.

What is ICM-20948?

IC-20948 Sensor

The ICM-20948 is constructed as a multi-chip module (MCM), consisting of two separate silicon dies integrated into a single QFN package. One die houses the 3-axis gyroscope, the 3-axis accelerometer, and the Digital Motion Processor (DMP); the other die houses the AK09916 3-axis magnetometer. Together, this gives the ICM-20948 full 9-axis MotionTracking in a compact 3 × 3 × 1mm QFN package.

The onboard DMP handles sensor fusion internally, combining gyroscope, accelerometer, and magnetometer data using run-time calibration firmware, and passes the result to the host over I²C or SPI. The device also includes an auxiliary I²C link for external sensors, on-chip 16-bit ADCs, programmable digital filters, an embedded temperature sensor, and programmable interrupts.

Watch out for fakes: As with other popular IMUs, counterfeit or mislabeled units circulate on the market. Always verify the WHO_AM_I register value against the official register map before trusting a new module in production.

ICM-20948 overview

ParameterValue
Sensor Type9-Axis IMU (Gyroscope + Accelerometer + Magnetometer)
ConstructionMulti-chip module (MCM), 2 dies
MagnetometerAK09916 (separate die)
Supply Voltage (VDD)As low as 1.71V
CommunicationI²C / SPI (up to 7MHz)
I²C Address0x68 or 0x69 (AD0 selectable)
ADC Resolution16-bit (gyro/accel)
Onboard DMPYes
Temperature SensorYes (onboard)
FIFO Buffer512 bytes (varies with DMP feature set)
Auxiliary I²CYes — for external sensors
Package3 × 3 × 1mm QFN (24-pin)
Compatible BoardsArduino, ESP32, Raspberry Pi

Pinout

ICM-20948 breakout pinout (12-pin)

PinNameTypeDescription
1FSInputFSYNC — frame sync input; leave floating if unused
2ADInputAD0 — I²C address select
3ACI/OAUX_DA — auxiliary I²C data, for external sensors
4GInputAUX_CL — auxiliary I²C clock, for external sensors
5SDOOutputSPI data out / alternate I²C address line
6CSInputSPI chip select — active LOW; tie high for I²C mode
7VINPowerSupply input — 3.3V to 5V
81V8OutputREGOUT — internal 1.8V regulated rail (output only, do not drive externally)
9GNDPowerGround
10SCLInputI²C clock / SPI clock
11SDAI/OI²C data / SPI data in
12INTOutputInterrupt output — signals when new data is ready

Working principle

The ICM-20948 contains three independent MEMS sensing systems — gyroscope, accelerometer, and magnetometer — feeding into dedicated 16-bit ADCs and a shared onboard DMP.

Gyroscope Measures angular rate around each axis using a user-programmable full-scale range with multiple selectable sensitivity settings. Integrating this data over time yields angular position but accumulates drift without correction from the accelerometer and magnetometer.

Accelerometer Measures linear acceleration along each axis, including gravity, also with a user-programmable full-scale range. Used to determine tilt angle and correct long-term gyroscope drift.

Magnetometer (AK09916) A separate die housing a 3-axis magnetometer with a measurement range of up to roughly ±4900µT. Measures the Earth’s magnetic field to determine absolute heading, solving the yaw drift problem that the gyroscope and accelerometer cannot correct alone.

DMP and sensor fusion: The onboard DMP processes complex motion algorithms, including sensor fusion that combines all three sensors into a complete orientation picture, along with run-time calibration firmware that continuously refines accuracy. Output can be delivered as raw sensor values or as fused orientation data, selectable through register configuration.

Auxiliary I²C bus: The device can act as an I²C master to optional external sensors connected to its auxiliary bus, though it has limited master capabilities and depends on the host system processor to handle initial configuration of those auxiliary sensors.

ICM-20948 module construction

Sensor IC A multi-chip module consisting of two dies in a single 3 × 3 × 1mm QFN package. One die houses the gyroscope, accelerometer, and DMP; the other houses the AK09916 magnetometer. All 9 sensing axes, their ADCs, the DMP, FIFO buffer, temperature sensor, and both I²C and SPI interface logic are contained within this single package.

Onboard Voltage Regulator and Logic Shifting Because the bare IC runs natively at a low core voltage, most breakout modules include an onboard regulator plus logic-shifting circuitry so the board communicates cleanly with either 3.3V or 5V host systems without extra external components.

Pull-up Resistors Onboard pull-up resistors on the SDA, SCL, and nCS lines hold them at a high logic level when idle, as required by the I²C and SPI protocols.

Pull-down / Default-State Resistors Onboard resistors on FSYNC and AD0 set their default idle states, which can be overridden externally if a different address or sync behavior is needed.

Decoupling Capacitors Filter high-frequency noise on the supply rails. Clean power directly affects the accuracy of integrated angle calculations, since supply noise shows up as timing jitter.

Specifications

Internal Components of the ICM-20948 module

ParameterValue
Supply VoltageAs low as 1.71V
CommunicationI²C / SPI
SPI SpeedUp to 7MHz
ADC Resolution16-bit (gyroscope/accelerometer)
GyroscopeMultiple selectable full-scale ranges
AccelerometerMultiple selectable full-scale ranges
MagnetometerAK09916, up to ~±4900µT range
FIFO Buffer512 bytes (DMP feature-set dependent)
DMPYes — motion fusion + run-time calibration
Temperature SensorYes (onboard)
Auxiliary I²CYes, limited master capability
Package24-pin QFN, 3 × 3 × 1mm
RoHSCompliant

Helpful resources

Leave a Comment