Important Cookie Information

This website uses absolutely necessary cookies. If you consent to the use of convenience cookies, please click “Yes, I agree.” By clicking on “Privacy Settings.” you can change this setting at any time and withdraw your given consent. Icon down see more You can find detailled information in our Privacy Policy Icon forward-right
Icon up see less

Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    Is it Possible to Manually Recalibrate the BNO055?


    Re: Is it Possible to Manually Recalibrate the BNO055?

    Ok I got to a solution:

    I had to partially give up one of my ideal conditions in not having to restart the device.

    I have a C++ application that can communicate to/from the BNO055 via an Arduino Micro. I added a button to this C++ application that sent a command over serial to my microcontroller setup. That command triggered the following logic in the Arduino code:

    resetIdentifier(); // Reset the stored BNO ID to 0.
    resetOffsets(); // Reset the stored BNO calibration offsets to 0s.
    wdt_enable(WDTO_15MS); // turn on the WatchDog and let it go.
    while(true) {} // Wait until the device restarts.

     So I reset all of the EEPROM data for the BNO and then used the watchdog to restart the device.

    On setup(), it checks the EEPROM to see if the BNO ID is listed in EEPROM and then grabs its calibration offsets. Since these were cleared, it goes through the calibration process again and stores the new offsets upon completion.

    This solution worked out great, except I also had to add a re-initialization for the serial connection in my C++ application before trying to send another command.


    Thank you very much for your help!