jrowberg / i2cdevlib

I2C device library collection for AVR/Arduino or other C++-based MCUs
http://www.i2cdevlib.com
3.92k stars 7.52k forks source link

About Self Test #396

Open jmcornil opened 6 years ago

jmcornil commented 6 years ago

Hello everybody

On the page 7 the MPU Hardware Offset Registers Application Note, it is written about accel offset Bit 0 on the low byte of each axis is a reserved bit and needs to be preserved

When I read the code of _i2cdevlib/Arduino/MPU6050/examples/IMU_Zero/IMUZero.ino it don't seems to me that this is taken in account.

Can someone explain me the importance or the use by invensense of this Bit 0 ?

When is there temperature compensation ? When it is 1 or when it is 0 ?

Thank's in advance

JM CORNIL

i3130002 commented 5 years ago

This might be too late for you though may help others. According to this post You should do this on your own. In case you want to escape that you can use DMP

Post content:

If you use MPU6050's DMP, you dont have to care for temperature calibration. I have been checking MPU6050 vs a Microstrain 3DM-GX2, and it seems so.

If not using DMP you have to compensate temperature, it is critical if you are using it in something like a quadrotor or airplane, etc. What I did is to leave the MPU6050 still reading values and temperature changing, then I obtain a linear (or cuadratic, don't remember) offset depending on temperature, and every time I read the sensor I also check temperature and compensate it.

Without changing temperature or air movement, I noticed it takes like 10 or 15 minutes to stabilize.