What is i2c?
i2c (Inter-Integrated Circuit) is a two-wire serial bus that lets one controller talk to many chips over just two shared lines — SDA for data and SCL for the clock. Written i2c or IIC, said "eye-squared-C", it's the most common way sensors, displays and other peripherals connect to a microcontroller.
At a glance
The i2c bus in one table
| Full name | Inter-Integrated Circuit (written I²C, i2c or IIC) |
|---|---|
| What it is | Synchronous serial bus — one controller, many targets, two shared wires |
| Invented | 1982 · Philips Semiconductors (now NXP) |
| Wires | 2 — SDA (data) + SCL (clock), plus ground |
| Addressing | 7-bit, 0x08–0x77 — 112 usable addresses |
| Speeds | 100 kHz · 400 kHz · 1 MHz · 3.4 MHz (+ 5 MHz write-only) |
| Roles | Controller and target (called master/slave before the 2021 spec) |
| Typical devices | Sensors, OLED/LCD displays, RTCs, EEPROMs, ADCs, GPIO expanders |
| Successor | I3C (MIPI) — faster, backward-compatible, not yet common in hobby hardware |
The name
What does i2c stand for?
i2c stands for Inter-Integrated Circuit — literally, a bus for communication between integrated circuits on the same board. Philips Semiconductors (now NXP) created it in 1982. You'll see it written three ways — I²C with a superscript 2 (the typographic form, used in NXP's own documents), the plain-keyboard i2c we use throughout this site, and IIC — and hear it said "eye-squared-C" or "eye-two-see". Atmel chips call the identical protocol TWI (Two-Wire Interface) to sidestep the trademark. They're all the same bus.
The two roles on that bus were called master and slave from 1982 until NXP's 2021 revision of the official spec (UM10204 Rev. 7.0) renamed them controller and target — same electrical behaviour, updated language. Expect to see both pairs of terms; older datasheets, forum threads and libraries still say master/slave.
Why Philips built it, what it was originally for, and every revision since: the history of i2c.
The wires
The two wires: SDA and SCL
Every i2c connection comes down to two signal wires plus power and ground:
- SDA — the serial data line. Addresses, data and acknowledgements all travel here, one bit at a time.
- SCL — the serial clock line. The controller pulses it to pace every bit; devices read SDA on the rising edge.
Both are open-drain: any device can pull a line low, but only pull-up resistors return it high. That's the trick that lets many devices share the same two wires without fighting — and why a bus with no pull-ups simply doesn't work.
That's the whole electrical story: one controller, one pull-up per line, and every target chip hanging on the same two wires — each answering only to its own address.
Addressing
How one bus holds many devices
Each device on an i2c bus has a 7-bit address (0x08–0x77). The controller opens every exchange by broadcasting an address; only the matching device responds, and the rest stay quiet. That's how a single pair of wires can run a temperature sensor, an OLED display, a real-time clock and a dozen more at once. The catch is collisions — two devices sharing an address — which our i2c address list and conflict guide exist to solve. Curious about the exact bit-by-bit sequence? That's how i2c works, byte by byte.
What it's for
What is i2c used for?
i2c is built for low-to-moderate-speed control and sensor data, not bulk transfer. Typical devices: environmental and motion sensors, OLED and character LCD displays, real-time clocks, EEPROM memory, ADCs and DACs, GPIO and PWM expanders, and power monitors. On the maker side it shows up as plug-together ecosystems — Qwiic, STEMMA QT, Grove — that put i2c on a keyed 4-pin cable so there's nothing to solder. When you need raw speed instead (displays pushing pixels, SD cards), that's where SPI comes in.
Try it
Where to go next with i2c
Ready to use it? Enable i2c on a Raspberry Pi or open the Arduino i2c tutorial, then scan your bus to see what's connected. Debugging a dead bus? The 7-step checklist covers it. Or grab the free i2c tool to scan, identify and read chips from a console.
Curious rather than building? The history of i2c covers why Philips invented it in 1982 and where the bus quietly ended up — including the cable behind your monitor.
Questions
i2c FAQ
What does i2c stand for?
i2c stands for Inter-Integrated Circuit. It's written i2c or IIC and pronounced "eye-squared-C" (or "eye-two-see"). Philips Semiconductors — now NXP — invented it in 1982 to let chips on the same board talk over just two wires.
What is an i2c bus?
An i2c bus is the pair of shared wires — SDA (data) and SCL (clock) — that every i2c device connects to, plus the pull-up resistors that idle them high. One bus can carry many devices at once because each has its own 7-bit address.
What are SDA and SCL?
SDA is the serial data line and SCL is the serial clock line — the two wires that make up i2c. The controller always generates the clock on SCL; data travels on SDA, one bit per clock pulse, in either direction depending on whether it's a read or a write.
Is i2c the same as IIC or TWI?
IIC is just another spelling of i2c (both mean Inter-Integrated Circuit). TWI (Two-Wire Interface) is Atmel's trademark-dodging name for the identical protocol — treat all three as the same thing.
Is i2c's controller/target the same as master/slave?
Yes. i2c used "master" and "slave" for its two roles from 1982 until NXP's official spec update (UM10204 Rev. 7.0, October 2021), which renamed them to "controller" and "target" as part of an industry-wide inclusive-language push shared with I3C. The roles and electrical behaviour are unchanged — only the names — so older tutorials, datasheets and libraries using master/slave describe the identical bus.
What is the difference between i2c and I2S?
They're unrelated despite the similar name. i2c (Inter-Integrated Circuit) is a general control bus for sensors and peripherals. I2S (Inter-IC Sound) is a dedicated audio bus that streams digital sound between chips — different wires, different purpose. See our i2c vs SPI vs UART guide for how i2c compares to the buses it actually competes with.
What is I3C?
I3C (Improved Inter-Integrated Circuit) is MIPI's newer, faster, backward-compatible successor to i2c — higher speed, in-band interrupts and dynamic addressing. It's arriving in phones and pro hardware, but i2c still dominates hobby electronics and will for years.
Why does Windows show an "I2C HID Device"?
That Device Manager entry is your laptop's touchpad or touchscreen — an input device connected internally over the same i2c bus, wrapped in the HID (Human Interface Device) standard. It's the exact protocol described here, just inside a PC. See our I2C HID Device explainer for what it is and how to fix the common Code 10 error.
Related
Compare it to the other buses in i2c vs SPI vs UART, browse the connector standards and sensor dataset, or — if you landed here from a PC error — see what the Windows I2C HID Device actually is.