Hi I'm trying to figure out how to use the MPU-6000, I'm reading your source code and I don't see anything about using the DMP

I've also looked at the ArduPilotMega 2.0 repo, found the code for the MPU-6000, but it also does not do anything with the DMP

I understand there's a supposed to be a bit of code that loads a block of instructions into memory banks inside the MPU-60x0, and then the FIFO outputs quaternion data. I do not see any of these elements in "ArduIMU328_V3" or "AP_InertialSensor_MPU6000.cpp"

Can I please see the code to use the DMP?

Views: 4909

Reply to This

Replies to This Discussion

I am also waiting this code

We are finishing the conversion of this code into an arduino library with all the functions needed for Ardupilot/arducopter.

We will share this code soon.

and you are right, we are loading the DMP memory with a default code, configuring registres and work with quaterion output from FIFO.

Jose.

...also would like to see the code. thx for the update Jose

The code should probably be done in early Jan.

any update?

There was a library in the svn, but it was removed for some reason. However you can still get it via versioning http://code.google.com/p/ardupilot-mega/source/browse/libraries/MPU... 

Are we waiting for something more advanced or this is all what can be done at the moment ? This code is based on the reverse engineering of the Invensense dev kit communications. As I followed Invensense devcorner discussions, Invensense does not have the intention to give away their dmp code in any form. It can be used only through their precompilled dev libraries (which are not Atmega compatible). Too bad....

Found this: 

http://code.google.com/p/ardupilot-mega/source/browse/libraries/?r=... 

Will test if it runs on the ArduIMU V3 hardware. Hope the orientation of the sensors are the same...

Hmm.. uploaded the test example and it runs but get no data. i will look into how the hardware differs on the APM2 and ArduIMU3

Did you change the interrupt from 6 (in the demo) to 0 as it was in the original ImuV3 example?

If not, you likely never get new data notification....

Thanks,

Andrew

Yes. Changed interrupt to 0 and chip select pin to 4 (in the header file) and now it works.

Change line 8 in MPU6000.h to:

#define MPU6000_CHIP_SELECT_PIN 4 // MPU6000 CHIP SELECT ON ArduIMU V3

And line 63 in MPU6000.cpp to:

attachInterrupt(0,MPU6000_newdata_int,RISING);

This seem to work.

Yepp, only question... why was it removed from the repository ?

We are working with Invensense on a licence to legally distribute the DMP code. We removed it from the repository until we have that completed. 

The ArduIMU V3 code is close to finished and should be out by the end of the month. We hope to offer a choice between DMP and DCM as a compile time option. If anybody on this list would like to join the dev team working on this, please PM me and I'll add you to the devlist. 

RSS

Contests

Season Two of the Trust Time Trial (T3) Contest has now begun. The third round was a reliablilty/aerial photography round for both planes and copters, which is now closed. Stay tuned for the next round, beginning soon.

A list of all T3 contests is here

 

© 2012   Created by Chris Anderson.

Badges  |  Report an Issue  |  Terms of Service