Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BNO055 unreliable calibration & heading readings

    BNO055 unreliable calibration & heading readings

    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

    Established Member

    I've found the BHI260AP  which mentions the "BHI260AP shuttle board 3.0". This is fitted with the BHI260AP & BMM150.

    Also the BST-BHI260AP-FL000 talks about the Software feature saying " for increasing number of activities without the need to modify the original software."

    Does this suggest the device is already programmed with this software. Or is the software stofed in off-chip FLASH (which is also fitted to the "BHI260AP shuttle board 3.0"?

    I want to buy an evaluation board which will (hopefully) plug-n-play so I can evaluate the funtions & performance without having to spend lots of time & effort installing & learnig new dev tools. I know I may need to do this going forward, but it this stage I need a to evaluate your solution & demo this to my customer so we can be sure it performs to a level acceptable to my customers requirements.

    Community Moderator
    Community Moderator

    Hi Digisolve,

    There were BMM150, Flash on BHI260AP shuttle board, more detailed could be found from

    BHI260AP software on github:
    Run the example load_firmware to upload firmware to Flash memory.

    Established Member

    Sorry I'm not clear. This only has a .C & makefile



    Established Member

    Basically I want to get the orientation information which is shown the General Settings -> System tabDigisolve_0-1663148061197.png

    I'll explain what I have done & hopefully you can explain what i'm missing:

    1. Connected Application Board 3.0 & BHI260AP Shuttle Board 3.0
    2. Installed & run Development Desktop 2.0
    3. Downloaded Bosch_APP30_SHUTTLE_BHI260_aux_BMM150-flash.fw (dated: 16/05/2022 save: 115K) from C:\Program Files\Bosch Sensortec\Development Desktop 2.0\Firmware\BHI260AP\Flash Images
    4. Set Sample Rate to 25Hz for Acceleromter Passthough(Non-Wakeup)
    5. Set Sample Rate to 25Hz for Gyroscope Passthough(Non-Wakeup)
    6. Set Sample Rate to 25Hz for Magnetomoter Passthough(Non-Wakeup)
    7. Plot1 is already Acceleromter Passthough(Non-Wakeup)
    8. Changed Plot2 to Gyroscope Passthough(Non-Wakeup)
    9. Changed Plot3 to Magnetomoter Passthough(Non-Wakeup)
    10. Start Streaming and the plots get populated, but not the Orientation values
    11. Stop Streaming and press Refresh but get the error Host Download Channel Underflow(Host Read Too Fast)
    12. Slowed the Interface Selection -> Sensor Interface down to 1000Kbps, (I had to set everthing up again!) 
    13. Started & stopped streaming. This time the Refresh showed no errors, but the Orientation was still not populated


    Here's the about box for my install of Development Desktop 2.0 Beta - BHI260AP

    (should is be Beta?)


    I just need to know exactly how to setup this dev system so I can evaluate the pitch/roll/heading performance in real time (just like I did with the BNO055)

    Established Member

    Just to let you know I've updated the firmare. It's now 1.9. But I still canot do what I need to