Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    BNO055 Heading Drifts

    BNO055 Heading Drifts

    joshld
    Established Member

    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.

    18 REPLIES 18

    joshld
    Established Member

    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.

    In NDOF mode, pitch and roll drift and compensated by the accelerometer sensing earth's gravity, and heading drift is compensated by the magnetometer sensing earth's magnetic field.

    In most cases this is not related to the part itself, but rather to environmental factors. Keep a lookout for the magnetometer calibration status. anything less than 3/3 indicate a problem.

    Keep the device away from large electrical currents, and metal objects. Large buildings also often contain a steel structure which distorts the magnetic field.


    To validate that the sensor is operating properly, you can rotate it until it shows 0 degree heading and place a compass nearby. They should point the same direction. If this is not magnetic North, then the field is distorted in the location you are (usually indoors is not very reliable).

    joshld
    Established Member

    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?

    joshld
    Established Member

    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.

    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist