Skip to content

Inertial Measurement Units (IMUs)

Published On:
Dec 2, 2014
Last Updated:
Aug 16, 2024

The IMU can either consist of 3 separate chips mounted onto a small piece of PCB, or a single system-on-chip that integrated all of the components into one package.

They normally combine accelerometers. gyroscopes and sometimes magnetometers together as a single device (monolithic package). Devices with accelerometers and magnetometers are usually called 6-axis devices, while ones that also have magnetometers are called 9-axis devices.

The can include digital motion processors (DMPs). This offloads some of the processing required by the host microcontroller. They can also provide additional features such as motion gesture recognition. They do not normally include more advanced processing tasks such as an attitude and heading reference system (AHRS). This normally has to be provided by the host microcontroller.

The accelerometers usually exploit the Coriolis effect and a capacitor sensor to measure the angular rate in a axis.

Some IMUs negate the temperature drift by measuring their own temperature and performing self-compensation for these errors.

Performance

The performance of IMU is normally expressed as a full-scale range and resolution for each sensor. The resolution might be specified in terms of the number of bits of the ADC. A “Sensitivity Scale Factor” might also provided, which is the full-scale range divided by the resolution. Sensitivity is usually specified at 100Hz and per lowest significant bit (LSB).

IMUs calculate their current position based on data from it’s last known position(s), and they suffer from locational errors which accumulate over time. This is called dead reckoning. GPS does not have this problem.

Communication

SPI is preferable over I2C when high data throughput’s are required.

GPS

More and more GPS units are beginning to support integration with an IMU unit to improve their accuracy.

Software

RTIMULib is a pretty nice software package which makes it easier to get IMUs working with operating systems (including “embedded” ones such as the RaspberryPi). The writer, “richards-tech”, also has a version of this for the Arduino, which makes it easy to use the Arduino as an I2C host to read back data from popular IMUs, send it via UART to a computer, where it can be processed.

Playing around with RTHostIMUGL and a connected IMU through an Arduino.

Packages

A big advantage of an IMU is the reduced PCB footprint due the the combination of multiple sensors into a single package. These are sometimes called system-in-packages (SIPs). 3x3x1mm package.

Examples

MPU-9250

ManufacturerIvenSense
Part NumberMPU-9250
Supply Voltage2.4-3.6V
Gyroscope Full-scale Range±250º/s, ±500º/s, ±1000º/s, ±200º/s
Gyroscope Sensitivity (max)7.63mº/LSB
Gyroscope Accuracy±3%
Accelerometer Full-scale Range±2g, ±4g, ±8g, ±16g
Accelerometer Sensitivity (max)30.5ug/LSB
Accelerometer Accuracy (initial)±3%
Magnetometer Full-scale Range±4800uT
Magnetometer Sensitivity600nT/LSB
Magnetometer Accuracy (initial calibration accuracy)±300uT
Communication InterfacesI2C, SPI
PackageQFN-24 3x3x1mm P0.40 Pad (see comments below)
Price (as of Dec 2014)US$12.70 (1)

It has an on-board digital motion processor (DMP). Note that although the QFN package this IMU comes in has a exposed pad on the bottom, InvenSense recommend that you do not connect it to anything to reduce the amount of stress put on the sensitive MEMS device.

LSM9DS1

ManufacturerST
Part NumberLSM9DS1
Supply Voltage1.9-3.6V
Gyroscope Full-scale Range±245º/s, ±500º/s, ±2000º/s
Gyroscope Sensitivity (max)7.48mº/LSB
Gyroscope Accuracy±%
Accelerometer Full-scale Range±2g, ±4g, ±8g
Accelerometer Sensitivity (max)61.0ug/LSB
Accelerometer Accuracy (initial)±%
Magnetometer Full-scale Range±400uT, ±800uT, ±1200uT,±1600uT
Magnetometer Sensitivity12.2nT/LSB
Magnetometer Accuracy (initial calibration accuracy)±uT
Communication InterfacesI2C, SPI
PackageLGA-24L (3.5x3.0x1.0mm)
Price (as of Dec 2014)US$8.35 (1)

The LSM9DS1 is part of the iNEMO family.

ST ASM330LHB

The STMicroelectronics ASM330LHB is a 6-axis IMU designed for ASIL-B automotive applications. It comes in a LGA-14 package and contains a 3-axis accelerometer and 3-axis gyroscope1.

It supports the I2C, MIPI I3C and SPI communication interfaces for commuincation to a MCU1.

The ST ASM330LHB 6-axis IMU in a LGA-14 package1.

One differentiating feature of the ASM330LHB is that it has been designed to meet ASIL-B automotive safety requirements. Two ASM330LHB’s (for redundancy) can be used together with ST’s “Safety Engine” firmware module to achieve ASIL-B 2. The image below shows the high-level architecture proposed by ST:

Diagram showing how 2 ASM330LHB’s can be used together with ST’s “Safety Engine” firmware module to achieve ASIL-B2.

Others

Analog devices makes high-end military grade IMUs.

ST makes the iNEMO family of IMU modules.

DigiKey lists IMUs under the section Sensors, Transducers -> Multifunction. The STMicroelectronics LSM330TR is the cheapest accelerometer/gyro I could find on DigiKey as of Dec 2014 with a price of US$3.40 (100).

ST and InvenSense are the dominant manufacturers of the chips used on the Sparkfun IMU modules.

The cheapest 9-axis IMU I have found on the internet ANYWHERE is the GY-85 sold by DealExtreme, which as of Dec 2014 is US$9.49 (1).

Footnotes

  1. STMicroelectronics (2023 Nov). High-accuracy 6-axis inertial measurement unit (IMU) for ASIL B automotive applications. Retrieved 2024-08-16, from https://www.st.com/resource/en/datasheet/asm330lhb.pdf. 2 3

  2. STMicroelectronics (2023, Feb). AN5691 - Application Note - ASM330LHBxx_ASILB_library safety manual. Retrieved 2024-08-16, from https://www.st.com/resource/en/application_note/an5691-asm330lhbxxasilblibrary-safety-manual-stmicroelectronics.pdf. 2