I’ve am trying to connect a Qwiic Quad Relay to a Particle Photon using the Qwiic Photon shield and standard Qwiic connectors. When I run the I2C scanner within the quad relay library, it fails to pick up any devices. However when I connect another Qwiic device, the keypad in this case, it picks up both devices as follows:
I2C scanner output:
Scanning… I2C device found at address 0x4B ! I2C device found at address 0x6D ! done
I am really perplexed by this. Any help would be appreciated.
Looks like the qwiic quad relay doesn’t have i2c pullups on board (unlike a handful of other quiic boards I looked at). To use it by itself, you will need to add pullups to SDA and SCL (2.2k or so to 3.3v)
What version Qwiic Quad relay are you using? Is it the SparkX (black) version or the SparkFun (red) version?
I’m not sure why we didn’t include pullups on this board and I suspect the engineer that designed this product might be using some sort of trick in the firmware that eliminates the need for pullups. It sounds like your board might have an older firmware version loaded that doesn’t include that feature.
As you’ve found, having a second board on the same I2C bus that does have pullups on it takes care of the issue, but if you’re not using another Qwiic board (Just the Qwiic Quad Relay) a fast way to get around this issue would be to add a few 10K resistors between 3.3V and the SDA/SCL pins like in the diagram below.