I'm using a BHI260AB hosted by an STM32 micro over SPI. The BHI260AB is mounted in a custom board together with a BMM150.
I'm downloading the following firmware to the chip and booting from RAM successfully :
I then enable the Gravity virtual sensor and the Rotation Vector virtual sensor successfully. I start receiving samples on the Non-wakeup FIFO for both virtual sensors.
As soon as I enable the Gravity virtual sensor I get a Meta Event of Sensor Status changed, which indicates that the Gravity virtual sensor has changed to accuracy = 3 (the maximum).
But for the Rotation Vector virtual sensor, I never get any Meta Event indicating that the Sensor Status has changed.
I'm following the procedure indicated in the Youtube video: https://www.youtube.com/watch?v=Bw0WuAyGsnY
I note that in the video, the BNO055 chip reports the accuracy for the physical sensors (accelerometer, gyro, magnetometer). But in my case, where I use the BHI260AB Gravity virtual sensor and the Rotation Vector virtual sensor, I only get the Gravity virtual sensor Sensor Status meta event, not the Rotation Vector Sensor Status event or any physical sensor status change event.
How can I know if my chip is in the maximum accuracy and ready for use?
As you enable rotation vector virtual sensor and do accel, gyro calibration, rotation vector virtual sensor accuracy will change from 0 to 3. Normally, when the accuracy is 3, the sensor data is ready for use.
If you also would like to know accel and gyro sensor accuracy, you could enable them in your code, see the accuracy from callback and meta event function.
So to sum up. If I enable the Rotation Vector virtual sensor, and if I do the calibration movements, I should expect to receive at some moment a Sensor Status meta event indicating that the accuracy of the Rotation Vector changed to 3. In my case, I'm not getting any Sensor Status meta event for the Rotation Vector. What could be the issue?
Regarding Bosch's Desktop Development application. If I connect the BHI shuttle board to the PC and I only enable the Rotation Vector virtual sensor (I don't enable the Accelerometer, Gyro, or Magnetometer virtual sensor), I still see in the main window that the application shows the accuracy status of the accel, gyro, and magnetometer.
How's this possible? Does the Desktop Development application (or more correctly the mainboard MCU that speaks with the shuttle board) enable the accel, gyro, and magnetometer virtual sensors behind the scenes and wait for the Sensor Status meta events of those three? Or does the application get that information in another way? I need to achieve that in my custom board.
As an update for Question 1
I've also enabled the accel, gyro, and magnetometer virtual sensors. So now in my chip, I have the following sensors enabled:
From all those virtual sensors, I only receive the Sensor Status meta events for the ones that are marked in green. So now I'm not getting the Sensor Status meta events for the Accelerometer corrected nor for the Rotation Vector.
What could be the issue?