- Mon Dec 07, 2015 10:22 am
#35879
I also worked on this a few weeks ago. The MPU6050 I am using is on a pcb board GY-87 along with a HMC5883 magnetometer and a BMP180 altimeter.
There are versions of I2Cdev that try too hard and meld SPI with I2Cdev....The library in the above post is the pleasant one that sports I2C only and avoids dependencies that can be unpleasant. Hardware interfaces are specific and require specific wiring and timing. Software that attempts to run on multiple hardware interfaces may be fine for a commercially manufactured pcb but can cause issues for breadboard development and MCU other than the typical Arduino ( in this case the ESP8266).
The HMC5883 doesn't appear to be fused into the DMP. The accelerometer and the rate change gyro's are fused. The HMC5883 is a slave to the MPU6050 and I am getting HMC5883 raw values from the MPU6050 with calls to getExternalSensorWord. The BMP180 is on the I2C bus and is independent.
The DMP code is difficult to follow and even though the magnetometer readings are in the MPU6050 registers they don't seem to be fused into the DMP calcs.
The MPU6050 code needed modifying to allow calibration of the HMC5883 during setup plus the reading of the magnetometer values in loop. Teapot needed modifying so the packet transferred could contain a heading value. I'm getting accurate headings from the magnetometer 0..180 but inaccurate readings 180..360. It might not be the magnetometer since due to a math issue with the Arduino IDE 1.6.5 release, I needed to replace libm.a with a smaller version to avoid the sqrt issue. It is possible arctan has issues in this smaller version of libm.a ( 1/2 the original size).
Which version of the IDE did you use?
I used telnet to get a wireless link to teapot can you expand upon
"Map the data to TCP port rather than Serial for Remote feedback using UDP.........."
Did you use the Arduino esp8266 as the server or as the client ..did you reject telnet as a solution?