Bosch Sensortec Community

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

    BNO055 / Minimum I2C communication interval ?

    Highlighted
    Occasional Visitor

    Re: BNO055 / Minimum I2C communication interval ?

    To allow the BNO055 to be used with the Raspberry Pi I found that the answer is to disable the standard Raspberry Pi i2c hardware entirely, replacing it with a software based i2c device already present in the kernel by using a device tree overlay. This software based i2c device correctly implements the i2c protocol clock stretching. Once this is done there no longer any need to worry about clock speed when communicating with the BNO055 from the Raspberry Pi. You will be able to read heading, roll and pitch data from the BNO055 via i2c at 10ms intervals without any problems. For full details of the procedure please see https://gps-pie.com/pi_i2c_config.htm

     

     

    Community Moderator
    Community Moderator

    Re: BNO055 / Minimum I2C communication interval ?

    Great tutorial there! Love your little board too!

    o_o
    Highlighted
    New Poster

    Re: BNO055 / Minimum I2C communication interval ?

    Hi,

    I'm using a STM32L4 MCU to connect BNO055 using I2C interface.

    The MCU is configured in Fast Mode at 400kHz and the communication is working fine.

    The BNO055 operation mode is set to NDOF_FMC_OFF and I am getting the Quaternion data (8 bytes).

    However when I make a multibyte read I verify that there is a clock stretching around 180us.

    Is this normal?

    The transfer of a BYTE+ACK takes only 22.5us (9 bits at 400kHz) and after there is a delay of 180us until it starts the transfer of the next byte.

    Getting the 8 byte Quaternion data is taking more than 2ms!!! 

     Can you help on this subject?

    Best regards.

    Highlighted
    Community Moderator
    Community Moderator

    Re: BNO055 / Minimum I2C communication interval ?


    @pleite wrote:

    Is this normal?


    Yes. 😁

    With BNO055, there is a microcontroller between your host and the underlying sensors. This microcontroller mutch fetch the data you requested via register address before it can send it out.

    We have an upcoming updated firmware for the BNO055 with optimization to reduce this clock streching effect. But before you ask, unfortunately I cannot comment on timeline for this new firmware release. Keep posted, I will definitely announce it in the forums when available.

     

    o_o

    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