Hi, I got a BHI260AP on a Shuttle Board 3.0 and an Application board 3.0. I modified the quaternion.c example to read additional virtual sensors from the board (accel, accel_calib, gyro, gyro_calib, ...). I created several callback functions that push the sensor data to arrays, that I then want to write to *.csv files in the end. However, as soon as I add >2 virtual sensors with a sampling rate of 200Hz the FIFO starts to overflow. According to this document (https://www.bosch-sensortec.com/media/boschsensortec/downloads/application_notes_1/bst-bhi260ab-an002.pdf) I should have "plenty" of FIFO space available (Figure 3 -> 240KB/2?). If I calculate the amount of data (let's say 4 virtual sensors, 200Hz each, 3*16bit) I would arrive at 4.8KB / second. That should not exhaust the FIFO right? I tried flushing the FIFO in the main loop, but that made no difference? I also increased WORK_BUFFER_SIZE from 2048 to 8192 but that did not make a difference either. bhy2_flush_fifo ( RAW_ACC_ID , & bhy2 ); bhy2_flush_fifo ( CALIB_ACC_ID , & bhy2 ); bhy2_flush_fifo ( RAW_GYR_ID , & bhy2 ); bhy2_flush_fifo ( CALIB_GYR_ID , & bhy2 ); if ( get_interrupt_status ()) { /* Data from the FIFO is read and the relevant callbacks if registered are called */ rslt = bhy2_get_and_process_fifo ( work_buffer , WORK_BUFFER_SIZE , & bhy2 ); print_api_error ( rslt , & bhy2 ); } I also checked the timestamps differences. If the FIFO overflows there are some drops of course in the sampling rate, because data goes missing. What am I doing wrong? Is it not possible to get the data from 4 sensors at the time on a PC as host and save the data? Regards Steffen
... View more