I2c bus length?

Hey guys,

I’m new to the Imp and i2c. The device I’m developing needs to interface with other add-on modules via SATA cables (just using the cables and connectors). I could have 4 or more devices daisy chained from my main device (which has the imp), with 2-3 meters of cable total. I see that there are i2c repeaters/buffers available, but I’m wondering how I should handle the connection on my main board. Can I just run the i2c connection straight from the imp to my cable connectors with the pull-up resistors?

The main thing here is capacitance; the cable and connectors will add a lot of capacitance which will slow down the bus.

You should use strong pullups (I’d suggest 1kohm) and run at 100kHz or less but apart from that you should be fine. I’d suggest picking the pinout very carefully in case someone plugs a real SATA device into the cable, though…

Thanks Hugo, that’s very helpful.