Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BHI260 I2C lockup after boot command

    BHI260 I2C lockup after boot command



    I just bought the BHI260 shuttle module and have some issues with booting it. 

    My setup is a custom board with a BHI260 shuttle module and STM32WB55 MCU connected with I2C interface. I am using API from and fw Bosch_APP30_SHUTTLE_BHI260.fw.h

    This is my booting sequence:

    1. Reset (0x14 0x01)
    2. Wait till Boot Reg (0x25) give (0x11)
    3. Upload firmware (0x00 0x02 0x00 0xAB 0x67...) 64 bytes per transmission and start every transmission with 0x00 cmd
    4. Read Boot Reg (0x25) and get(0x31)
    5. Read Error Reg (0x2E) and get(0x00)
    6. Boot (0x00 0x03 0x00 0x00 0x00) 

    Everything goes fine, but after sending boot cmd, both SCL and SDA lanes go to 0V and stay there till hard reset. This is definitely not a problem with STMs I2C because I can read every register normally. Only booting causes this issue.

    Is it broken, or am I doing something wrong?



    2 REPLIES 2

    Community Moderator
    Community Moderator

    Hi WirelessMan,

    There was BHI260 example code on STM32F4 for your reference. This example used BHI2 sensor API on Github

    The problem is solved. 

    Shuttle board does not have a hardwired pull-up, however, has an integrated one. As I understood, while you are in bootloader mode, internal pull-up is active, but on software boot, it disables, leaving I2C without any pull-up. So I enabled pull up on my STM32WB, and it solved the problem.

    Looks like a stupid mistake, but it is unreal to debug knowing that I2C works properly on a startup

    It would be cool to have hardwired pull up as soon as it has no impact on SPI performance but helps a lot during the "breadboard" testing phase. 

    I hope it helps someone.