Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BHI260AB Game Rotation Vector drift over time

    BHI260AB Game Rotation Vector drift over time

    Long-established Member


    I'm using the BHI260AB hosted by an STM32.

    In my application, I use the Game Rotation Vector for getting the current orientation of the device. But I noted that if I apply a constant vibration (3Hz) on the device, the Game Rotation Vector quaternion got from the chip starts shifting over time. The vibration applied is really slow and has low amplitude, it's just a subtle shaking of the device.

    At the beginning of the test the resulting quaternion of the Game Rotation Vector was:

    • w=0.7987
    • x=0.4669
    • y=-0.1874
    • z=-0.3300

    After 1 minute of shaking the device, the resulting quaternion on the same position was:

    • w=0.8357
    • x=0.4942
    • y=-0.1187
    • z=-0.2078
    1. What could be happening? Is there something related to the filtering of the accelerometer and the gyroscope used by the BHI?
    2. Or is it something related to the BSX algorithm that calculates the Game Rotation virtual sensor?
    3. Is there something I can do to solve this issue? 


    18 REPLIES 18

    Community Moderator
    Community Moderator

    Hello btruden_henway,

    Is IMU only used in your application, and not used geomagnetic sensor?
    Could we know what have you configured for the sensor?

    Long-established Member

    Hi BSTRobin,

    I use BHI in IMU mode. I don't have any external magnetometer attached to the BHI chip, the BHI uses its internal accelerometer and the gyroscope.

    As additional info, I host the BHI with an STM32 microcontroller connected over SPI.

    Let me enumerate the entire sequence from the startup until I start reading the Game Rotation Vector values.

    • BHI chip is restarted
    • Monitor the boot status of the BHI and wait to be ready
    • Upload the firmware to the BHI (Bosch_SHUTTLE_BHI260.fw)
    • Wait for the firmware to be validated.
    • Make the BHI boot from RAM.
    • Wait boot and check for firmware errors.
    • Check which virtual sensors are present on the BHI. Verify that Game Rotation Vector is present.
    • Run a self-test on the accelerometer and validate the status
    • Run a self-test on the gyroscope and validate the status
    • Configure the Game Rotation Vector with a sample rate of 25Hz and a latency of 0.
    • Continuously read the FIFO to get the virtual sensor measurements.



    Hi BTSRobin,

    Do you have any update on this?


    Hello btruden_henway,

    Thanks for your feedback.
    We would like to know how do you make sure you return to the same position after shaking?