Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    Acceleration data problem in BMI088

    Acceleration data problem in BMI088


    I have recently bought BMI088 IMU and started interfacing work with atmega2560. I have written my own I2C routines to perform communication task and UART routines to see the output on serail terminal. Rotines are functioning without any issues as I am able to read gyro data and temperature data (from accelerometer).

    Now only problem that I am having is that acceleration data being read is 0 in all three axes and there is no change at all. What may be the reason?

    I have few points,

    1) In device initialisation procedure, it says to only write 0x04 in ACC_PWR_CTRL(0x7d) which will bring devide in normal mode. I have written this register, checked it by reading it as well. As temperature reading are coming proper, it signifies that accelerometer has been brought to active mode. In this scenario, accelerometer should also spit out correct reading, but it is not.

    2) There is one more register ACC_PWR_CONF(0x7c), reset value of which is 0x03 which corresponds to suspended mode. And this need to be written with 0x00 to bring accelerometer in active mode. There is no mention about this register in initialisation procedure. Although I have written this register to 0x00 but still acceleration output reads 0.

    Any help is appreciated.

    2 REPLIES 2

    Community Moderator
    Community Moderator

    Hello ashishtbm,

    There was example code in github,
    It is better to refer BMI088 driver code and example code.

    I have already gone through the code and what I can see is, only thing is to bring accelerometer in active mode (unless we don't want to change ODR and range) and after that we can read the data. In my case, I have confirmed the written register, and temperature data is coming correctly. Infact I have checked all the register values, before and after writing. Even sensor_time register is not incrementing, it's LSB is showing value of 54 and not changing. Other two higher bits are showing 0. And as I said, all 6 registers of accelerometer is being read as zero. But acc_bit is being set, which I have confirmed by reading corresponding register.