Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use ICM20948_変換モジュール: Examples, Pinouts, and Specs

Image of ICM20948_変換モジュール
Cirkit Designer LogoDesign with ICM20948_変換モジュール in Cirkit Designer

Introduction

The ICM20948_変換モジュール is a 9-axis motion tracking device manufactured by InvenSense. It integrates a 3-axis gyroscope, a 3-axis accelerometer, and a 3-axis magnetometer into a single compact module. This component is designed for applications requiring precise motion sensing and orientation detection, making it ideal for robotics, drones, wearable devices, and gaming peripherals.

The module provides high accuracy and low power consumption, making it suitable for battery-powered devices. It communicates via I²C or SPI interfaces, allowing seamless integration with microcontrollers and development boards like the Arduino UNO.

Explore Projects Built with ICM20948_変換モジュール

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Cellular-Enabled IoT Device with Real-Time Clock and Power Management
Image of LRCM PHASE 2 BASIC: A project utilizing ICM20948_変換モジュール in a practical application
This circuit features a LilyGo-SIM7000G module for cellular communication and GPS functionality, interfaced with an RTC DS3231 for real-time clock capabilities. It includes voltage sensing through two voltage sensor modules, and uses an 8-channel opto-coupler for isolating different parts of the circuit. Power management is handled by a buck converter connected to a DC power source and batteries, with a fuse for protection and a rocker switch for on/off control. Additionally, there's an LED for indication purposes.
Cirkit Designer LogoOpen Project in Cirkit Designer
Cellular-Connected ESP32-CAM with Real-Time Clock and Isolated Control
Image of LRCM PHASE 2 PRO: A project utilizing ICM20948_変換モジュール in a practical application
This circuit integrates a LilyGo-SIM7000G module with an RTC DS3231 for timekeeping, interfaced via I2C (SCL and SDA lines). An 8-Channel OPTO-COUPLER is used to isolate and interface external signals with the LilyGo-SIM7000G's GPIOs. Power is managed by a Buck converter, which steps down voltage from a DC Power Source to supply the ESP32-CAM and LilyGo-SIM7000G modules, as well as the OPTO-COUPLER.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Nano Based GPS Tracker with GSM Communication and Accelerometer
Image of Circuit Aayush: A project utilizing ICM20948_変換モジュール in a practical application
This circuit is designed for communication and location tracking purposes. It features an Arduino Nano interfaced with a SIM800L GSM module for cellular connectivity, a GPS NEO 6M module for obtaining geographical coordinates, and an AITrip ADXL335 GY-61 accelerometer for motion sensing. The LM2596 Step Down Module is used to regulate the power supply to the components.
Cirkit Designer LogoOpen Project in Cirkit Designer
DC-DC Converter and Relay Module Power Distribution System
Image of relay: A project utilizing ICM20948_変換モジュール in a practical application
This circuit consists of a DC-DC converter powering a 6-channel power module, which in turn supplies 5V to a 2-relay module. The power module distributes the converted voltage to the relay module, enabling it to control external devices.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with ICM20948_変換モジュール

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of LRCM PHASE 2 BASIC: A project utilizing ICM20948_変換モジュール in a practical application
Cellular-Enabled IoT Device with Real-Time Clock and Power Management
This circuit features a LilyGo-SIM7000G module for cellular communication and GPS functionality, interfaced with an RTC DS3231 for real-time clock capabilities. It includes voltage sensing through two voltage sensor modules, and uses an 8-channel opto-coupler for isolating different parts of the circuit. Power management is handled by a buck converter connected to a DC power source and batteries, with a fuse for protection and a rocker switch for on/off control. Additionally, there's an LED for indication purposes.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of LRCM PHASE 2 PRO: A project utilizing ICM20948_変換モジュール in a practical application
Cellular-Connected ESP32-CAM with Real-Time Clock and Isolated Control
This circuit integrates a LilyGo-SIM7000G module with an RTC DS3231 for timekeeping, interfaced via I2C (SCL and SDA lines). An 8-Channel OPTO-COUPLER is used to isolate and interface external signals with the LilyGo-SIM7000G's GPIOs. Power is managed by a Buck converter, which steps down voltage from a DC Power Source to supply the ESP32-CAM and LilyGo-SIM7000G modules, as well as the OPTO-COUPLER.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Circuit Aayush: A project utilizing ICM20948_変換モジュール in a practical application
Arduino Nano Based GPS Tracker with GSM Communication and Accelerometer
This circuit is designed for communication and location tracking purposes. It features an Arduino Nano interfaced with a SIM800L GSM module for cellular connectivity, a GPS NEO 6M module for obtaining geographical coordinates, and an AITrip ADXL335 GY-61 accelerometer for motion sensing. The LM2596 Step Down Module is used to regulate the power supply to the components.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of relay: A project utilizing ICM20948_変換モジュール in a practical application
DC-DC Converter and Relay Module Power Distribution System
This circuit consists of a DC-DC converter powering a 6-channel power module, which in turn supplies 5V to a 2-relay module. The power module distributes the converted voltage to the relay module, enabling it to control external devices.
Cirkit Designer LogoOpen Project in Cirkit Designer

Technical Specifications

Key Technical Details

