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

    kgoveas
    Community Moderator
    Community Moderator

    Hi joshld,

    Is there a way to log the data that you receive from the sensor? Would it be possible to share the log of one of the BNO055 that drifts in NDoF mode.

    My hunch is that the magnetic field in the environment changes during this 12 hour period. The likelyhood that the heading drifts for a stationary sensor is otherwise very unlikely. 

    Regards,
    kgoveas

    Hi joshld,

    For most applications, target accuracy statuses are:
    Accelerometer : Not important
    Gyroscope : 3/3
    Magnetometer : 3/3
    System : non-zero

    in the current firmware release, the system calibration has been known to jump around quite a bit even with no data issue. For that reason we do not recommend using it to discard data.

    joshld
    Established Member

    Hi kgoveas,

    Here are two sample logs taken over the past 1+ hour - one of a good sensor and one of a bad.

    In the logs I am printing out the following:
    - current time and uptime of the device
    - the current xyz data for each of accelerometer, magnetometer and gyroscope e.g. Ax=-5 Ay=973 Az=-53    Mx=-300 My=1574 Mz=-561   Gx=2 Gy=0 Gz=-3
    - fw version, selftest result (register 0x36), main clock status (register 0x38), system status (register 0x39), system error (register 0x3A) e.g. v785 st=0F c=0 s=05 e=00
    - current calibration status of each of the system (sc), gyroscope (gc), accelerometer (ac) and magnetometer (mc)
    - absolute heading (in degrees) value calculated from the quaternion values e.g. QH=90.650
    - heading, roll and pitch values (in degrees) which are calculated relative to an initial reading which occurred at 130 seconds into the test on the good sensor and 72 seconds on the bad sensor

    As you can see from these logs, the releative heading angle is seen to drift by 10 degrees in just over an hour on the bad sensor whilst the good sensor has remained stable within 1 degree.

    Thanks in advance.

    joshld
    Established Member

    Hi o_o,

    That could explain why I have seen these calibration values to change at times when their operating environment has not changed at all.

    Having said that, larger current draw from other modules (i.e. when powering up) on the board seem to correlate at times with some of these jumps. Possibly something to look into further?

    Regards.

    kgoveas
    Community Moderator
    Community Moderator

    HI joshld,

    Sorry for not being more specific earlier, would it possible to share the logs in a csv similar format? 

    Time, Ax, Ay,Az,Mx...
    1234, 56, 67,78,... 

     

    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