Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 
    SOLVED

    BNO055 unreliable calibration & heading readings

    BNO055 unreliable calibration & heading readings

    Digisolve
    Established Member

    BNO055 unreliable calibration & heading readings

    I'm having difficulty with reliable heading in DNOF mode.  I find it can drifts as much as +/- 20 degrees.

    There are many questions I have regarding this. But, as they are all related, I will put them all here in a number list:

    1. Power cycling calibration status

    I find power cycling effects the accuracy / reliability of the calibration status.

    • I calibrate the unit so all 4 calibration status (ACC GYRO MAG SYS) read 3, then save the OFFSET & RADIUS regs to NV storage.
    • I then power-down the compass (remove the power)
    • I then power-up the compass & restore the OFFSET & RADIUS registers.
    • I then check the calibration status & it is no longer calibrated. In some instances NONE of the 4 are 3

    2. Power cycling heading reading

     I find power cycling effects the accuracy / reliability of the heading reading.

    • I calibrate & save as detailed above.
    • I then power-down the compass (removed the power)
    • I then power-up the compass in different orientations & restore the OFFSET & RADIUS registers
    • I read the heading & it is usually around 0 degrees regardless of the orientation

    Always powered-up

    I have changed my design to try the compass always powered-up while the battery is connected. This makes an improvement in both cases above, but this is not how I want the design.

    I even put the compass into suspend mode on power-down & then back into normal mode at power-up.

    3. When / how often should the calibration data to read / restored?

    If I have to adopt the always powered-up approach, then the compass will be powered for long periods of time. How often should I read the OFFSET & RADIUS registers into NV storage?

    4. Heading drift

    I find that the heading drifts. IF I orient the compass in one direction, not change any compass settings, but just turn thru 360 degrees, or move the compass in some random way, the heading can be up to 30 degrees wrong.

    5. Absolute heading

    I find that the compass does not point north to match my magnetic compass, of my iPhone compass. (NB my magnetic compass & iPhone compass match each other photos attached)

    This is was a fully calibrated BNO055 with all 4 CALIB STAT read 3’s

    26 REPLIES 26

    Digisolve
    Established Member

    Q 1 & 2: I'm not wanting to power off the mag only. I want to remove the power entierly from the BNO055 when I put my system in the off state. I then want to apply power to the BNO055, restore the cal data & begin using the compass ASAP. Currently I'm unable to do this as the cal status is not 3 & the heading values are very wrong. I find I have to move my unit around quite a lot to get the status to report all 3's. But even then the heading value does not always show repeatable values of that prior to the power cycle.

    Q 3: Ok I will choose appropiate times in my application to store the latest cal data in NV ram. This may be when I place my system in the off state.

    Q 4 & 5: Ok I need to arrange with a Bosch agent to get the SIC calibrated. Please advise on how to get the done.

    BSTRobin
    Community Moderator
    Community Moderator

    Hi Digisolve,

    For your feedback "Q 4 & 5: Ok I need to arrange with a Bosch agent to get the SIC calibrated. Please advise on how to get the done.", we had discussed in your another ticket: https://community.bosch-sensortec.com/t5/MEMS-sensors-forum/BNO055-calibration-data-not-reading-corr...

    BSTRobin
    Community Moderator
    Community Moderator

    Hi Digisolve,

    We recommend you try to follow our example code in github to set the calibration value. For example, follow the function BNO055_RETURN_FUNCTION_TYPE bno055_write_mag_offset(struct bno055_mag_offset_t *mag_offset) to set the mag offset.

    Digisolve
    Established Member

    I have now done the SIC. I no longer power the BNO055 down (just put it into low power standby) but I still do not get reliable/ repeatable heading results.

    I really need more help with this. I am happy to travel to a Bosch lab in europe. If I could spend maybe 1/2 day with a Bosch sensor application engineer, they will see exactly what's happening & may be able to spot something in my code, hardware desgin or environment that I've missed.

    I am happy to privatley share all my design details please can we make this happen.

    Digisolve
    Established Member

    Is this an option? I just need to know if the BNO055 is capable of doing what I need & that may hardware/software is correct. It is quite urgent now

    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