What is the status of dmp and mpu driver source api?

By guevara , 14 March 2013

to whom it may concern,

I noticed that in inv_mpu_dmp_motion_driver.cpp, operation

int dmp_read_fifo(short *gyro, short *accel, long *quat,
unsigned long *timestamp, short *sensors, unsigned char *more)

under the right conditions, the sensors parameter is modified by a
constant (#define INV_WXYZ_QUAT (0x100)) that is not compatible
with the definition of the parameter, i.e. short or 16bit.

What is the status of this software? When can we expect an update with more functionality?

Thanks

mlaverne

13 years ago

Why would 0x100 not be compatible with a 16 bit parameter?

Max value of unsigned 16 bit = 0xFFFF, so 0x100 is well within range.

What I did notice is another possible bug:

If you don't define FIFO_CORRUPTION_CHECK, then the sensors mask will NEVER be set with INV_WXYZ_QUAT (indicating quaternion data is available in the FIFO).

The fix:

Move the #endif (FIFO_CORRUPTION_CHECK) to just above

sensors[0] |= INV_WXYZ_QUAT;

instead of just under that line.

phpbb Post ID
22704

guy_mcilroy

13 years ago

Thank you for your comment and we’ll look in to a fix for the datatype issue. MotionDriver is designed as a full source alternative to our more full-featured eMPL software library. The additional functionality (compass integration, calibration routines) will continue, for the time being, to be exclusive to the eMPL product, which is available (no cost) for a variety of platforms. You can inquire with developers@invensense for your specific controller/toolchain required for your application to see if a port is available.

phpbb Post ID
22707

mlaverne

13 years ago

Sectionbest,

we’ll look in to a fix for the datatype issue


Can you explain what datatype issue?

Would you also be able to answer my other questions (top ones in the MotionApps forum at this moment)?
phpbb Post ID
22710
phpbb Topic ID
15153