Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BMI088 Data synchronization on PC using FIFO

    BMI088 Data synchronization on PC using FIFO


    We require synchronized data for the accelerometer and gyroscope for the BMI088 with accurate sampling at 200 Hz e.g. 1 sample every 128 ticks of the 24-bit clock (time resolution -> 39.0625E-6 s), to make recording of at least 1 hour (720000 samples). 

    The data synchronization example ( is only for the MCU and we wish to run the code on the PC.

    The streaming examples do not provide accurate timing between samples (large variace in sample intervals)and rely on the development board's 48-bit clock.

    We can collect data using the fifo for both the accelerometer and gyroscope, but do not know how to make the outputs of the two fifo synchronized. Is this possible on the PC?

    We also do not know how to get the time stamp of each sample in the fifo - or is the timing of the fifo accurate enough that the sample timings can be inferred?

    Any pointers or example code in this regard would be greatly appreciated. 

    5 REPLIES 5

    Community Moderator
    Community Moderator

    Hi Chris89,

    MCU can process sensor data in time, and the reference code is based on MCU. If you want to synchronize sensor data on the PC side, you also need MCU to forward data to the PC. So you might as well synchronize the data on the MCU and then send the synchronized data to the PC.

    We do not wish to flash code to the MCU at this stage, hence asking the question whether it is possible to synchronize data using the PC only. If it is possible could you please advise?



    Community Moderator
    Community Moderator

    Hi Chris89,

    Sensor supports I2C or SPI communication. Without MCU, I don't know how you can access sensor data through PC?

    Hi BSTRobin,

    We have configured I2C to access data from the IMU, and can retrieve data from the sensor. 

    What I mean is that we do not wish to use the Coines-mcu lib, but the Coines-pc lib. This means that we can not follow the read_synchronized_data_mcu.c example, as that uses the `coines_attach_interrupt` and `coines_detach_interrupt` functions which is only available in the coines-mcu lib.

    The README for coinesAPI - APP3.0 MCU states:

    ### Unsupported APIs

    - `coines_config_streaming`,
    - `coines_start_stop_streaming`
    - `coines_read_stream_sensor_data`
    - `coines_trigger_timer`

    Use the below APIs instead
    - `coines_attach_interrupt`
    - `coines_detach_interrupt`

    This implies that when using the coines-pc API that the streaming functions should be used in there place. We implemented the streaming functionality, but found that the timing between samples in unstable - we want the data to be sampled strictly at 200 Hz. The obvious way to do this would be to use the FIFO, but we do not know how to sychronize the FIFO for the acc and gyro using the coines-pc API.

    Can we synchronize the FIFO for the acc and gyro using the coines-pc API?

    Kind regards,