Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BHI260 Fifo Overflow

    BHI260 Fifo Overflow

    Established Member

    Hello, the title is quite self explanatory, but here is the story.

    I am reading quaternion data from a BHI260+BMM150 using I2C at 400 Hz, along with Accelerometer and Gyroscope WU. Yet I'm reading every now and then a FIFO overflow with some seconds of data loss.

    Why is that happening? The while(true) loop is basically empty, I only have a led toggling and the BHI reading. Even if I flush the FIFO before the get_and_process, I will overflow it just after the flush. How is that I'm not able to empty the FIFO fast enough?

    I'm using an NRF5340 as a host microcontroller.

    6 REPLIES 6

    I'm still experiencing this problem, and I can't figure out how to solve.

    If I set Accelerometer WU, Gyroscope WU and Quaternion at 400 Hz, I can't help but observe a FIFO overflow.

    I tried to decrease the size of the WORK_BUFFER down to 32, but that did nothing. I tried to increase my I2C speed but that did nothing too.

    The problem is that I have the same kind of problem when I multiplex different BHI: I can have up to 10 BHIs and so far I can multiplex 6 of them if I set every sampling rate at 50 Hz, and that is unacceptable to me, since I was literally faster with the BNO.

    Hi dariosortino,

    If you use multiple sensor and set a high ODR, you need to evaluate whether the MCU has read FIFOs quickly and parsed the data. You can use the logic analyzer to capture the actual hardware communication waveform, get the exact system time in the software, and calculate the time before and after the function is executed.