We appear to be getting a small number of BNO055 parts (with firmware 0x0311) come through that will ultimately see the heading drift over an extended period of time. The application requires a stationary sensor to not exceed 20 degrees in any of heading, roll or pitch over 12 hours. No issues with roll or pitch. Only heading. We have been ensuring that sensors are calibrated prior to running our tests on these few problem sensors and that they have passed self-tests. The sensors are configured for NDOF operation mode (0x0C).
Is there more we need to be doing? Should we be monitoring the calibration status of each of system, mag, gyr and acc? Are there other register entries we should be monitoring? Is it possible to determine whether sensors are faulty at all? - this would be most useful prior to deploying them out into the field, something that does not require testing over an extended period of time (more than 10 minutes).
Thank you in advance.
Some further notes:
Euler readings are currently relied on to determine heading, roll and pitch. I have seen suggestions from others to use quaternion readings as a workaround for a potential bug in this version of the firmware to an issue in the operations performed to calculate the euler angle on the BNO055. This workaround does not apply to my situation. The drift is seen to follow regardless of whether the heading angle is based off euler or quaternion registers.
Thank you for your response.
We are aware of the impact the operating environment can have on these sensors. However, given that we have been testing quite a number of these modules to date in the same environment (approximately 20) and this is just the second BNO055 sensor to exhibit substantial drift would suggest that maybe the level of susceptibility to such environmental factors vary somewhat.
We have tested two modules side by side, one known good and one known bad, and within the same environment the bad sensor will see the heading drift signficantly while the good sensor will maintain its heading to close to +/- 0.5 degrees.
For now we'll look at monitoring the calibration status at least during production testing. Would you suggest ensuring all four status should be monitored for a status of 3/3? i.e. system, gyroscope, accelerometer and magnetometer calibration status? At least during production testing?
During normal operation when out in the field, I have seen others suggest only using reads if the calibration status for each are 2 or higher - would this be advised?
Any further thought on this?
I shall look into the feasibility of using a compass to determine the amount of error within a single BNO055 part however at this stage it is looking more and more likely production testing will have to undergo some level of extended burn-in test on each board to ensure the reliability of each individual sensor which is less than desirable.