Skip to content

Accuracy in data.Quat9.Data.Accuracy always 0 #112

Open
@tomwcourtney

Description

@tomwcourtney

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions