Jump to content
I2Cdevlib Forums

DMP packet description


Recommended Posts

Can someone explain the raw DMP packet information to me.  Here's what i know so far.  Every packet is 42 bytes.

0:3      QW

4:7      QX

8:11    QY

12:15  QZ

16:19  GX

20:23  GY

24:27  GZ

28:31  AX

32:35  AY

36:39  AZ

40:41  unknown

Am I correct in assuming that all the quaternions are double precision floating point numbers?

And the gyro and accel are 32 bit int?

Are the gyro and accel numbers what the DMP read off of the register when it calculated the quaternions?

Link to comment
Share on other sites

  • 5 weeks later...

Hi Jet.

Depending on the DMP version, this is what I've found in the library sources:

/* ================================================================================================ *
 | Default MotionApps v2.0 42-byte FIFO packet structure:                                           |
 |                                                                                                  |
 | [QUAT W][      ][QUAT X][      ][QUAT Y][      ][QUAT Z][      ][GYRO X][      ][GYRO Y][      ] |
 |   0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  |
 |                                                                                                  |
 | [GYRO Z][      ][ACC X ][      ][ACC Y ][      ][ACC Z ][      ][      ]                         |
 |  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41                          |
 * ================================================================================================ */
and
/* ================================================================================================ *
 | Default MotionApps v4.1 48-byte FIFO packet structure:                                           |
 |                                                                                                  |
 | [QUAT W][      ][QUAT X][      ][QUAT Y][      ][QUAT Z][      ][GYRO X][      ][GYRO Y][      ] |
 |   0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  |
 |                                                                                                  |
 | [GYRO Z][      ][MAG X ][MAG Y ][MAG Z ][ACC X ][      ][ACC Y ][      ][ACC Z ][      ][      ] |
 |  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  |
 * ================================================================================================ */

 
reading the datasheet of the MPU-9150 (that uses a 6050), I see that:
  accel is 16 bit signed integer to be converted using the proper scale factor (depending on which full scale range you previously set)
  gyro is same as above
  megnetometer is 13 bits signed int with +-1200 microTesla range
 
about the last question: i did not find exact info for that, but being returned together in the same packet I think yes.
 
my 2 cents,
Mario
Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...