20250414 - Guest Lecture at CMU
Guest Lecture at CMU: Reflections on FireWire
4.14.25 San Mateo, California- On March 18, 2025, I had the pleasure of speaking at Carnegie Mellon University’s Silicon Valley campus, sharing some war stories from my time working on IEEE 1394—better known as FireWire. It was a wild and formative project from my early career at Apple, and though FireWire didn’t win the market, it paved the way for the universal connectivity we take for granted today. Modern USB, for example, owes a lot of its DNA to it. Back then, plugging in a peripheral wasn’t plug-and-play—it was plug, install drivers, reboot, and pray. Hot-plugging? Forget it. And there were different cable/connector types for peripherals like serial, parallel, etc. which don’t guarantee any sort of compatibility protocol-wise.
The Origin Story
I joined Apple straight out of college and landed in the “Peripheral Systems and Products” group. We built the fun stuff—mice, keyboards, printers, Appletalk, CD-ROMs, and a bunch of experimental gear like Q-Ball (a 6DOF input device), FDDI, and early touchpads.
FireWire started as a better way to connect all those devices. At the time, the Macintosh Portable industrial design was suffering under the weight of every imaginable port—Serial, SCSI, ADB, video, audio, floppy—you name it. The dream was one port to rule them all. But building a universal, high-speed interface for both known and future devices was... not trivial.
Making the Physical Connection
One early concern: could we hit our target speed of 200Mbps using regular cables? We flirted with fiber optics for a bit, thinking we’d need something exotic. But after wrapping a regular 2-conductor copper cable around the building and testing it, we proved it worked just fine for most real-world setups (1–5 meters). Crisis averted.
Designing the Bus
Our first bus architecture resembled something like CAN Bus—open collector, with arbitration based on serializing address bits in sequence. Whoever asserted the highest address won. But as I was running simulations, I noticed something troubling: 80% of the bus time was being eaten up by arbitration, leaving only 20% for actual data transfer.
That won't work. So our team came up with a new arbitration method based on a directed graph—a tree structure. With it, arbitration dropped to single digits, and we were now using nearly all of the bus bandwidth for real communication. Big win.
Locking the Connector Down
We entertained all kinds of connector ideas—stacked optical ports, wild prototypes—but eventually took inspiration from the Nintendo GameBoy’s rugged bladed connector. Ours had 6 pins, was keyed to avoid wrong inserts, and carried power. Sony wanted a smaller version for their DV cameras, so the 4-pin variant was born (no power, more compact) as well.
Standards and Stall-Outs
We began standardizing FireWire early, hoping to attract collaboration—especially from IBM. It became P1394 under the IEEE. But standards bodies aren’t exactly fast-moving, and trying to innovate in public slowed everything down. In hindsight, we should’ve shipped first and standardized after adoption.
Internally, Apple never fully committed. After 6 years, they tried to shut the project down. Most of the team was laid off—except two of us, Bill Duckwall and myself—because we were needed to support licensing deals with Texas Instruments and others. That was my cue to exit. I headed to 3DO (a kind of ex-Apple refuge), to work on video compression, then WebTV, Microsoft, Intel…
The USB Surprise
Around the same time, USB quietly emerged from Intel, IBM (!), and a few others. On paper, it was worse: slower (12Mbps vs. 200), no peer-to-peer, and a famously infuriating connector you never plug in right the first time. But Intel made all the motherboards, so USB just... showed up everywhere.
FireWire found a niche in DV cameras and external drives for a while, but when Steve Jobs returned, he decided Apple should charge $1 per port for the IP. That infuriated partners and killed adoption. FireWire quietly faded away.
What This Means for Domatic
Domatic borrows a lot from the FireWire/USB era. Back then, we wrangled a chaotic tangle of cables and protocols into something unified, much like what we’re doing with Domatic today, unifying smart buildings with a single low-voltage bus. In addition, we’re applying hard-earned lessons from my time at Apple:
- Don’t strangle the ecosystem.
- Silicon gets cheap—build for the long arc.
- And most importantly: perfect is the enemy of good.
Follow along as we keep building: http://domatic.io