<p>The full scale range is the largest value that the sensor can report; this is usually a balance of sensitivity to word length. If you have 8 bits to report the value, how many deg/s do you make one bit? The more deg/s you use per bit, you can report a bigger full-scale value but you loose sensitivity as the minimum change reported increases.</p>

<p>As an example, think of a car speedometer which can only show 2 digits. The full scale range would be ±99 kph - it cannot tell you if you are doing 100+, even if you are.<br>
However, this 2-digit display could show <code>speed / 10</code> instead; it can now show up to <strong>99</strong>9 kph, but you cannot tell if you are doing <strong>12</strong>6 or <strong>12</strong>9 as you have decreased the resolution to increase the full scale range.</p>

CC BY-SA 4.0
2021-12-12T13:13:00.407Z
This was great. thanks a lot
Hossein
CC BY-SA 4.0
2020-06-05T07:37:49.903Z
2020-06-05T07:37:49.903Z
Kralc
<h1>TL;DR:</h1>
<p>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.</p>
<p>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.</p>
<hr />
<p>Section 3.1 of the <a href="https://invensense.tdk.com/wp-content/uploads/2015/02/PS-MPU-9250A-01-v1.1.pdf" rel="nofollow noreferrer">datasheet for the Invensense MPU-9250</a> has a table that states the &quot;<em>Gyroscope ADC Word Length</em>&quot;, which represents how large the values reported over the I<sup>2</sup>C or SPI interfaces are. In this case, the gyro word length is 16 bits. A 16 bit two's complement binary number (<em>explained wonderfully in <a href="https://www.youtube.com/watch?v=4qH4unVtJkE" rel="nofollow noreferrer">this video by Ben Eater</a></em>) can range from -32768 to +32767.</p>
<p><a href="https://i.sstatic.net/7YYuY.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/7YYuY.png" alt="enter image description here" /></a></p>
<p>Take the example of the ±500 °/s full-scale range. The unit resolution of the two's complement value reported by the gyro (<em>aka Least Significant Bit/LSB resolution</em>) in the ±500 °/s full-scale range is: <span class="math-container">$\frac{32767}{500} = 65.534$</span> LSB/(°/s) (<em>degrees per second per LSB</em>). This is not coincidentally labeled in the graph as the &quot;<em>Sensitivity Scale Factor</em>&quot; for the <code>FS_SEL=1</code> condition.</p>

CC BY-SA 4.0
2020-06-05T11:00:38.207Z
Thank you @ifconfig for giving a detailed explanation. I did not know full scale range and sensitivity are dependent. Also does that mean a reading of sensitivity 65.534 LSB/(°/s)  equals 1 rotation, if I have my full scale selected as 500 °/s ?
TheLazy
CC BY-SA 4.0
2020-06-05T15:41:26.310Z
No, @TheLazy. `Actual Gyro Rate = Sensor Value * Sensitivity Scale Factor`, so one full rotation, or 360°/s, translates into a sensor value equaling `360 °/s / 65.534 LSB/(°/s) = 5.49`. Does this make sense?
ifconfig
CC BY-SA 4.0
2020-06-06T02:40:37.357Z
Thank you for clarifying it.
TheLazy
CC BY-SA 4.0
2020-06-05T04:56:20.907Z
2020-09-25T22:41:39.967Z
2020-09-25T22:41:39.967Z
ifconfig
<p>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 &amp; gyro given as <code>±2 ±4 ±8 ±16 (g)</code> and <code>±250 ±500 ±1000 ±2000 (deg/s)</code>. I did not understand what it signifies, but seems important.</p>

<p>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.</p>

<p>Also which one would be better to use?</p>

<p>I have asked the same question on <a href="https://stackoverflow.com/questions/62191547/what-does-the-full-scale-range-in-a-imu-mpu9250-datasheet-signify-and-which-is-b">Stack Overflow</a>. I really need help on this.</p>

<p>Thanks.</p>

<sensor><imu>
What does the full scale range in a IMU MPU9250 datasheet signify?
TheLazy
# What does the full scale range in a IMU MPU9250 datasheet signify?

(Asked by: username_0 on 2020-06-05)

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?

I have asked the same question on [Stack Overflow](https://stackoverflow.com/questions/62191547/what-does-the-full-scale-range-in-a-imu-mpu9250-datasheet-signify-and-which-is-b). I really need help on this.

Thanks.

**Tags:** sensor, imu

---

## 2 answers

### Answer by username_3 on 2020-06-05. Score: 6 | Accepted answer

# 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](https://invensense.tdk.com/wp-content/uploads/2015/02/PS-MPU-9250A-01-v1.1.pdf) 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](https://www.youtube.com/watch?v=4qH4unVtJkE)*) can range from -32768 to +32767.

[![enter image description here](https://i.sstatic.net/7YYuY.png)](https://i.sstatic.net/7YYuY.png)

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: $\frac{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.

> **Comments:**
> **username_0**: Thank you @ifconfig for giving a detailed explanation. I did not know full scale range and sensitivity are dependent. Also does that mean a reading of sensitivity 65.534 LSB/(°/s)  equals 1 rotation, if I have my full scale selected as 500 °/s ?  
> **username_3**: No, @TheLazy. `Actual Gyro Rate = Sensor Value * Sensitivity Scale Factor`, so one full rotation, or 360°/s, translates into a sensor value equaling `360 °/s / 65.534 LSB/(°/s) = 5.49`. Does this make sense?  
> **username_0**: Thank you for clarifying it.  

---

### Answer by username_1 on 2020-06-05. Score: 5

The full scale range is the largest value that the sensor can report; this is usually a balance of sensitivity to word length. If you have 8 bits to report the value, how many deg/s do you make one bit? The more deg/s you use per bit, you can report a bigger full-scale value but you loose sensitivity as the minimum change reported increases.

As an example, think of a car speedometer which can only show 2 digits. The full scale range would be ±99 kph - it cannot tell you if you are doing 100+, even if you are.  
However, this 2-digit display could show `speed / 10` instead; it can now show up to **99**9 kph, but you cannot tell if you are doing **12**6 or **12**9 as you have decreased the resolution to increase the full scale range.

> **Comments:**
> **username_2**: This was great. thanks a lot  

---