Parameter Value
Manufacturer InvenSense
Sensor Type 9-axis motion tracking
Gyroscope Range ±250, ±500, ±1000, ±2000 dps
Accelerometer Range ±2g, ±4g, ±8g, ±16g
Magnetometer Range ±4900 µT
Operating Voltage 1.8V (core), 3.3V (I/O)
Communication Interface I²C (up to 400 kHz), SPI (up to 7 MHz)
Operating Temperature -40°C to +85°C
Power Consumption 2.5 mA (typical, full operation)
Dimensions 3 mm x 3 mm x 1 mm

Pin Configuration and Descriptions

The ICM20948_変換モジュール typically comes with a breakout board for easier integration. Below is the pin configuration:

Pin Name Pin Number Description
VCC 1 Power supply input (3.3V recommended)
GND 2 Ground
SDA 3 I²C data line
SCL 4 I²C clock line
CS 5 Chip select for SPI (active low)
SDO 6 SPI data output / I²C address selection
INT 7 Interrupt output
RST 8 Reset pin (active low)

Usage Instructions

How to Use the Component in a Circuit

  1. Power Supply: Connect the VCC pin to a 3.3V power source and the GND pin to ground.
  2. Communication Interface:
    • For I²C: Connect the SDA and SCL pins to the corresponding I²C pins on your microcontroller. Use pull-up resistors (typically 4.7 kΩ) on both lines.
    • For SPI: Connect the CS, SDO, and SCL pins to the SPI interface of your microcontroller.
  3. Interrupts: If needed, connect the INT pin to a GPIO pin on your microcontroller to handle interrupts.
  4. Reset: Optionally, connect the RST pin to a GPIO pin for manual or software-controlled resets.

Important Considerations and Best Practices

  • Voltage Levels: Ensure the I/O voltage levels of your microcontroller match the module's requirements (3.3V logic).
  • Bypass Capacitors: Place a 0.1 µF capacitor close to the VCC pin to stabilize the power supply.
  • Magnetometer Calibration: Perform a calibration routine to account for magnetic interference in your environment.
  • Mounting Orientation: Ensure the module is mounted securely and aligned correctly for accurate motion tracking.

Example Code for Arduino UNO

Below is an example of how to interface the ICM20948_変換モジュール with an Arduino UNO using the I²C interface:

#include <Wire.h>

// ICM20948 I²C address (default: 0x68 if SDO is low, 0x69 if SDO is high)
#define ICM20948_ADDR 0x68

// Register addresses
#define WHO_AM_I 0x00  // WHO_AM_I register address
#define PWR_MGMT_1 0x06  // Power management register
#define ACCEL_XOUT_H 0x2D  // Accelerometer X-axis high byte

void setup() {
  Wire.begin();  // Initialize I²C communication
  Serial.begin(9600);  // Initialize serial communication for debugging

  // Wake up the ICM20948
  Wire.beginTransmission(ICM20948_ADDR);
  Wire.write(PWR_MGMT_1);  // Access power management register
  Wire.write(0x01);  // Set clock source
  Wire.endTransmission();

  // Verify communication
  Wire.beginTransmission(ICM20948_ADDR);
  Wire.write(WHO_AM_I);  // Access WHO_AM_I register
  Wire.endTransmission();
  Wire.requestFrom(ICM20948_ADDR, 1);  // Request 1 byte
  if (Wire.available()) {
    byte whoAmI = Wire.read();
    Serial.print("WHO_AM_I: 0x");
    Serial.println(whoAmI, HEX);  // Print WHO_AM_I value
  }
}

void loop() {
  // Read accelerometer data
  Wire.beginTransmission(ICM20948_ADDR);
  Wire.write(ACCEL_XOUT_H);  // Access accelerometer X-axis high byte
  Wire.endTransmission();
  Wire.requestFrom(ICM20948_ADDR, 2);  // Request 2 bytes (high and low)

  if (Wire.available() == 2) {
    int16_t accelX = (Wire.read() << 8) | Wire.read();  // Combine high and low bytes
    Serial.print("Accel X: ");
    Serial.println(accelX);  // Print accelerometer X-axis value
  }

  delay(500);  // Delay for readability
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. No Response from the Module:

    • Ensure the module is powered correctly (check VCC and GND connections).
    • Verify the I²C address (default is 0x68 or 0x69 depending on the SDO pin state).
    • Check for proper pull-up resistors on the SDA and SCL lines.
  2. Incorrect or No Sensor Data:

    • Confirm that the module is initialized correctly (check the PWR_MGMT_1 register).
    • Verify the mounting orientation of the module.
    • Perform a calibration routine for the accelerometer, gyroscope, and magnetometer.
  3. Communication Errors:

    • Ensure the I²C or SPI connections are secure and free of noise.
    • Check the clock speed of the communication interface (I²C: max 400 kHz, SPI: max 7 MHz).

FAQs

  • Q: Can the ICM20948_変換モジュール be used with 5V logic?
    A: No, the module operates at 3.3V logic. Use a level shifter if interfacing with a 5V microcontroller.

  • Q: How do I calibrate the magnetometer?
    A: Perform a figure-eight motion with the module while collecting data to calculate offsets and scale factors.

  • Q: What is the maximum sampling rate?
    A: The maximum sampling rate is 1 kHz for the accelerometer and gyroscope.

This documentation provides a comprehensive guide to using the ICM20948_変換モジュール effectively in your projects.