Search code examples
accelerometersensorsgyroscopemagnetometerimu

What does the full scale range in a IMU MPU9250 datasheet signify and which is better to use?


I have MPU9250 IMU, which I am working on to get orientations from the sensor output data. While exploring the MPU9250 (also other sensor such as BNO055) datasheet I came across the full scale range for accel & gyro given as ±2 ±4 ±8 ±16 (g) and ±250 ±500 ±1000 ±2000 (deg/s). I did not understand what it signifies, but seems important.

I tried searching online related to full scale range but did not get explanation regarding it. I request if someone could help me in understanding by providing good explanation or a source which I can go through, I'd really appreciate that.

Also which one would be better to use?

Thanks.


Solution

  • I originally wrote this answer for this Drones.SE thread and am reposting here.

    TL;DR:

    The configurable scale ranges for the accelerometer, gyroscope, and magnetometer on the MPU-9250 IMU affect the maximum resolution and range of the reported values.

    As you increase the full-scale range setting, the maximum value/rate that can be reported by the IMU before the IMU is saturated increases, but the resolution of the value/rate decreases.


    Section 3.1 of the datasheet for the Invensense MPU-9250 has a table that states the "Gyroscope ADC Word Length", which represents how large the values reported over the I2C or SPI interfaces are. In this case, the gyro word length is 16 bits. A 16 bit two's complement binary number (explained wonderfully in this video by Ben Eater) can range from -32768 to +32767.

    enter image description here

    Take the example of the ±500 °/s full-scale range. The unit resolution of the two's complement value reported by the gyro (aka Least Significant Bit/LSB resolution) in the ±500 °/s full-scale range is: 32767 / 500 = 65.534 LSB/(°/s) (degrees per second per LSB). This is not coincidentally labeled in the graph as the "Sensitivity Scale Factor" for the FS_SEL=1 condition.