Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    BNO055 Register Write Fails Silently

    BNO055 Register Write Fails Silently

    juicy
    Member

    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

    3 REPLIES 3

    Vincent
    Community Moderator
    Community Moderator

    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.  

     

    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
    Community Moderator

    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