Skip to main content Link Search Menu Expand Document (external link)

How to choose an IMU

  • Don’t consider price as your main deciding factor, the cheapest option might still have the worst price/performance.- Consider expected G loads, then double or triple for safety margins.
  • Lower drift figures are usually better but be wary of incorrectly reported measurements.
  • Bosch and ST have FAR better sensing topology than Invensense almost as a rule
  • Note that the BNO055 has onboard sensor processing you pay extra for that will NOT work in a rocket context, buy the BMX055.
  • Spending that bit extra on a better sensor will help alleviate pain down the line as you don’t have to fight it as much
  • Consider ditching breakout boards, instead design your own integration on board, follow the datasheet recommended schematic and layout.
  • Breakouts being attached to your board can lead to sensor decoupling sensed motion from your airframe due to waffling around which is why we don’t really recommend using them even though it seems easier. SMD soldering is a useful skill and opens the door to much more accurate sensor implementations.

IMU Suggestions

DO NOT USE THE MPU SERIES. Their sensing technology is ancient, drifts more than Initial D, has incorrect datasheet representation, and useless DMP.

Supply your sensors with a clean, quiet, and correct voltage reference for best results

A = Accelerometer G = Gyroscope M = Magnetometer

Name Price DOF Ranges Precision Drift figures Library? Recommended
MPU6050 $2 (EOL) 6 (A+G) ±16g ±2000°/sec 16Bit ±50mg(up to ±80mg) ±20º/s Many Bad drift, bad lifetime, do not use
MPU9250 $3 (EOL) 9 (A+G+M) ±16g ±2000°/sec 16Bit ±50mg(up to ±80mg) ±20º/s Many Same sensors as 6050, do not use
LSM9DS1 $6.70 9 (A+G+M) ±16g ±2000°/sec ±16gauss 16Bit ±90mg(stable) ±30º/s ±1 gauss Many Yes, good drift figures and a proven architecture
LSM6DS0 $5.25 6 (A+G) ±16g ±2000°/sec 16Bit ±20mg ±1º/s Some Maybe, really recommend the LSM9DS1 a bit more due to it being proven out and better supported
LSM6DS032 $3.79 6 (A+G) ±32g ±2000°/sec 16Bit ±20mg ±0.5º/s One Maybe, a newer sensor with support from adafruit
BNO055 $11.16 9 (A+G+M) ±16g ±2000°/sec ±13gauss 16Bit(G/M) 14bit(A) ±80mg ±2º/s ±.04 gauss Many No, built-in sensor fusion fails under flight loads
BMX055 $7.27 9 (A+G+M) ±16g ±2000°/sec ±13gauss 16Bit(G/M) 14bit(A) ±80mg ±2º/s ±.04 gauss None Yes, same sensors as the BNO but without the processor
BMI055 $6.00 6 (A+G) ±16g ±2000°/sec 16Bit ±80mg ±2º/s None Yes, same sensors as BNO minus magnetometer and processor
BMI088 $7.30 6 (A+G) ±24g ±2000°/sec 16Bit ±20mg ±1º/s One Yes, best choice, a good newer sensor with lower drift figures than others

There are literally hundreds of IMU’s out there to choose from. Make sure you do your research and follow this guide to find the best one for your project. Keep in mind, once you receive your IMU, you have a lot of software to write to pull orientation out of it. There is no simple way to do this, just do your research and work through it bit by bit.