Blog · Deep dive

The history of i2c: why Philips built it in 1982

Deep dive

A bus designed for television sets in 1982 is now in the cable behind your monitor, the chip under your laptop's touchpad, and every Arduino project ever posted. It has barely changed in forty years — and its own specification tells you why, if you read the revision history.

Every date and quotation below is from NXP's UM10204, Rev. 7.0 — the official i2c specification — and mostly from its revision-history table, which is a surprisingly good history of the bus in about twenty lines.

The problem

Why i2c was invented: too many wires in a TV set

In the early 1980s, Philips Semiconductors had a problem that looked like a hundred separate problems. The spec describes it as a pattern they noticed across their own products:

"In consumer electronics, telecommunications and industrial electronics, there are often many similarities between seemingly unrelated designs. For example, nearly every system includes: some intelligent control, usually a single-chip microcontroller; general-purpose circuits like LCD and LED drivers, remote I/O ports, RAM, EEPROM, real-time clocks or A/D and D/A converters; application-oriented circuits such as digital tuning and signal processing circuits for radio and video systems, temperature sensors, and smart cards."

That list is the origin story in disguise. "Digital tuning and signal processing circuits for radio and video systems" is a television. Philips made televisions, and a 1982 TV was becoming a computer: a microcontroller that had to tell a tuner which channel, a display driver what to show, and an audio chip how loud.

Every one of those conversations traditionally meant its own wires — a parallel bus, or a fistful of dedicated lines per chip. That costs pins on every package, traces on a board that has to stay cheap, and a fresh interface design for each new peripheral. Multiply by a product line and you're paying for the same problem over and over.

Philips' answer, in the spec's own words, was to build a bus "to exploit these similarities to the benefit of both systems designers and equipment manufacturers, as well as to maximize hardware efficiency and circuit simplicity". Two wires. Every chip on them. Addresses in software instead of pins.

The economics were the point, not the elegance. One interface design, reused across every chip Philips made, on two conductors that cost nothing to route.

The idea

What Philips got right in 1982

The decision that made i2c last was addressing in software. A chip doesn't need a chip-select pin, because it listens for its own 7-bit address and ignores everything else. Adding a device to a bus costs zero host pins — which is precisely why SPI, faster in every other respect, still loses whenever you have more devices than pins.

The second decision was open-drain wiring. No device ever drives the line high; pull-up resistors do that, and any device can pull it low. Two chips talking at once produces a defined result instead of a short circuit — which is what makes multi-controller arbitration possible at all, and why a stuck device can hang a bus rather than destroy it. That single choice explains most of what the protocol looks like, forty years on.

Both decisions trade speed for simplicity. In 1982, changing a TV channel, that was obviously the right trade. It's still the right trade for reading a temperature every second, which is why the bus never needed to change much.

The timeline

Every i2c specification revision, 1982 to 2021

Straight from NXP's revision-history table. Note how little happens after 2007 — and how the gaps stretch.

VersionDateWhat changed
Original1982First release. NXP's revision history records it in three words: “Original 1982 first release.”
v1.01992The first numbered specification — ten years of use before it needed one.
v2.01998“A de facto world standard… implemented in over 1000 different ICs and licensed to more than 50 companies.” Adds Hs-mode at 3.4 Mbit/s.
v2.12000Housekeeping revision.
v3.019 Jun 2007Fast-mode Plus: “increasing drive strength by as much as 10× and increasing the data rate to 1 Mbit/s while maintaining downward compatibility.”
v4.013 Feb 2012Adds Ultra Fast-mode — 5 Mbit/s, write-only, push-pull. A different animal that never caught on.
v5.09 Oct 2012Fifth release.
v6.04 Apr 2014Two timing figures recalculated. That's the entire changelog.
v7.01 Oct 2021master/slave → controller/target, “to align with MIPI I3C specification and NXP's Inclusive Language Project”.

Ten years from first release to a numbered specification. Another six to a world standard. Then fourteen years between the last real feature (Fast-mode Plus, 2007) and the most recent revision — which changed vocabulary, not electronics. Very few things in computing get to be finished. This one did.

The licensing

Why TWI exists, and one telling word

If i2c was so obviously good, why does your Atmel datasheet call it TWI — Two-Wire Interface — and describe the identical bus without ever saying "i2c"?

Because it was licensed. NXP's 1998 revision entry is explicit that the bus was by then "implemented in over 1000 different ICs and licensed to more than 50 companies". Using the name, and the addresses that came with it, meant a relationship with Philips. Atmel's workaround was to implement the protocol exactly and call it something else — which is why "TWI" and "i2c" describe the same wires to this day, and why our what is i2c page has to explain that they're the same thing.

Here's the detail I like. That 1998 sentence still exists in the current spec's revision history. And the introduction of the same 2021 document opens with the same claim, same numbers — one word different:

