Sensors

ICM-20948

9-axis motion sensor used in newer IMU breakouts with better vendor support than many legacy modules.

China-madeTDK InvenSenseActiveModerate

Best For

Projects needing 9-axis IMU and I2C with a commonly available sensors part.

Avoid If

You need production-grade certainty without checking the exact module vendor, pinout, and library maintenance status.

Quick Decision Notes

ICM-20948 is indexed as a sensors part from TDK InvenSense. ChipScout tracks it by practical maker-facing dimensions: interfaces, library readiness, estimated price, field-level sources, and whether the page is strong enough for selection rather than only lookup.

Technical Specifications

Measurement9-axis IMUSource: TDK InvenSense
InterfaceI2C / SPISource: TDK InvenSense
Working Voltage1.71V - 3.6VSource: TDK InvenSense

Common Use Cases

  • Maker prototypes
  • Low-cost modules
  • Educational hardware

Known Issues

  • Breakout boards may use different pin labels or regulator choices
  • Clone modules can differ from the original datasheet part

Interfaces and Library Support

Interfaces
I2CSPI
Wireless
None
Voltage
3.3V
Libraries
Arduino verifiedMicroPython verified
Data Integrity86% confidence
Sourcehttps://invensense.tdk.com/
Last verified2026-05-20
Core specsVerified
PinoutAvailable
Library supportChecked
Price rangePresent
Found a wrong spec?

Every field is meant to be source-backed. Corrections should include a datasheet URL, vendor page, module photo, or reproducible library test.

Submit correction

Source Resources

Pinout Table

VCC3.3VPower the module from a rail that matches the breakout board, not just the bare IC.
GNDCommon groundConnect ground between the controller, sensor/module, and external power supply.
SDAMCU I2C dataUse pull-ups appropriate for the board voltage; many modules already include them.
SCLMCU I2C clockKeep wiring short for breadboard prototypes and lower bus speed if unstable.
SCKMCU SPI clockShare with other SPI devices when chip select lines are separate.
MOSIMCU SPI data outRequired for most displays, radios, and writable devices.
MISOMCU SPI data inMay be optional for write-only displays.
CSAny free GPIOUse one chip-select pin per SPI peripheral.

Pinout is not yet source-verified. Use the table as an integration checklist, then confirm exact pins against the module vendor page before wiring hardware.

Common Wiring

VCC

Power the module from a rail that matches the breakout board, not just the bare IC.

GND

Connect ground between the controller, sensor/module, and external power supply.

SDA

Use pull-ups appropriate for the board voltage; many modules already include them.

SCL

Keep wiring short for breadboard prototypes and lower bus speed if unstable.

Arduino Example

#include <Wire.h>

void setup() {
  Serial.begin(115200);
  Wire.begin();
  Serial.println("ICM-20948 I2C wiring smoke test");
}

void loop() {
  // Replace this with the maintained ICM-20948 library call.
  Serial.println("Check ICM-20948 on the I2C bus, then read a sample.");
  delay(1000);
}

MicroPython Example

from machine import Pin, I2C
import time

i2c = I2C(0, scl=Pin(1), sda=Pin(0), freq=100000)
print("ICM-20948 I2C devices:", i2c.scan())

while True:
    # Replace with the maintained ICM-20948 driver call.
    print("read ICM-20948 sample")
    time.sleep(1)

Recommended Development Boards

ESP32-C3 development board

Low-cost Wi-Fi/BLE board with enough interfaces for most sensors and modules.

Arduino Uno R4 / compatible

Good baseline for beginner wiring and library validation.

Raspberry Pi Pico W

Practical MicroPython target for I2C, SPI, UART, PWM, and ADC experiments.

Alternative Model Reasons

ACS712SensorsCompare this option when price or module availability is the deciding constraint.
ADXL345SensorsCompare this option when price or module availability is the deciding constraint.
AHT10SensorsCompare this option when price or module availability is the deciding constraint.
AHT20SensorsCompare this option when price or module availability is the deciding constraint.

Common Questions

What is ICM-20948 best used for?

Projects needing 9-axis IMU and I2C with a commonly available sensors part.

Does ICM-20948 support Arduino or MicroPython?

ICM-20948 has verified Arduino support and verified MicroPython support.

What interfaces does ICM-20948 use?

ICM-20948 lists I2C, SPI; wireless support is no wireless protocol.

Compare ICM-20948 vs ACS712

Alternatives and Related Parts