I am looking at using the BNO055 IMU to obtain heading in NDOF mode and am curious how auto calibration works.
Is auto calibration writing its values on a regular basis (i.e. every minute) or is it triggered by events? How does it know to write to the offsets in the registers? How often would this be done?
I understand auto calibration cannot be disabled, but I was wondering if there was some sort of way to work around this. Is it possible to write to the calibration offset registers at a regular basis to prevent auto calibration or perhaps be able to restore the desired calibration offset?
The reason I am concerned about auto calibration is because I plan to use the IMU fixed on a moving vehicle. Once it is mounted it would be impossible to go through the initial calibration procedure. The best I could do would be to drive the vehicle in figure-eights.
Any thoughts or feedback would be greatly appreciated.
We made a video a while back on BNO055 calibration.
The most important calibration is Gyroscope (at standstill), followed by Magnetometer (pretty quick once gyroscope is calibrated).
Accelerometer calibration is generally not required for most use-cases. It depends how tolerant your application is to a pitch&roll offset.
Calibration is always online, and values a continuously updated when the right movements are detected. This can happens multiple times per second, or never at all, depending on the motion.
So really the only way to properly handle calibration save&restore, is to save the offsets when powering off, and restore it after power-on