1998: "…implemented in over 1000 different ICs and licensed to more than 50 companies."
2021: "…implemented in over 1000 different ICs manufactured by more than 50 companies."

The patents expired, and the sentence quietly changed verb. Nobody announced it. It's just sitting there in the document, two pages apart, the whole licensing era opening and closing in the difference between licensed to and manufactured by.

Where it went

What i2c is used for now — mostly invisibly

Ask what i2c is for and you'll get sensors and displays. That's the visible half, and our what is i2c page covers which parts to reach for. The half nobody mentions is that i2c became infrastructure, and NXP's introduction names it plainly — the bus is used in:

Add the i2c HID Device in Windows Device Manager — your laptop's touchpad, which is i2c wearing a Microsoft input protocol — and the picture inverts. i2c isn't primarily a hobbyist bus that also appears in computers. It's a computer-industry bus that hobbyists also use. Philips solved the TV problem so thoroughly that the solution outlived the problem and colonised everything else.

The Arduino ecosystem is a late arrival to a party that started in a Dutch television.

The rename

2021: controller and target

The most recent revision, Rev. 7.0 of 1 October 2021, is almost entirely a vocabulary change. NXP's own changelog gives the reason without ceremony: the terms master and slave became controller and target "to align with MIPI I3C specification and NXP's Inclusive Language Project".

Nothing electrical moved. A controller is what a master was; a target is what a slave was; the waveforms are identical. Every datasheet, library and tutorial written before October 2021 — which is most of them — describes exactly the same bus in the older words. If you're reading two sources that disagree on vocabulary, they don't disagree on anything else.

The alignment with I3C is the interesting part. MIPI's I3C is the backward-compatible successor: faster, with in-band interrupts (no more separate interrupt wire) and dynamic addressing (no more address conflicts). It's appearing in phones and professional hardware. It is not, on any visible timeline, replacing the i2c in a $2 sensor.

Why it lasted

Forty years and still the default

i2c is slow. It has no error correction beyond an ACK bit, a 112-address space that everyone crowds into the same corner of, a 400 pF ceiling that limits it to a board or a bench, and a clock-stretching feature that even the Raspberry Pi's silicon gets wrong.

It won anyway, and it's still winning, because the trade Philips made in 1982 turned out to be permanent. Most chips in most systems have almost nothing to say. A temperature sensor produces a few bytes a second. A real-time clock produces seven. For traffic like that, bandwidth is worthless and pin count is everything — and a bus that costs two wires no matter how many devices you hang on it is unbeatable at that job.

Forty years of hardware got faster around it, and it never mattered, because the problem it solves isn't a speed problem. That's why a spec whose last meaningful change was in 2007 still describes the bus under your fingertips right now.

The protocol itself, byte by byte, is in how i2c works. What it is and what to build with it: what is i2c.

Questions

i2c history FAQ

Who invented i2c and when?

Philips Semiconductors — now NXP — created it in 1982. NXP's own specification document (UM10204) records the origin in its revision history as “Original 1982 first release”, and the first numbered version, v1.0, didn't appear until 1992. So the bus was in commercial use for a decade before it had a formally published spec.

Why was i2c invented?

To stop pin counts exploding in consumer electronics. NXP's spec explains the reasoning: nearly every system already contained a microcontroller, some general-purpose chips (LCD and LED drivers, RAM, EEPROM, real-time clocks, converters) and application chips like the digital tuning and signal processing circuits in radio and video systems. Wiring each one with its own parallel bus was expensive in pins, board area and design time. Two shared wires with addresses in software replaced all of it.

What does the i2c in i2c stand for?

Inter-Integrated Circuit — a bus for communication between integrated circuits on the same board. NXP's own documents call it the “Inter-IC bus”. You'll see the name written with a superscript 2 in formal typography, as plain i2c on a keyboard, or as IIC; all three mean the same bus.

Was i2c patented, and why does TWI exist?

It was licensed. NXP's 1998 revision entry says the bus was “licensed to more than 50 companies”, and that licensing is why Atmel and others shipped a functionally identical bus under the name TWI (Two-Wire Interface) rather than call it i2c. The core patents have long since expired, and the wording in NXP's current spec quietly reflects it — the 2021 introduction repeats the same sentence but now says the bus is “manufactured by” more than 50 companies.

Is i2c still being developed?

Barely, and that's a compliment. The last decade of revisions is minor: v6.0 in 2014 recalculated two figures, and v7.0 in 2021 was essentially a terminology change. Nothing about the electrical design has needed rethinking. New work happens in I3C — MIPI's faster, backward-compatible successor — rather than in i2c itself.

Why did i2c rename master/slave to controller/target?

NXP's revision history states the reason directly: the change came in Rev. 7.0 on 1 October 2021, “to align with MIPI I3C specification and NXP's Inclusive Language Project”. The electrical behaviour and the roles are identical — only the words changed — so any older datasheet or library using master/slave describes exactly the same bus.