"Universal" Serial Bus —

Raspberry Pi admits to faulty USB-C design on the Pi 4

"I expect this will be fixed in a future board revision," says co-creator.

The Raspberry Pi 4 was announced two weeks ago as a major new upgrade to the line of cheap single-board hobbyist computers. The Pi 4 featured a faster CPU, options for up to 4GB of RAM, and a new, modern USB-C port for power delivery. The Pi 4 was the Raspberry Pi Foundation's first ever USB-C device, and, well, they screwed it up.

As detailed by Tyler Ward, the Raspberry Pi 4 has a non-compliant USB-C charging port and doesn't work with as many chargers as it should. Thanks to the open nature of Raspberry Pi (even the schematics are online!), Ward was able to discover that Raspberry Pi just didn't design its USB-C port correctly. Two "CC" pins on a USB-C port are supposed to each get their own 5.1K ohms resistor, but Raspberry Pi came up with its own circuit design that allows them to share a single resistor. This is not a compliant design and breaks compatibility with some of the more powerful USB-C chargers out there.

Whether your USB-C charger works with the Pi 4 has to do with whether it uses an "e-marked" cable. E-marked cables are fully featured USB-C cables with chips inside that negotiate power management, accessory modes, data rates, and other communication specs. Since the Pi 4 USB-C port is wired incorrectly, these smart cables will detect the Pi 4 as an "Audio Adaptor Accessory" and refuse to charge them. Usually, e-marked cables are more expensive and come with larger, higher-powered items, like a USB-C laptop.

Benson Leung, an engineer at Google and one of the Internet's foremost USB-C implementation experts, has chimed in on the Pi 4's USB-C design too, with a Medium post titled "How to design a proper USB-C™ power sink (hint, not the way Raspberry Pi 4 did it)."

"Instead of trying to come up with some clever circuit," Leung writes, "hardware designers should simply copy the figure from the USB-C Spec exactly [emphasis his]. The Figure 4–9 I posted above isn’t simply a rough guideline of one way of making a USB-C receptacle. It’s actually normative, meaning mandatory, required by the spec in order to call your system a compliant USB-C power sink. Just copy it."

The Pi 4 is not the first high-profile device to get the USB-C spec wrong. The Nintendo Switch also has a non-compliant USB-C port and Nintendo has warned against using substandard cables with the device.

After reports started popping up on the Internet, Raspberry Pi cofounder Eben Upton admitted to TechRepublic that "A smart charger with an e-marked cable will incorrectly identify the Raspberry Pi 4 as an audio adapter accessory and refuse to provide power." Upton went on to say, "I expect this will be fixed in a future board revision, but for now users will need to apply one of the suggested workarounds. It's surprising this didn't show up in our (quite extensive) field testing program."

The "suggested workarounds" are to just use a non-e-marked cable, like the official Pi 4 charger.

We reached out to Raspberry Pi about this issue and were told a board revision with a spec-compliant charging port should be out sometime in the "next few months."

Channel Ars Technica