Accuracy in data.Quat9.Data.Accuracy always 0
tomwcourtney opened this issue · 0 comments
tomwcourtney commented
I've ported the ICM to work with an STM32 however I have obviously made a mistake as the accuracy of the 9DoF DMP is always 0 in the Quat9 portion of the icm_20948_DMP_data_t packet whenever I read from 'Example6_DMP_Quat9_Orientation'.
From the example, the critical configurations are:
success &= (myICM.enableDMPSensor(INV_ICM20948_SENSOR_ORIENTATION) == ICM_20948_Stat_Ok);
success &= (myICM.setDMPODRrate(DMP_ODR_Reg_Quat9, 0) == ICM_20948_Stat_Ok);
And I acquire data from the IMU
icm_20948_DMP_data_t data;
myICM.readDMPdataFromFIFO(&data);
SERIAL_PORT.println(data.Quat9.Data.Accuracy);
The only time accuracy is non-zero is if the header returned from the IMU does not match the Quat9 bit mask.
if ((data.header & DMP_header_bitmap_Quat9) > 0)
I was hoping someone could give a clue as to where to look in the IMUs setup. The IMU readings are otherwise good it's just that accuracy being 0 that's missing.