Hi all,
I am using an ICM20649 sensor, controlling it with an STM32H7 microprocessor.
I ported the “invn.firmware.emd-mcu.nucleo.icm20649-iar-cm4-fpu-1.1.0” example code to my project and I am successfully controlling the sensor to get accelerometer, gyroscope and quaternion data @200Hz.
We were noticing an important drift on the quaternion (around 1 degree/sec!), due to the gyroscope mean values that were not around 0.
So, after some investigation, we figure out to put the sensor in ‘low noise’ mode (accel and gyro not duty-cycled).
With this configuration, we noticed that, after some amount of time, the gyroscope data stabilize around 0 and then the quaternion drift disappears.
But the time needed to the gyro to get stabilized seems to be really random. Please look at the 2 attached images: in the first one it takes only 15 seconds, while in the second one it takes more than 1 minutes. We experienced also time of 5 minutes or more needed to stabilize (on the same hardware and in same condition)!
Our questions are:
- What happens after this time? It is the run-time calibration or it is the time needed for the transition from standard to low-noise mode reported in the datasheet?
- From what depends the time needed?
- Is there any way to know from the sensor when it ended the process?
- How can we try to reduce or at least have a more constant time of stabilization?
Thank you everyone that could have any idea on how try to fix it!