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 technology, right? So why not try to have I2C run over a meter long cable, or even longer? Well, if you try to do that, you'll quickly find that the length of the cable adds capacitance and resistance that slows down the open-drain pullups used in I2C, making it hard to use 100KHz+ clock speeds. You could try slowing down your I2C clock to 1 KHz...or you could use an Adafruit LTC4311 active terminator like this one!

Using this board is easy: connect it to your I2C bus at the beginning of the chain (if you don't have a massively long cable, you can also try at the end of the chain). When the chip is powered and enabled, it will watch the SCL and SDA lines. When it sees them being pulled up through the I2C resistors, it will activate and dump in some current to give it a boost thru to the top power rail.

That means your signals go from looking like this...

To looking like this!

You can now achieve much faster data rates without having to noodle with resistors, and over long cables. We ran a 400 KHz OLED over 3 meters of phone wire with ease. With a 100KHz signal, we even ran a BME680 over 100 feet of Ethernet (about 3000pF round trip!), and had an OLED display the sensor details.

Runs with any bus voltage, from 1.6V to 5.5V and up to 400 KHz SCL speed, with cables up to 4000pF. No special firmware, software, or configuration required. Simply plug the power, ground, SCL and SDA connectors into your bus and watch as your rise times magically turn sawtooths into square waves.

To get you going fast, we spun up a custom made PCB in the STEMMA QT form factor, making it easy to interface with. The STEMMA QT connectors on either side are compatible with the SparkFun Qwiic I2C connectors. This allows you to make solderless connections between your development board and the LTC4311 or to chain it with a wide range of other sensors and accessories using a compatible cable.

Power Pins

  • VIN - this is the power pin, This device can use 3V or 5V logic, provide power on this pin!
  • GND - common ground for power and logic

I2C Logic Pins

  • SCL - I2C clock pin, connect to your microcontroller I2C clock line. There's a 10K pullup on this pin in addition to the active terminator.
  • SDA - I2C data pin, connect to your microcontroller I2C data line. There's a 10K pullup on this pin in addition to the active terminator.
  • STEMMA QT - These connectors allow you to connectors to dev boards with STEMMA QT connectors or to other things with various associated accessories. We recommend putting the active terminator at the 'start' of your I2C chain, before a long cable (we got the best signal performance that way)
  • EN - Enable pin, pulled high to VIN. Pull down to ground to disable the terminator.

Ethernet cable (a.k.a., CAT-5/CAT-6 cable) is perfect for extending your I2C sensors using the LTC4311. By doubling up the eight conductors we can get a nice, clean signal to run upwards of 100 feet / 30 meters of distance!

Here's a nice way to connect your STEMMA QT devices to the Ethernet cable, using some hookup wire, heat shrink tubing, and a pair of RJ-45 adapters.

If you need to connect an RJ-45 cable (a.k.a Ethernet) to a board that doesn't have an Ethernet jack - this adapter will come in very handy! No soldering required -...
In Stock
Perfect for bread-boarding, free wiring, etc. This box contains 6 spools of solid-core wire. The wire is easy to solder to and when bent it keeps its shape pretty well. We like to have...
Out of Stock
Heat shrink is the duct tape of electronics, it keeps your stuff all safe and kept together. Especially when wiring and soldering, use heat shrink to add mechanical strength to cables....
In Stock
Are you a maker in the midst of a STEMMA dilemma? This 100mm long cable is...
In Stock
  • Cut short sections of solid core hook-up wire, then strip their ends
  • Cut and slide the insulation to expose a section of wire in the middle
  • Bend each wire to form a tight U-shape
  • Insert each wire into the RJ-45 adapter as shown
  • Remove the Grove connector from a STEMMA QT-to-Grove adapter (or cut and strip the ends)
  • Slip short sections of heat shrink tubing over each STEMMA QT wire as shown below
  • Solder the STEMMA QT cable wires to the U-shaped jumpers as shown
  • Repeat for the other adapter

Slide the tubing over each solder junction and heat shrink it in place.

Now, you can plug in any length (up to about 100 feet / 30 meters seems to work well) of Ethernet cable, and then plug the STEMMA QT cables into your sensor on one end and the LTC4311 terminator on the other. Connect the LTC4311's other connector to your microcontroller and you're ready to go!

This guide was first published on Oct 07, 2020. It was last updated on Oct 07, 2020.