IMU sensor comparison

Continuing the quest started earlier for a good IMU, I listed some popular accelerometers, gyroscopes, magnetometers, and pressure sensors with their most(?) important attributes.

I have to admit that I’m quite unexperienced with these so I could have easily left off something important or listed something irrelevant. And trying to figure out the exact behaviour for several sensors is too time consuming so at least the maximum sampling rate might not be what you actually get out from the sensor in all cases. All corrections are welcome.


[table "4" seems to be empty /]

Judging from the numbers the MMA8451Q from Freescale has decent sensitivity and low noise. And it’s really cheap at Digikey unless I’ve missed something. MPU-60×0 is the most sensitive but with highest noise. It’s also the most expensive and it seems to be really hard to buy.


[table "3" seems to be empty /]

I’ve understood that the gyroscope is the most important sensor in an IMU as it provides the change in the orientation, the rest are used just to compensate the gyroscope drifting. Based on the numbers the MPU-60×0 is the best one. It’s also quite expensive but since it contains both the accelerometer and the gyroscope, it’s only 6 € each. The MPU-3050 is similar to MPU-60×0 but doesn’t have internal accelerometer and the noise is slightly larger.

LSM330DL from STMicroelectronics contains also both the accelerometer and the gyroscope. It doesn’t quite match up to MPU-60×0 but at least Digikey has plenty of LSM330DLTR in stock.


[table "5" seems to be empty /]

There seems to be clearly less options in magnetometers and their maximum sampling rates seem to be less than with the other sensors. The LSM303 from STMicroelectronics is an exception which makes me wonder if I’ve read the datasheet correctly (EDIT: I guess I haven’t, read more from in here).

The HMC5883L from Honeywell is one of the most popular magnetometers in quadrotor IMUs currently but its sampling rate is quite low.

Pressure sensors

[table "6" seems to be empty /]

MS5611 from Measurement Specialties is probably the best sensor at the moment but like the MPU-60×0 it’s hard to actually get one. BMP085 from Bosch is common even though its sampling rate is really low. The low sampling rate is not that big issue as the pressue sensor used to control the hight which is not changing as rapidly as the orientation of the device.

All in all, it’s more tricky to select the sensors for an IMU than I originally assumed. Magnetometers doesn’t have any obvious winner although the LSM303 could be a good solution for a high sampling rate IMU. For the rest the MPU-60×0 + MS5611 would be nice but since their availability is so poor something else could be a safer bet. LSM330 + LSM303 + BMP085 would enable fast orientation calculation (EDIT: or not) and decent altitude estimation for slow paced movement.

This entry was posted in Hardware and tagged . Bookmark the permalink.

3 Responses to IMU sensor comparison

  1. vpapanik says:

    BMA180 reports a noise floor of 150 μg/sqrt(Hz) at 2g range and 1200 Hz bandwidth while MMA8451Q reports 99 mg/sqrt(Hz) at 400 Hz. Is it possible to compare between these two, while they refer to a different bandwidth ? Thanks

    • Tuomas Kulve says:

      Unfortunately I don’t know the details well enough to answer that one.

  2. What is the difference between accelerometers, gyroscopes, magnetometers, and pressure sensors?