Gravity: 10 DOF IMU Sensor

SKU: SEN0696

Gravity: 10 DOF IMU Sensor expertly combines a 3-axis accelerometer, gyroscope, magnetometer, and air pressure sensor to offer high precision motion detection and dynamic spatial positioning. Supporting I2C communication and equipped with open-source Arduino and Python libraries, this sensor is perfect for rapid prototyping and flexible integration. Its comprehensive capabilities make it ideal for applications in wearable devices, smart watches, IoT devices, drones, and environmental monitoring. Whether you're an engineer or a hobbyist, Gravity's sensor offers the precision and adaptability needed for cutting-edge projects. Explore tutorials, projects, and more to fully integrate this sensor into your innovative designs.

Downloadable Resources

  • Docs
  • Tech Specs
  • 1. Example Code for Arduino-Reading Data via I2C

    This tutorial demonstrates how to initialize a 10-axis IMU sensor and directly read acceleration, angular velocity, magnetometer, and barometric pressure data using the polling method.

    2. Example Code for Arduino-Reading Data via UART and Interrupts

    This tutorial demonstrates how to configure a 10-axis IMU sensor to trigger a hardware interrupt when data is ready, and read acceleration, angular velocity, and magnetometer data in the interrupt service routine for efficient data acquisition.

    3. Usage Example for Host Computer Software

    This guide provides a detailed walkthrough on connecting the 10 DOF IMU sensor to the RainbowLink V2 using host computer software. The process includes hardware and software setup, configuring communication modes, and collecting real-time data such as acceleration and gyroscope values.

    4. Modbus Register Definitions

    This guide details Modbus Register Definitions, covering both input and holding registers. Learn about function codes and how to read 3-axis acceleration data from a 10DOF IMU sensor.

    Reference

    Specification

    Basic Parameters

    Parameter Value
    Operating Voltage DC 3.3–5 V
    Operating Current 3.59 mA
    Communication Interface I2C / UART
    Interface Type PH2.0-4P (Gravity pin order) / 2.54 mm pin header
    I2C Address 0x4A (default) / 0x4B / 0x4C / 0x4D
    Programmable Interrupt Pins BMI323: 2 channelsBMM350: 1 channelBMP581: 1 channel

    Accelerometer Parameters

    Parameter Value
    Measurement Range ±2 g, ±4 g, ±8 g, ±16 g
    ADC Resolution 16-bit
    Sensitivity ±2 g range: 16384 LSB/g±4 g range: 8192 LSB/g±8 g range: 4096 LSB/g±16 g range: 2048 LSB/g
    Sensitivity Error ±0.5%
    Zero-g Offset ±50 mg
    Output Data Rate (ODR) High Performance / Normal Mode: 12.5 Hz ~ 6400 HzLow Power Mode: 0.78125 Hz ~ 400 Hz

    Gyroscope Parameters

    Parameter Value
    Angular Velocity Range ±125, ±250, ±500, ±1000, ±2000 °/s
    ADC Resolution 16-bit
    Sensitivity ±2000 °/s range: 16.384 LSB/(°/s)±1000 °/s range: 32.768 LSB/(°/s)±500 °/s range: 65.536 LSB/(°/s)±250 °/s range: 131.072 LSB/(°/s)
    Sensitivity Error ±3% (without auto-calibration) / ±0.7% (after auto-calibration)
    Zero-rate Offset ±1 °/s
    Output Data Rate (ODR) High Performance / Normal Mode: 12.5 Hz ~ 6400 HzLow Power Mode: 0.78125 Hz ~ 400 Hz

    Magnetometer Parameters

    Parameter Value
    Operating Modes Normal mode (periodic measurement), Forced mode (triggered measurement), Sleep mode (low-power standby)
    Measurement Range ±2000 µT
    Magnetic Resolution ~0.1 µT
    Zero-field Offset Drift (after soldering)Zero-field Offset (after calibration) ±2 µT (-40 °C ~ +85 °C, calibrated with Bosch eCompass software)
    X/Y Axis Gain Error ±1% (25 °C, after API compensation)
    Z Axis Gain Error ±3% (25 °C, after API compensation)
    Temperature Coefficient of Sensitivity (TCS) ±0.010 %/K
    Temperature Offset Error (TCOerr) ±200 nT/K
    Normal Mode ODR 400 / 200 / 100 / 50 / 25 / 12.5 / 6.25 / 3.125 / 1.5625 Hz (typical tolerance ±2%)
    Max Trigger Frequency in Forced Mode 200 Hz (only when avg=0)
    X/Y Axis Output Noise (rms) 190 nTrms (ODR=100 Hz, 2 samples averaged, 3 dB bandwidth = ODR/2)
    Z Axis Output Noise (rms) 450 nTrms (ODR=100 Hz, 2 samples averaged, 3 dB bandwidth = ODR/2)

    BMP581 Parameters

    Parameter Value
    Pressure Measurement Range 30 kPa ~ 125 kPa
    Relative Pressure Accuracy 700~1100 hPa, 15~55 °C, 10 kPa step, typ. ±6 Pa
    Pressure Temperature-induced Offset ±0.5 Pa/K
    Pressure Resolution 1/64 Pa (approx. 0.0156 Pa)
    Pressure Long-term Drift (1 year) ±10 Pa
    Temperature Measurement Range -40 °C ~ +85 °C
    Absolute Temperature Accuracy -5~55 °C / full temp range: ±0.5 K
    Temperature Resolution 1/65536 °C (approx. 0.000015 °C)
    Output Data Rate (ODR) Normal mode: 0.125 Hz ~ 240 Hz
    Oversampling Ratio (OSR) Pressure / Temperature independently configurable: 1x, 2x, 4x, 8x, 16x, 32x, 64x, 128x
    Relationship between OSR, Noise & ODR Higher oversampling = lower noise & lower data rate (e.g., 128x OSR → 12 Hz ODR in continuous mode)
    Filtering Built-in IIR low-pass filter with configurable coefficient (0~127); independent filtering for pressure and temperature

    Physical Dimensions

    Parameter Value
    PCB Size 32 mm × 27 mm
    Mounting Hole Spacing 20 mm
    Mounting Hole Diameter 3 mm

    Pinout

    SEN0696-Pinout

    Interface Pin Description

    Pin Silkscreen Function Description
    + Positive power supply (3.3–5 V input)
    - Negative power supply (GND)
    C/R Multifunction pin: SCL in I2C mode, RXD in UART mode
    D/T Multifunction pin: SDA in I2C mode, TXD in UART mode
    INT1 BMI323 interrupt output pin 1
    INT2 BMI323 interrupt output pin 2
    INT3 BMM350 interrupt output pin
    INT4 BMP581 interrupt output pin

    I2C Address Setting Switch Description

    I2C Address A0 A1
    0x4A 0 0
    0x4B 1 0
    0x4C 0 1
    0x4D 1 1

    Notes

    • The setting of the I2C/UART switch is saved when powered off. The new mode takes effect after restarting the device.

    Was this article helpful?

    TOP