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.
CLOCK SPEED 100kHz 400kHz 1MHz |
TOTAL DISTANCE 12" 6" 3" |
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:

Page last edited March 08, 2024
Text editor powered by tinymce.