Fri. Apr 19th, 2024

The Raspberry Pi 4 which debuted back in late June which is a major upgrade over its predecessors, packing more RAM, enough graphics horsepower to drive a pair of 4K displays, and USB-C charging instead of micro-USB. But there seems to be a problem: The USB-C charging doesn’t work with some USB-C chargers.

The main problem is that the Raspberry Pi 4’s charging port shares a single resistor between two of its pins, which the official USB-C spec says should have one resistor each. This causes problems for so-called “e-marked” cables such as those supplied with MacBooks and other laptops fitted with USB-C Thunderbolt charging ports. These cables contain chips designed to manage features like power draw and to detect different kinds of accessories. If you try to power a Raspberry Pi 4 using one of these cables, it will detect the microcomputer as an “Audio Adaptor Accessory” and won’t power it.

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.

Properly designing these and also seeing that they remain compatible with previous Raspberry Pi models while making them exponentially more powerful with each generation is no easy task. A mere $35 now gets you a surprisingly potent quad-core Cortex-A72 chipset, 1GB of LPDDR4 RAM, two micro HDMI ports, Gigabit Ethernet, two USB 3.0 ports and many more things at your disposal.

Leave a Reply

Your email address will not be published. Required fields are marked *