This is an old revision of the document!
Table of Contents
What's this I²C Thing?
I²C, prounounced I-Squared-C, is short for the “Inter-Integrated-Circuit bus”. It was invented in 1982 by Philips, although the patent is now expired.
More than you'll ever need to know is on the I²C Wikipedia page.
Sometimes it is also known as the “two-wire” bus, which is also descriptive, because it has two signal wires. Those two wires are called “SCL” and “SDA, for “serial clock” and “serial data.”
Some basic facts aboutI²C: * It was originally intended to stay on the same PC board, but works over a few feet of cable * It runs at 100Kbps or 400Kbps * Each “slave” device has an address, and each slave on the bus must have a unique address * Some devices have pins that can chose from several addresses. Others are limited to one per bus because the address can't be changed.
I²C in FRC
Since the introduction of the RoboRio, there has been an easy way to use I²C for FIRST robots. The connector on the Rio looks like this. The connector has four pins. In addition to SCL and SDA, there is a pin for 3.3v power, and a pin for the common ground for signal and power. This means that no external power source is needed or recommended for attaching an I2C device.
Around 2018-2019 we started to see packaged color and distance sensors from Rev Robotics and others.
For 2020 Rev introduced a cable to make using one of them easy with the RoboRio.
I²C in other maker/hobby wiring
QWIIC
Sparkfun has many sensor boards and controllers that use a tiny 4-pin connector they call QWIIC. It carries the SDA and SCL signals, ground, and +3.3v power.
(picture)
Adafruit wants to call the same thing STEMMA-QT.
