I2C/IIC longer cable runs without extenders

Recently I was building some custom boards which had an 0.96″ OLED display that was remotely mounted. In my prototyping I noticed no ill effects from extending the 4 core cable to the OLED display.

The wiring comprised of GND, 3.3V, SCL and SDA signals. I had 4.7K pullups at the board side.

Then came the issue when I had replicate across the production units with the cables at 2.2m each.

I was perplexed since I had a working example at 2m.

The only difference was the prototype used 4 core screened audio cable (individual screens) vs the production version of single screened UTP.

Turns out, CAT6 is a poor choice for I2C even at lengths of a metre or so. Even with the following configuration:

  • SDA on Orange
  • GND on Orange/White
  • SCL on Brown
  • GND on Brown/White
  • 3.3V on Green
  • GND on Green/White
  • 3.3V on Blue
  • GND on Blue/White

I tried varying the clock speed from 700KHz to 400KHz to 100KHz to 10KHz  and even 100Hz…no such luck.

I even tried adding a separate 3.3V power supply and additional pull ups at the OLED panel. No luck.

Turns out the solution was under my nose all along. The 4 core screened audio cable. Specifically from Jaycar, WB-1510, works flawlessly at lengths up to 3m (that I have tested). It could work with even longer lengths! Just make sure you ground all the screens at the board end to earth/chassis.

Hope this helps someone out there that is having issues with I2C beyond a metre….