MPU9250 IMU Accelerometer and Gyro Data Format

1.1k views Asked by At

From the data sheet, it can be found that each of the six output channels of MPU9250 has 2 bytes and 16 bits resolution. I was wondering about the 16 bits binary values, are they in the format of two's complement? Or when the sensor is stationary, say acceleration along x-axis is zero, then the 2 bytes in combination gives 2^16/2, namely, half way of the max possible number? (assuming there is no offset)

1

There are 1 answers

0
Beto On

Yes, two's complement.

You can see this in 3.2 Accelerometer Specifications in the datasheet!

After reading the 14 bytes (using I2C) I use: (((short)raw[4])<<8)|raw[5] to get a signed 16 bit value for accel z-axis for example. The accel and gyro have the MSB first (in the raw array), but for the magnetometer the LSB comes first.

If the sensor were unbiased, stationary, and perfectly level, you should get 0,0,1g for the accel, and 0,0,0 for the gyro. Actually the Earth is rotating at 360°/day, so to be precise, you might have to take that into consideration, but that would depend on the sensor's orientation, and even your latitude.