Go Down

Topic: SOLVED!!: WORKING WITH GY-87.... EVERYTHING OK BUT HMC5883L NOT WORKING AT ALL (Read 30081 times) previous topic - next topic


Sorry to bring up an old thread, If there is no reply I will Make a new thread.

I have purchased a gy87 clone (HW-290) and I am in the process of testing the module.

My setup is using Arduino IDE 1.87, NANO using atmega328P "old boot loader"

The pin outs and code are exactly the same as http://www.techmonkeybusiness.com/the-gy87-combined-sensor-test-sketch.html

Noting the obvious "can not find sensors" messages in serial monitor; I did an I2c sniff and got the following addresses on my arduino NANO

I2C device found at address 0x0D  !
I2C device found at address 0x68  !
I2C device found at address 0x77  !

The following address is different to the one originality specified in this thread.

I2C device found at address 0x0D  !

So my next task was to find the data sheet https://store.invensense.com/datasheets/invensense/MPU-6050_DataSheet_V3%204.pdf

Page 26   7.11  states that there is a "Master" and "PassThrough" mode.

Page 28   7.13  states there is an "interface bypass multiplexer to get to the external compass sensor

Can some one please explain to me how on Page 38 section 10 ; how to set the conditions required to set the slave mode AND sniff for the addresses my module actually uses.

Thank you for reading


Hi Slant_Eng,

If you're getting the 0x0D I2C address then your GY-87 breakout board is using a QMC5883L, rather than a HMC5883L or HMC5983. (The HMC5983 is the same as the HMC5883L, but with temperature compensation).

Sadly, Honeywell discontinued the HMC5983/HMC5883L in 2016, but licensed the technology to QST Corporation, who now manufacture the replacement QMC5883L. However, while the QMC5883L is pin for pin compatible, its registers are not the same as the Honeywell device. It's essentially a different chip.

To make matters worse, QST Corporation have produced two versions of the QMC5883L:

1) A completely undocumented 'A' version with "DA 5883" on the QFN package that responds to the I2C address 0x1E. It's identical to the HMC5983/HMC5883L, except (and I kid you not) that the status register doesn't work.

2) A documented 'B' version with "DB 5833" on the QFN package that responds to I2C address 0x0D. This works as per the QMC5883L datasheet.

It looks like you've got the 'B' version of the QMC5883L on your GY-87 breakout board.

Go Up