Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BSX-Lite Integration

    BSX-Lite Integration



    I am trying to integrate BSX_lite sensor fusion library in my project.I  am using BMX160. I have referred the BSXLite Integration guide and followed the instructions aper the document. However, I am not getting the sensor data. I tried debugging by reading the return value s after executig each function, but its not showing any error.

    The steps I followed are the following -

    • Included the header files in the BSXLite zip file.
    • Included the algorithm library to the project
    • Configured the I2C lines.
    • Read the chip ID to ensure that the interface is proper. (Able to read the chip ID, Interface proper. )
    • Initialised and configured the sensor using bsx_init(). (Intialization sucessful) Configured the sensors using the specifications given in the BSXLite zip file.
    • Set the working mode using bsx_set_workingmode() (Set the working mode successfully.)
    • Called sensor acquisition functions - bsx_get_accrawdata/bsx_get_gyrorawdata_rps/bsx_get_magrawdata etc. 
    • Checked the return values of the above functions after execution. (All are returning 0, indicating no error).


    Kindly provide help with the same.



    7 REPLIES 7

    From your description, I do not see how you sample the data and give it to the BSX library. Take a look at section 5.3.1 of the integration guide.

    BSXLite requires 4 inputs: Timestamp, accel data, gyro data, mag data.

    We have BSXLite integration sample code for BMF055, you can use it for your reference.


    Once I have initialized the library using bsx_init() function, I am trying to access the data from the sensors using the following functions - 

    bsx_get_accrawdata/bsx_get_gyrorawdata_rps/bsx_get_magrawdata etc..

    As I understood from the Integration documentation(fig), First I have to initialize the sensor parameters with the values that are provided in the BSX-Lite zip file, using bsx_init() function. Then I have to similarly set the working mode. After these two steps, I should be able to access the data from the sensors using the respective functions - bsx_get_accrawdata/bsx_get_gyrorawdata_rps/bsx_get_magrawdata.bsx-lite.png

    BSX is a sensor fusion library.


    Your initialization code seems correct, tbut the library cannot output any data on its own. You need to provide accelerometer, gyroscope and magnetometer sensor data to the library before you can retrieve the inputs.


    This is done with te do_steps API.


    As per your suggestion, I tried to read the sensor data. However, I observed that I am not getting any sensor data in the first place. When I am reading the data registers (ACC/GYRO/MAG), its always returning 0. 

    I ensured that there is nothing wrong with the interface by reading other registers. The interface seems to be proper as I am able to read the sensor time data and other registers.

    I verified the configurations of the sensors as well, by reading the configuration registers for the three sensors, before and after configuring. The configuration is also proper. I used the bsx_init/bsx_Set_working mode for configuring the sensors. 

    Still, I am not getting any data. Could you suggest if I am missing out something ??