I2C - maximum cable length?

hi, what would you estimate or know is the maximum useful length of cables for an I2C connection between the Arduino and the I2C thing? Provided that + and GND are available and i only have to extend the SDA and SCL cables?

How do you want to go ?

Keep in mind that the I2C standard was designed for communications between ICs on the same board or at best between boards in the same system via backplane connections. There are I2C buss drivers that can effectively increase the length and using quality twisted pair shield cabling can help, but you have to do your own analysis on how best to approach it.

One ‘handle’ one has if they have control of the master side is to reduce the speed of the interface as most devices will still work fine at reduced speed, but it kind of depends on what kind of I2C device you are dealing with and how much data has to go back and forth if this is a realistic choice. So there is no simple answer. How far do you wish to to work?

Lefty

That was my concearn - that I2C was ‘just’ made for component communication…
In the end i would like to drive a few Port expanders via I2C and the data that is send consists of just a few byte (I2C Adress and Port settings) every few seconds…
And the length would be possibly up to 30, maybe 40m…

What speed do you require? You may be able to run longer distances at slower
speed. IIRC the I2C spec lists performance data for loads up to 400pF. Take
a look at the capacitance per foot of your cable and see how close you are.

IIRC TI makes repeaters with higher current drive. For 30 - 40m you want to
look at RS485 which was designed for those distances. You would need a uC
at both ends.

(* jcl *)

hm, ok. thank you…
The idea of having uCs at both ends is interestering… would offer some more stuff that’s be possible… hmm…
Well… have to see what i may do about it… it’s yet still just some sort of mind experiment to determine if it is doable at all…