Bosch Sensortec Community

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

    BNO055 Calbration reuse?

    BNO055 Calbration reuse?

    smhap
    Member

    Hello! 

    I'm got the BNO055 module from adafruit and I'm trying to save a calibration value on it. The approach I've followed : 

    Once I calibrate the module, I read registers ACCEL_OFFSET_X_LSB_ADDR(0x55) till MAG_RADIUS_MSB_ADDR(0x6A). I store these values in a struct and then back to the register (Is that the correct approach? Seems weird writing the value read from a register to the same register.) Anyway, after this when I power on the board and read the offset and radius registers, I see completely different values. What am I doing wrong? Please help 🙂

    7 REPLIES 7

    kgoveas
    Community Moderator
    Community Moderator

    Hi smhap,

    the loading of the calibration offsets are typically performed when one needs to restore a previously calibrated state without the need to perform the calibration procedure. Hence, the offsets are loaded after a boot or reboot unlike your case where you load it before a reboot.

    I hope this clarifies your question.

    Regards,

    kgoveas

    kgoveas,

    Few things. I'm unable to get any response in the Adafruit community so I hope you can help. I appreciate your response.

    1. So I need to read the calibrated offset values, store them and then hardcode the registers to those values on bootup?
    2. Do I need to check the calibration status register after loading the previous calibration values into the offset registers? 
    3. I'll be using the BNO055 in a vehicle. What happens when there's a sudden jerk on the module? Does the calibration mess up? If so, how can I recalibrate it without making the 8-figure and stuff since that's not possible once it's put up in a vehicle. 
    4. To get a tilt-compensated magnetic north from the BNO055, Which mode should I set it to? I'm not sure I understand the difference between the different normal modes and fusion modes. And the difference between Euler and Quaternion values. Which one will be give me a more accurate magnetic north angle? 

    Once again, really appreciate the help!

    kgoveas
    Community Moderator
    Community Moderator

    @smhap wrote:

    1. So I need to read the calibrated offset values, store them and then hardcode the registers to those values on bootup?

    Yes. That's right. Make sure to load them while the BNO055 is in the configuration mode.


    2. Do I need to check the calibration status register after loading the previous calibration values into the offset registers? 

    Not necessarily, but reading the error registers are important.


    3. I'll be using the BNO055 in a vehicle. What happens when there's a sudden jerk on the module? Does the calibration mess up? If so, how can I recalibrate it without making the 8-figure and stuff since that's not possible once it's put up in a vehicle. 

    Assuming that the BNO055 is not used in any functions related to the car itself but rather as a navigation tool, the calibration should not be obsolete as the calibration procedure is primarily for removing effects on the sensor due to the immediate environment it is in, like PCB stress and magnetic anomalies among others. Note that newer versions of the BNO055 firmware contains some algorithm improvements to tackle these features.


    4. To get a tilt-compensated magnetic north from the BNO055, Which mode should I set it to? I'm not sure I understand the difference between the different normal modes and fusion modes. And the difference between Euler and Quaternion values. Which one will be give me a more accurate magnetic north angle? 

     


    Normal mode is simply the raw data from the sensor with little processing. Fusion modes combine two or more sensors to give meaningful orientation of the device. It is recommended to use the NDoF feature with FMC on. Euler angles and Quaternions are representations of the same Orientation in different formats. Euler angles are human readable but complex if you want to use it as an input for complex math. Quaternions on the other hand are harder to intepret directly but can be easily used as an input for complex math.

    Regards,

    kgoveas

    Hi, I am also involved with calibration of the BNO055, sofar with limited success. However, I discovered in the data-sheet (Chapter 3.11.4) that the Operation Mode have to be set to Config Mode also when READING calibration data: 

    "Reading Calibration profile
    The calibration profile includes sensor offsets and sensor radius. Host system can read the
    offsets and radius only after a full calibration is achieved and the operation mode is switched
    to CONFIG_MODE. Refer to sensor offsets and sensor radius registers."

    I'll try that tomorrow.

    I've connected the device to a Raspberry, so I can save the profiles in a file and get the back as needed.

    /Göran

    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