I connected one differential I2C module on each end of a CAT-5e cable, on one side is an i2cDriver connected via qwiic, on the other is a SparkFun uBlox GPS module and one other SparkFun sensor board. The pull-ups are enabled everywhere, and an i2c scan yields nothing. I suspect I need to remove at least some pull-ups, but I’m not clear on where they should be enabled in a point to point system (only 2 differential modules per cable, one at each end) with a low power device or two hanging off a leg on the remote end via qwiic. The same circuit works fine connected directly to the i2cDriver.
At which points in the system should pull ups be severed/disabled and remain? Leave them on the modules, but take them off the devices, vice versa? Thanks!
Going down to just the GPS on the remote side still gets me nothing =/
… always test your cables. Turns out the two red cables in my drawer I had weren’t just red for fun- they were crossovers. I didn’t even know because switches have been undoing them for years for me.
So— I had the misfortune of buying 3 LED sticks that have firmware issues and crash my I2C bus- even without the cable, but in trying to get the darn things to work over the cable, I think I nearly blew out my supply. Had VDDB cut on the back and soldered on the front and a 5V supply on VDDB- the other end was normal. As soon as I plugged it in, my macbook shut down the USB port due to overcurrent it said, despite my powered USB hub connected in the middle- which must have shutdown too because everything went dark. The GPS, BME280, and CCS811 seem to still respond on a scan- though I don’t have code that I can test them right now. The GPS is functioning normally over USB at least. Can’t speak for the I2C interface other than it seems to ack at least since the scan picks it up. Same for the other two chips. I think the LED sticks are just all kinds of funky to be trying differentially powered (even though I tried to power it on the LED side with the traces as described when it blew). This was just an end to end. One normal differential board, one with the traces as above (closed front, open back- if the traces were cut right and I didn’t scrape too much).
Hello loconut.
Just to make sure we’re on the same page,
- Remote board front side:
- I2C PU jumper = closed
- VDD A-B jumper = closed
- VDDB header = connected to external 5V power supply positive
- GND header = Connected to external 5V power supply ground
- Qwiic connector --> Qwiic device
- Remote board back side:
- VDDB jumper = open
- GND jumper = closed
Local board = is at the defaults.
What Qwiic devices do you have connected to the remote board?
I’m getting 304 ohms between VDDB and the other side of the jumper on the back- is that open or broken?
what I had was local side- stock (i2cdriver connected). every jumper closed, remote side, vddb closed on the front and open on the back. Ground was closed everywhere.
the power was a special 5v USB to JST cable.
Burned out my USB hub =/
I’m getting 304 ohms between VDDB and the other side of the jumper on the back
If that's with the CAT5 cable disconnected, you don't have that jumper completely open.
If you’re supplying power on the remote end, you probably want to disconnect VDDB and GND on both boards to completely isolate the two power sources.
I’m not sure what caused your issues, but I suspect there was a voltage difference between your local board and remote boards ground and that caused a voltage to flow between the two. (and your hub/computer) Cutting VDDB and GND on both boards should help eliminate a potential (voltage) difference between them.
Thank you. Hopefully I’ve not damaged the board where that Trace is. It’s hard to see even with a magnifying glass. I have a couple spares fortunately too. Thanks for your help. Those LED sticks are beautiful but I think I’ll just stick with the differential cards in stock configuration and not use anything high power. Fortunately the GPS seems to supply good i2c power on the remote end.
OK- so I verified the GND and VDDB traces are obliterated with the multimeter and now an interesting problem remains:
local side: i2cDriver(.com), fully stock differential i2c board- everything closed.
remote side: modified differential i2c board- i2c pullups open, VDDB front closed, back VDDB+GND OPEN, Qwiic LED Stick, VDDB 5v coming from a SparkFun supply that comes out as a molex- with a little adapter cable.
When I plug the LEDs into the local side AND disconnect the modified remote side board altogether, I can control the LEDs fine as expected. But even if I leave the LEDs at the local side and reconnect the remote side- just a dangling module with power connected- I am no longer able to control the LEDs until I disconnect the cable. An I2c scan still shows the LED stick though.
Any more ideas? Thanks!
Sadly, I’m out of ideas.
Is there any reason why you’re not using a stock board on both ends of your CAT5 cable and not using a power supply on the remote end?
Just modify the LED stick you mean? I’ll have to look at the VIN limits on the PTH connectors. I’ll have ~5v available. Runs about 5.2 it seems.
What LED stick are you using? I was thinking you had the SparkX Qwiic LED Stick and that should be running at 3.3 volts. it looks like there is an option on the stick for running the LEDs from a separate 5 volt power source though.
I’ll check that out. Thanks