I've been following a tutorial to hook up an electronic compass that relays info to the Pi via i2c. The only differences between my equipment and the tutorial's is that I am using a Raspberry Pi 3 with Python 3 already installed, and the HMC5883L compass I am using has been bundled with a few more sensors than that being used in the tutorial.
I've triple checked my connections, and am certain that VCC is hooked up to 3.3V, GND to GDN, SDA to SDA, and SCL to SCL.
I have confirmed that i2c-tools
and libi2c-dev
are installed, as well as python-smbus
.
i2c-dev
and i2c-bcm2708
have been added to /etc/modules
dtparam=i2c_arm=on
and dtparam=i2c1=on
have been added to /boot/config.txt
i2c-bcm2708
has been removed from the blacklist.
However, when I type the
i2cdetect -y 1
command, all I see is an empty address field.
UPDATE
It has been brought up that this is an SPI device and not an i2c device. I am not sure if that is the issue, as the vendor page says that it outputs in the i2c format. In addition, the data sheet the vendor provides for the compass on the sensor directly describes the compass as an i2c device.
More explicitly, my question is "how to I get the Raspberry Pi 3 to recognize an i2c device?"
FIX
Connecting the chip directly to the SDA and SCL from the Pi to the chip with no breadboard intermediate fixed the problem. wat