2025-07-21 6:31 AM
Hello everyone,
I'm currently in the process of integrating the ISM330BX IMU to a sensor i'm developping.
So far, I have been able to implement this component to my design, communicate with it and read acceleration/gyroscope data.
However, the reason that made me choose this component was for its embedded sensor fusion capabilites... And this is where problems start.
Enabling the sensor fusion was a pretty straighforward process thanks to the ISM330BX's documentation and examples on Github. But i find the rotations it gives very strange.
I noticed a huge amount of drift on the pitch and roll axes (i didn't expect the yaw to be robust and stable without the addition of a magnetometer, which is planned). It also often take way more than the state 0.7 seconds to stabilize its rotation.
Currently, my configuration is as follow :
- Accelerometer and Gyroscope ODR at 480Hz
- Accelerometer, Gyroscope and SFLP game vector (the rotation quaternion) ODR in FIFO at 30Hz
- Accelerometer scale set at ±4G, filter set at low pass ODR 100
- Gyroscope scale set at 2000dps, low pass filter set at bandwith 5, no high pass filter.
I'm not doing anything with the gyroscope bias for now, maybe the sensor fusion needs me to provide calibration data to the gyroscope and accelerometer for it to work?
I'm also linking a video of the current behaviour. do not mind the sensor not rotating the same way on the screen as i have not yet converted the ISM330BX's rotation frame to my software's.
I would greatly appreciate if anybody could tell me if there's something i may be missing here...or if it's simply the component's expected behaviour.
Thank you in advance.