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?
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.
...also would like to see the code. thx for the update Jose
The code should probably be done in early Jan.
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....
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....
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:
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.