Chips with MMC5883MA - You have been warned.

markor

Member
Be warned of GY-801 chips with MMC5883MA compass. If the chip has an die in the middle that says 5883 702p, you should return it immediately. Unless for some unspeakable reason you ordered one with MMC5883MA on purpose.

First the good news. I got the compass actually working, hard iron & soft iron calibrated and tilt compensated! It is inside my robot and it's giving right headings within +-5 degrees which would be more than enough. I have even attached my class for MMC5883MA compass and imu.h & imu.cpp for how I bloated them with #if #endif's. To anyone's amuse. I haven't finished the continuous mode, and will not unless someone else comes up with something to make it worth while.

But the last and biggest BUT is that it only works for about an 15min to 60mins and then it completely crashes the chip or I2C bus. I2C scan shows no devices at all. And I have actually 2 robots and 2 MMC5883MA compass gy-801 chips. Both crash in both. It's almost after an month of working on this and I'm finally giving up. I have googled everything, I have talked with the manufacturer, I learned a lot of trigonometry and compass theory and I actually got it all together! For stable 15-60mins. And only calling the chip between 200ms even if it could provide readings a lot faster according to specs. I have tried to set I2C speed to 400hz and all devices on the same, but no help. Debuggin the chip freeze / I2C bus freeze goes way beyond my expertise. I have also a multimeter and jumper for 3v is enable. The chip is getting very stable 3,30volts from the I2C.

Oh and one more thing about the MMC5883MA chip. It is EXTREMELY sensitive to interference. Gyro, accelerometer and others work just great with quick connections with pin wires. The compass only started to give some sensible readings after I cut the wire shorter and soldered all the connections permanently. And you really had to calibrate it inside the mower and out on the mowing area (not inside you house) to get it working.

I have ordered completely different new IMU chips and will let you know when I get there.
 

Anhänge

  • MMC5883MA.zip
    13,2 KB · Aufrufe: 16
If it's 3.3V module You can try to use direct to DUE I2C1 on PCB1.3 to be sure it's not a compatibility issue with RTC and PCB1.3 chips.
But need to use wire1 Library and many change in the code.
See robomow GY87 for example.
 
Thanks for the tip! I may try this, if the other IMU's fail me too. But I'm pretty confident I don't need to touch these ever again.
 
Oben