I am working with BNO055 on a wearable device wherein I frequently make use of suspend and normal power modes of BNO055.
The datasheet documents that the sensor requires calibration on every POR which is fine with me as POR is a rare event for me.
But when I read the calibration status register (page 0 0x35), to read the calibration status, the system calibration bits behave strangely.
Initially after POR all bits show un calibrated status. The gyroscope and magnetometer get calibrated pretty fast ( I am using NDOF mode) but the accelerometer takes a long time to calibrate. I am following the procedure documented in this video: https://www.youtube.com/watch?v=Bw0WuAyGsnY&t=11s
Eventually the accelerometer gets calibrated (sometimes it takes time in minutes) but system calibration fluctuates between 3 (calibrated) and other values.
This happens more frequently when I change power modes (Normal --> Suspend --> Normal).
If anyone could provide more information regarding this it would be of great help.
I understand that if location changes the calibration can be affected but the magnetometer calibration looses even if I am at the same location.
How much time do you mean by "extended period of time"? In our case we see that sometimes the device looses calibration even if it is kept in suspend mode for around 5 - 10 mins.
"extended period of time" is certainly not 5-10min. To notice significant changes to the magnetic field you woul need mutiple weeks or months.
I am working on a few more tests like turning radio off and verifying sensor performance and saving callibration values to permenant memory. Will update you soon with the results.
I would be suprised that the RF transmission itself causes an issue, but rather if strong electrical current variation in traces close to the sensor.
If you have issue with the device at rest, it is always alwasy one of 2 things:
Both cases can be detected with a datalog.
In case #1: Move away the sensor from varying magnetic field sources, or move the magnetic field sources from the sensor
In case #2: Move the sensor away from distortion sources, or compensate for the distortion using Soft-Iron Calibration. Our API supports it even if the feature is not (yet) documented in our datasheet. Unless you already know how to generate this compensation matrix, it is far easier to relocate the sensor.