This I²C extender board from SJTbits greatly expands the operational distance of an I²C (TWI) bus by transparently bridging the connection between individual I²C devices with differential signaling. The board takes the two I²C signals, data (SDA) and clock (SCL), and divides them into inbound and outbound signals (four signals). Each of these unidirectional signals is connected to either a differential line receiver or differential line transmitter, thus forming four sets of differential pairs (eight signals). By using differential signals, the extender boards can increase the range and noise immunity of an I²C bus, and isolating each I²C device helps avoids problems caused by excessive bus capacitance.
A separate extender board is required for each I²C device on the bus (one for the master and one for each slave), so you will need at least two boards in your system.
The following diagram shows how to connect an I²C master and multiple I²C slaves with differential extender boards:
The I²C differential extender works best with 5 V on VIN and SDA/SCL (the data/clock lines of the I²C bus); if your I²C bus uses a different voltage level, a logic level converter is recommended. The board does not include pull-ups on SDA and SCL. For more information about using the differential extender, please refer to its datasheet (2MB pdf).
Since standard category 5 cable (or Cat 5, commonly used for Ethernet wiring) contains four differential pairs, it is ideal for making the connections between pairs of I²C extender boards. The extender boards have been tested with Cat 5 cable by SJTbits at a range of 150 feet and an I²C clock speed of 100 kHz. The maximum range possible will depend on the wire properties and clock speed.
I²C long-distance differential extender, bottom view with included headers.
I²C long-distance differential extender inserted into a solderless breadboard.