I2C was originally designed for talking between devices separated by fairly short distances. For example, between all the chips inside an iPhone. So a total length of inches (centimeters), not feet (meters).

The total distance achievable depends on things like the strength of the pull up resistors, clock speed, external interference, quality of wires, etc. There is no one magic value. Here are some very rough guide line values.

THESE ARE NOT STRICT REQUIREMENTS. JUST ROUGH VALUES.

CLOCK SPEED

100kHz

400kHz

1MHz

TOTAL DISTANCE

12"

6"

3"

THESE ARE NOT STRICT REQUIREMENTS. JUST ROUGH VALUES.

Suggested Approach

So what can you get away with? In true hacker spirit - just try it and find out! So, yah, I2C was designed for short distances. BUT - you may find that for your application you're happily getting away with 10 feet of cabling. Great!

Not working reliably? Getting weird readings or random drop outs? Try shortening the cable length or reducing the I2C clock speed.

For applications that truly need long cable runs, using an active terminator is an option:

Adafruit LTC4311 I2C Extender / Active Terminator Attached to a 100 foot Ethernet cable on one end. other end of cable goes to a QT Py microcontroller.
I2C stands for Inter-Integrated-Circuit communications, it's meant for short distances on a PCB or subassembly. But, hey, we're engineers, and we like to push the limits of...
$7.50
In Stock

This guide was first published on Mar 09, 2022. It was last updated on Mar 09, 2022.

This page (Cable Length) was last updated on May 24, 2022.

Text editor powered by tinymce.