micropython-mpu9150 icon indicating copy to clipboard operation
micropython-mpu9150 copied to clipboard

Is there a way to access the DMP?

Open masasin opened this issue 11 years ago • 8 comments

I cannot find it in the docs.

masasin avatar Mar 16 '15 11:03 masasin

Sadly no. There is no real documentation on how to use the DMP in the datasheet, so I couldn't implement it.

data sheet and register map http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/IMU/PS-MPU-9150A.pdf http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/IMU/RM-MPU-9150A-00.pdf

turbinenreiter avatar Mar 16 '15 11:03 turbinenreiter

Yep, those are the docs I was referring to.

I have seen some implementations with C and C++, but I can't really figure out their structure. Would you like to see them?

On Mon, Mar 16, 2015 at 8:31 PM Sebastian Plamauer [email protected] wrote:

Sadly no. There is no real documentation on how to use the DMP in the datasheet, so I couldn't implement it.

data sheet and register map http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/IMU/PS-MPU-9150A.pdf

http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/IMU/RM-MPU-9150A-00.pdf

— Reply to this email directly or view it on GitHub https://github.com/turbinenreiter/micropython-mpu9150/issues/6#issuecomment-81591131 .

masasin avatar Mar 16 '15 11:03 masasin

Sure, but I can't promise anything. Spent a lot of time searching around, but never found anything good.

turbinenreiter avatar Mar 16 '15 11:03 turbinenreiter

People from my lab got this working on mbed: http://developer.mbed.org/users/syundo0730/code/MPU6050-DMP/

It is written in C++, and based on code written by Jeff Rowberg for the MPU-6050.

On Mon, Mar 16, 2015 at 8:57 PM Sebastian Plamauer [email protected] wrote:

Sure, but I can't promise anything. Spent a lot of time searching around, but never found anything good.

— Reply to this email directly or view it on GitHub https://github.com/turbinenreiter/micropython-mpu9150/issues/6#issuecomment-81604788 .

masasin avatar Mar 16 '15 12:03 masasin

It's a can of worms as far as I can see. Read the comments section of the link below - particularly the most recent one by @SVFeingold - to summarise the chip can only do 6-axis sensor fusion, and even this is slow and uses a proprietary encrypted binary. The job is probably best done in Python in the driver. I'm sure @turbinenreiter would look favourably on such a contribution from anyone with a grasp of quaternions. Sparkfun breakout board

peterhinch avatar May 05 '15 10:05 peterhinch

I have used the RTIMULib software discussed further down in the comments in the link from @peterhinch My setup used the micropython pyboard to stream the sensor data from the mpu9150 to a host PC via USB; I then used the RTHostIMUGL (one of the programs provided at https://github.com/richards-tech/RTIMULib) to compute the sensor fusion and display the results. Unfortunately when I tried to get it running a couple of weeks ago I found that I didn't really document where I left off; it will take me a few hours to resurrect the system when I get a chance. The RTIMULib software does implement the quaternion sensor fusion algorithm in C++; it could potentially provide a model for a Python implementation, or perhaps even be ported as an optional C module to MicroPython. I should add that RTIMULib is well supported and under active development; Richard Barnett was very responsive when I had questions about his code a few months ago. I'd love to get back to working on this, but not sure when I will be able to squeeze in the time.

blmorris avatar May 05 '15 13:05 blmorris

Much as this interests me I've too many things on to address it now. But the RTIMULib looks good and has Python bindings. I'd try cross compiling it: if it compiles OK MicroPython might interface to it without much trouble. It strikes me as a better solution than the code cited by @masasin with its opaque binary blob in MPU6050_6Axis_MotionApps20.h

peterhinch avatar May 06 '15 08:05 peterhinch

In the end we used RTIMULib as well, and just communicated with the chip via i2c.

On 2015年5月6日(水) 17:23 Peter Hinch [email protected] wrote:

Much as this interests me I've too many things on to address it now. But the RTIMULib looks good and has Python bindings. I'd try cross compiling it: if it compiles OK MicroPython might interface to it without much trouble. It strikes me as a better solution than the code cited by @masasin https://github.com/masasin with its opaque binary blob in MPU6050_6Axis_MotionApps20.h

— Reply to this email directly or view it on GitHub https://github.com/turbinenreiter/micropython-mpu9150/issues/6#issuecomment-99375564 .

masasin avatar May 06 '15 11:05 masasin