Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    BNO055 Register Write Fails Silently

    juicy
    Member

    BNO055 Register Write Fails Silently

    Hello,

    I'm using the BNO055 with a RPi 3B+ over I2C. I can read any sort of value I'd like - power mode, operating mode, calib status, etc. but whenever I try to write a value to the sensor nothing changes. I'm using the official C lib here on github: https://github.com/BoschSensortec/BNO055_driver

    After initializing the sensor, I am left in the "suspend" power mode and I have 0x0d as my operating mode, something that clearly is off.

    I'd really appreciate any help here, as I don't have much more of a clue what I should be looking into.

    I'm using the C lib on github: https://github.com/BoschSensortec/BNO055_driver

    Here's the wiring setup I have with the pi:
     rpi_i2c_wiring.jpg

    Tags (2)
    3 REPLIES 3
    Vincent
    Community Moderator

    Re: BNO055 Register Write Fails Silently

    For BNO055,  any register write / register value change can only happen in Configure mode.  this means the operation_mode register should be with value 0x10.  

    From your description,  you are under NDoF mode,  then the register write is be ignored by sensor.  

     

    juicy
    Member

    Re: BNO055 Register Write Fails Silently

    Hi Vincent, thanks for the quick reply.

    After looking at someone else's question on using I2C to talk with a sensor, I've finally got my reads and writes working. This required rewriting the "BNO055_I2C_bus_write" and "BNO055_I2C_bus_read" functions.

    Could it be made more clear in the repo that these methods are not complete? Would have been appreciated and saved me a lot of time.

    Vincent
    Community Moderator

    Re: BNO055 Register Write Fails Silently

    Yes, i will take your suggestion to the engineer team. 

    Avtually we put following comment in our API on Github

    bno055_support.c

    • This file shall be used as an user guidance, here you can find samples of * Initialize the sensor with I2C communication - Add your code to the I2C bus read and bus write functions. - Return value can be chosen by yourself - API just passes that value to your application code - Add your code to the delay function - Change I2C address accordingly in bno055.h
    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