2

I have linked this chip to my raspberry pi. I used these instructions to do it then installed everything I was told to install using these instructions. For some reason only two of the devices are showing when I run sudo i2cdetect -y 0 as you can see below:

enter image description here

I was wondering if would explain why the third device isn't showing up (which I think is the HMC5883L chip that is not showing up).

EDIT:

Wiring diagram:

enter image description here

18
  • MPU6050 is 0x68 and BMP180 is 0x77. I'm not sure I understand how you are saying to work out which address HMC5883L is? :) I've also added wiring diagram to post.
    – cross
    May 15, 2015 at 18:01
  • @goldilocks But everything is on one chip so I can't detach individual chips.
    – cross
    May 15, 2015 at 18:06
  • And I linked to the other one that was working was because it had the wiring diagram :) This is the chip ebay.co.uk/itm/…
    – cross
    May 15, 2015 at 18:09
  • You might have a faulty board on your hands - you wouldn't by chance have purchased a second one so you can see if the issue is the same on both?
    – Phil B.
    May 15, 2015 at 18:16
  • Okay, my bad. I skipped over the first link that showed the combo breakout. As Phil says, if two of the chips show up, obviously your wiring is right -- I dunno what else you can do. But someone else might...
    – goldilocks
    May 15, 2015 at 18:19

1 Answer 1

1

I had the same problem. The board is not faulty, the problem is caused by the MPU6050. Add these lines to the MPU6050 initialization process:

self.bus.write_byte_data(self.address, 0x37, 0x02)
self.bus.write_byte_data(self.address, 0x6A, 0x00)

so the whole MPU6050's initialization process is something like this:

self.bus = smbus.SMBus(1) // or 0, depends on the revision of the board
self.address = 0x68

self.bus.write_byte_data(self.address, PWR_MGMT_1, 0x80)
time.sleep(2)

...

self.bus.write_byte_data(self.address, 0x37, 0x02)
self.bus.write_byte_data(self.address, 0x6A, 0x00)

After running this code, type sudo i2cdetect -y 0, and the third device will show up. Hope it helps!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.