Qwiic Relay (COM-15093) is not detected by I2C

I received a new Qwiic relay and I use the example code, Example1_Single_Relay_Basics, on Arduino and it keeps say “Check connections to Qwiic Relay.”

I used another board and different Qwiic cable and programmed to scan I2C and it comes as empty. I think, the microcontroller on the relay is no longer working.

Do you have another i2c sensor/device you can test?

Also maybe try disabling the pull-up resistors https://learn.sparkfun.com/tutorials/qw … e-overview by cutting the traces between the pads (can always be re-enabled by placing a solder blob onto those same pads) and see if it appears then

If those don’t get it going: Was it purchased from us? If so head over to www.sparkfun.com/returns (contact vendor if purchased elsewhere) and we’ll get ya squared away

Yes, I tested with chained I2C from ESP32 > SGP30 > Relay. Again, ESP32 detected SGP30, but no Relay. I cut the I2C pads and I used the digital multimeter and measured between VCC and SDA and SLC, it’s reading was almost 10k Ohms.

And I purchased the product from you. I will head over the returns.

I also have (4) single Qwiic relays and none of them working either. The I2C scanner shows nothing found and I have tired cutting the pull-up traces and no change. Seems to be bad QC on the last batch or something. I’m using my RedBoard with Qwiic and also tired my ESP32 with Qwiic. I have tested with other Qwiic sensors and they work fine its just these relays.

Same here, two single relays can not be detected on the i2c bus. Disabling the pull-up resistors didn’t help. Reading directly with i2cget returns Error: Read failed. Looks like a dead tiny85, or faulty firmware on it.

Well shoot, I just spent several hours trying to figure out why this wasn’t working for me before coming to the forums and seeing this as the top post.

What gives? Is there a batch of faulty devices or is this a broader compatibility issue?

For clarity, I have the SparkFun Blues Wireless MicroMod Starter Kit and purchased a SparkFun Qwiic Single Relay. I can read sensor data from the accelerometer just fine, but the relay is never detected.

I got my relay through Amazon so maybe it’s stale in some way? Just ordered a replacement through the Sparkfun website. Will report back on if I see the same behavior with a second device.

I have the same problem as everyone. Purchased 4 relays, they would be detected initially but, on the second use, do not show up on i2c detect. Has anyone found a solution or an alternate relay to use?

The board has an attiny85 for handling the I2C comms. This chip is known for applying clock-stretching; several processors/wire libraries do not support this. Try a lower speed e.g. 35Khz and see what happens

I tried Wire.setClock(35000); and didn’t observe any changes.

I also followed this suggestion https://learn.sparkfun.com/tutorials/ho … umper-pads and tried scratch away those connections to see if that helped. I’m not sure if I did it correct/well, but didn’t observe any change in behavior after cutting at them.

A new relay should be here tomorrow so I can try and compare behaviors.

If anyone in this thread is seeking a refund: Was it purchased from us? If so head over to www.sparkfun.com/returns (contact vendor if purchased elsewhere) and we’ll get ya squared away

TS-Russell:
If anyone in this thread is seeking a refund: Was it purchased from us? If so head over to www.sparkfun.com/returns (contact vendor if purchased elsewhere) and we’ll get ya squared away

The price itself isn’t super consequential to me. I’m just interested in getting to a working product and understanding what the issue is, ya know? I appreciate the refund offer though.

Is this the sort of thing that Sparkfun can connect on their side? I assume the device works for you? Under what configurations does it work for you? etc.

My current theory is a few units got shipped out either without firmware or with bad firmware because I’ve seen several similar cases in the last 2 weeks or so; I do have a working unit with good i2c comms (using the default guide https://learn.sparkfun.com/tutorials/qw … e-assembly)

Let me know if your new unit works as expected or not (quote this message when responding to ensure I’ll see it/get an alert to check this thread)

TS-Russell:
My current theory is a few units got shipped out either without firmware or with bad firmware because I’ve seen several similar cases in the last 2 weeks or so; I do have a working unit with good i2c comms (using the default guide https://learn.sparkfun.com/tutorials/qw … e-assembly)

Let me know if your new unit works as expected or not (quote this message when responding to ensure I’ll see it/get an alert to check this thread)

Hey there. My second relay doesn’t work out of the box, no.

What do you think our next steps should be?

I could try ordering the shield device and try a setup using that rather than my current board to try and rule that out? Or maybe you could try plugging in something from the stock that’s being currently sent out and try with the board I’m using?

I’ll need to get some testing done on our stock and I’ll be able to let you know; hang tight and I’ll update shortly

TS-Russell:
I’ll need to get some testing done on our stock and I’ll be able to let you know; hang tight and I’ll update shortly

Sounds good to me. Let me know when you can provide an ETA, please :slight_smile: Thank you!

I think I found the solution. Apparently, from someone else’s suggestion, the address in the EEPROM might be getting corrupted. If you look at the firmware, it will check the register if there is something in there and only if not will it set it to 0x018. My guess is that the register is getting corrupted and there is some corrupt address in there and hence not setting it to 0x018. There is however an initial piece of code in the firmware that will set the address to 0x019 before even checking the register, if the address pin is shorted. So I put a blob of solder on the address pin at the back of the relay, the ADR pin (just join the two pads with solder), and that seems to be working fine for a few days now. The address will be 0x019 instead of 0x018 but you can change that in your code pretty easily.

tsharma:
I think I found the solution. Apparently, from someone else’s suggestion, the address in the EEPROM might be getting corrupted. If you look at the firmware, it will check the register if there is something in there and only if not will it set it to 0x018. My guess is that the register is getting corrupted and there is some corrupt address in there and hence not setting it to 0x018. There is however an initial piece of code in the firmware that will set the address to 0x019 before even checking the register, if the address pin is shorted. So I put a blob of solder on the address pin at the back of the relay, the ADR pin (just join the two pads with solder), and that seems to be working fine for a few days now. The address will be 0x019 instead of 0x018 but you can change that in your code pretty easily.

This is encouraging and makes sense, but I wasn’t able to detect either of my relays using a port scanner after soldering the ADR pin. Hummm. I’ll play around with it a bit more soon, but hoping for a more definitive answer from the Sparkfun team, too. Thanks for providing more information!

Ok, it looks like we did have a bad batch…anyone with bad units: Was it purchased from us? If so head over to www.sparkfun.com/returns (contact vendor if purchased elsewhere) and we’ll get ya squared away

TS-Russell:
Ok, it looks like we did have a bad batch…anyone with bad units: Was it purchased from us? If so head over to www.sparkfun.com/returns (contact vendor if purchased elsewhere) and we’ll get ya squared away

Thanks for the follow up! Appreciate it.

Do you know when the next batch will be available for purchase?

They’re ready now; current stock should be good to go :slight_smile: