Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BMI270 FIFO for accelerometer in low power mode

    BMI270 FIFO for accelerometer in low power mode

    New Poster


    I'm using the accelerometer in BMI270, used FIFO watermark as the interrupt to read the sensor data out by every certain time, everything was working great while in the normal mode, but data became corrupted in FIFO while in the low power mode by set "acc.filter_perf=0".

    I read the datasheet and saw the description in section "4.7.7 FIFO in Low Power Mode" which describes "The data storage into the FIFO is identical to the normal and performance mode", so just want to double check with you to confirm it's correct or something else if I didn't configure right.

    Thanks, James S.

    4 REPLIES 4

    Community Moderator
    Community Moderator

    Hi jshih, 


    Are you using our BMI270 API?

    There are FIFO examples like below.

    And, you need to set 0x03 for 0x7C register. 



    Please let me know if you have any questions. 

    Thank you. 


    Yes, I'm using the BMI270 API from the Github.

    In accel normal mode, I don't have any issue to use FIFO, it works properly.

    In accel low power mode, I have the issue to use FIFO, looks the data not been stored into FIFO.

    Again, my questoin or the thing I would like to clarify is,

    Can I use FIFO when use Accel in low power mode?

    Because the datasheet mentioned "The data storage into the FIFO is identical to the normal and performance mode", so would like to double confirm what I observed is correct.

    Community Moderator
    Community Moderator

    Hi Jshih, 


    Yes, as I said, you need to enable FIFO self wake up. 

    To do so, you need to enable using below function. 

    bmi2_set_fifo_self_wake_up(BMI2_ENABLE, &dev) 

    You can use above function end of initialization part. 

    Please let me know if you still have issues. 

    Thank you. 


    Thanks, I can see FIFO works properly after enabled the FIFO self wake-up.

    But one more question is,

    FIFO data is good when read by every interrupt (by watermark level), but if now I read FIFO data before interrupt then I could see the FIFO data corrupted after read.

    For example: I set ODR to 25Hz and interrupt by watermark level as read 25 set of data by every seconds.

    • It's working properly when read FIFO data by every interrupt.
    • Data corrupted if manual read FIFO before the interrupt.

    Does that means I may need to re-enable the FIFO self wakeup if read data by none interrupt trigger?