Finally, got around to making my custom I2C cable using GX12 connectors and 1m length of CAT5 cable… Inititial results show rise time on clock pulses is about 25% higher than the original 50cm Core I2C cable… but crosstalk is about 12% lower with SDA and SCL on different pairs… each paired with GND. This with multiple I2C devices… so, pull-ups in parallel..
But.. it works - even at 400kHz. Woohoo.
One lesson I take away… soldering GX12 6-pin connectors is a real pain! In hindsight, I would have been better of changing my GX12 connectors for RJ45 sockets! I’ll make any further comments on this in the other thread on PCB design…
Cheers, T.
1 Like
Why are you using 6 pin connectors? I use 4 but I made my own backplane to avoid soldering wires. For the actual cables….I just paid a contractor!! 
1 Like
I have a few I2C devices (radio, LCD/OLED displays) in-box with my Pico… but the main purpose of my project is to measure water depth in my holding tank, and switch a bore pump on/off as required.
The laser distance sensor on the end of this cable is a VL53L1X, which has the 4xI2C pins plus 2 additional pins, at least one of which I will use immediately, the 6th pin maybe later…so I figured I might as well run a 6-wire cable to it.
Looking more closely at my traces last night I can see I really should add more pull-up… or drop the frequency to 100k, as the “shark-fin” trace is not good, taking pretty much the entire pulse width to reach 3.3V, So… as I said, it is working, but probably with not a lot of wiggle room. What do you think?
Cheers, T.
1 Like
From memory, (and in theory) if you are using twisted pair to reduce “noise”
in an non common twisted pair said (e.g. differential comms)
Then its normally 1 active pin with 1 ground pin (to drain the noise)
so
SDA + Ground (2 wires/1 Pair)
SCK + Ground (2 wires/1 Pair)
then add +V and Ground (2 more wires) = 6 of the 8
Hi Michael
If you refer to post 116 of this thread I descried a means of extending RS232 (usually a couple of metres) capability using this individual pair (as opposed to a 3 wire system with common ground wire) wiring coupled with low capacitance cable. We used this reliably over about 75metres in a higher reliability situation.
Actually I think the RS232 spec used to quote a maximum capacitance rather than an actual cable length.
This is the method Trevor has just used and you correctly summarised.
With this post are a few scans of a Hartland catalog which highlights the difference in capacitance with different dielectric material. I think this is the main contributing factor. I don’t know what this material is in Trevor’s cable
Cheers Bob
I’m using 4 core untwisted or shielded cable and am having zero problems. I bought the cable from Jaycar.
I just grabbed the best quality CAT 5 1-meter cable I had on hand… probably came with my router. It is labelled as CAT-5E. Since I was focussed on making a GX12 cable, I foolishly snipped off the RJ45s… and only then discovered what a PITA it is soldering to 6-pin GX12 plugs!
Ah well… in theory the GX12 is waterproof (?) whereas RJ45 most certainly isn’t!
I will do some further tests with additional pullups… but was quietly pleased to see less crosstalk than the original cable… as measured on my scope trace.
I measured the dip in the SDA (blue) trace on the falling edge of the clock pulse. This dropped from 680mV down to 600mV. Not huge… but clearly a small improvement in my rough estimate of crosstalk.
It’s really the shape of the clock pulse that bothers me… unless I can square it up a bit with a lower value pull-up resistor.
I currently have:
- VL53L1X - 10K
- 915MHz transceiver - 10K
- LCD2004 - 4K7
- LCD1602 - 10K
- OLED - 10K ???
All on the same I2C0 bus. When I get my PCB fabbed, I plan on splitting things up… with the VL53L1X on a separate I2C bus, probably running at 100kHz, and the other devices left at 400kHz
That should help significantly - but I’m still a ways off getting my PCB done. I’m happy to contiue to post progress here, if people are still interested, although it feels I’ve taken over Gerard’s thread (albeit I’m still talking about I2C design/performance) ! Apologies…
Cheers, T.
EDIT: PS @Michael99645 yes that’s (almost) the pairing I am using… and have also doubled up the 3.3V wire for good measure since I had spare conductors in the cable 
2 Likes
Finally… success with my custom I2C cable!
Dropped frequency to 100kHz on I2C1… fine for the VL53L1X… will keep OLEDs at 400kHz on I2C0 as recommended.
Added 2K pullups…(a bit of overkill…) and this is my resulting trace on a 1m CAT5 cable (plus say 10 centimeters of untwisted hook-up wires etc) What a huge improvement on the trace above!
This is actually a test rig… not my production setup, which has all those other I2C devs on it… but this shows my cable works fine after the tweaks mentioned. FInal deployment with all the other devices will need the pull-ups adjusted to compensate for the existing pullups… but I’m very happy with this result.
Thanks to the team for helping out. … Cheers, T.
2 Likes