Hello,
I am using a QWIIC Quad Relay (V2) (COM-16566) with a Blackboard-C (SPX-16282) and I’m having an issue addressing the quad relay over I2C. Initially everything worked fine, I connected the relay with the QWIIC and ran the basic example and it worked fine. The problem started when I hooked in other QWIIC devices, initially I thought there may be an address conflict which there is not. Then I dug through this forum and saw that some iterations of the Quad Relay do not have 10k pullups, this doesn’t quite explain the issue as the relay shouldn’t have worked the first time when it was alone. The only way I can get the relay to work is if I jump the ADR jumper and force the ATtiny (on-board quad relay) to use the I2C_ADDRESS_JUMPER. I figured that maybe the EEPROM address got messed up so I re-wrote the stock EEPROM I2C addr of 0X6C and unsoldered the jumper, it still doesn’t work. Note: I’ve tried a couple different QWIIC cables.
This code is of a I2C scanner I found online
// I2C Scanner
#include <Wire.h>
void setup() {
Serial.begin (115200);
Serial.println ();
Serial.println ("I2C scanner. Scanning ...");
byte count = 0;
Wire.begin();
for (byte i = 8; i < 120; i++)
{
Wire.beginTransmission (i);
if (Wire.endTransmission () == 0)
{
Serial.print ("Found address: ");
Serial.print (i, DEC);
Serial.print (" (0x");
Serial.print (i, HEX);
Serial.println (")");
count++;
delay (2);
} // end of good response
delay(1);
} // end of for loop
Serial.println ("Done.");
Serial.print ("Found ");
Serial.print (count, DEC);
Serial.println (" device(s).");
}
void loop() {}
This is the output with other QWIIC devices attached, notice no 0x6D addr found.
I2C scanner. Scanning ...
Found address: 63 (0x3F)
Found address: 105 (0x69)
Found address: 114 (0x72)
Done.
Found 3 device(s).
RE SOLDER ADR JUMPER
I2C scanner. Scanning ...
Found address: 63 (0x3F)
Found address: 105 (0x69)
Found address: 108 (0x6C)
Found address: 114 (0x72)
Done.
Found 4 device(s).
This issue isn’t the end of the world for me because I can get away with the hard coded address as I have no other conflicts but I am interested in the cause.
My guess is the EEPROM is somehow corrupted?