I use an Apple Silicon Mac and often use programmable keyboards like the Royal Kludge RK61 via USB C. when I press keys such as A, S, D, F, W, or nearby keys in quick succession, the keyboard stops responding completely until I unplug and reconnect it. I've even replaced the USB C cable with a new store bought cable, but the issue still persists.
USB-C reminds me of HTTP: one familiar interface hiding an enormous amount of complexity underneath.
That's great for experts, but difficult for everyone else because the same connector can expose wildly different capabilities depending on the implementation.
Guides like this explain why there are so many broken USB-C devices. The guide mentions that you do not need a PD chip for 5Vs, but then tells you that USB C is a cold connector meaning 0V is on VBUS when nothing is connected and jumps straight into the complexities of the PD protocol running over the CC pins instead of explaining how to get the 5V without the PD chip first.
Then in the section where it tells you how to do that, it fails to properly explain how to connect a load switch (10 cent component at 100 units) to get around the 10uF limit. The vast majority of applications will require less than 15 W and a good chunk of them can't get away with 10uF between VBUS and GND so a schematic how to do it in the lowest cost way would have helped here.
Edit: After reading until the very end I got the impression that this is just an ad for Texas Instruments PD controllers.
The EPR safety design is the part worth highlighting for anyone not deep in USB PD. The handshake is deliberately structured so a single message error can't accidentally push a port into a 100W plus contract, the sink has to actively drive entry into EPR mode and the source verifies cable capability before sourcing anything above 20V. That's a sensible failsafe given how much heat and current you're dealing with at 48V and 5A.
The eUSB2 section is also underrated context for why this matters beyond cables. As process nodes shrink below 7nm, the old 3.3V USB 2.0 signaling literally becomes a reliability risk to the silicon itself, which is why chipmakers had to invent a whole lower voltage PHY just to keep USB 2.0 alive on modern nodes.
Apple was a key developer of USB C and used its experience from developing lightning. They were also one of the first (if not the first) to sell USB C devices (2016 MacBook, then across the whole Mac line). I don’t know how much the EU affected their timeline; it’s unsurprising they moved to USB C on their biggest volume product last. And the lifespan of 30-pin and lightning were about the same.
This was a repeat for Apple: the first iMac was the first production USB computer and they were pilloried for that too.
Bit of self-promotion: I spent the last year or so designing an open-source USB-PD protocol analyzer[1], and the complexity of the protocol can be mind-boggling. Most of the time, the communication between source and sink is really straightforward, but it can get amazingly complicated when both devices are dual-role or come from the same vendor[2].
As messy as it is, however, it's also a very useful protocol that allows even small players to take advantage of the same economies of scale that large companies can take advantage of. Pity that the communication often requires dedicated chips, though thankfully those are relatively inexpensive. I was able to get an RP2350 (the same MCU that's in the Raspberry Pi Pico 2) to interface directly with USB-PD, but they could have made it easier and more accessible.
What do you think of those cheap chips you can use as USB-C PD control boards ? They usually have a button some way to cycle between a few different output voltages (like 12v, 5v, 18v, etc)
I've been lucky enough to get to play with a pre-release version of this and can confirm that it's a fantastic device for dealing with USB-PD power issues, as well as debugging the ridiculous number of devices out there who get USB-C power in general wrong in any number of stupid ways. I just wish I'd had one of these a couple of years ago to help sort out the mass of devices with broken USB-C power, meaning not even full-on -PD but who couldn't even get plain 5V power because the people who designed it had somehow failed to copy and paste the reference circuit from a data sheet.
A helpful guide, but usb c usability from a consumer standpoint is atrocious. From the specs it runs so many modes, PD (at various power levels), classic 5v , alternative modes. Sadly, there’s no way of knowing which mode a device or cable is supporting.
They could have done a better job color coding the connectors like resistors, so you could know the protocols supported by the cables and devices.
I have to label my own cables according to data support, PD, max power, etc. And many of my “usb c” devices only work with usb-A to usb-C cables.
The connector design targeted the industry and not consumers. Hopefully they will improve that.
Always found it a bit strange that USB-C is referred to as a "new connector" when it clearly seems to be an entirely new protocol. (Unlike the previous new connectors mini and micro which were just differently-shaped plugs for the same wires)
So is the protocol technically USB 4.0 and USB-C "just" a new connector role defined by that protocol, or did they ditch the versioning and "USB-C" is its own thing?
The guide mentions that USB 4.0 is the first version to require a USB-C connector, but then later refers to the "USB-C protocol". Is that the same as USB 4.0?
USB-C is a connector. Part of the confusion is that USB specification versions have come to be associated with the protocols and speeds defined there. The basic division is between USB2 and USB3 which are separate protocols on different wires. USB-C has multiple high speed lanes.
USB 3.0 defined the SuperSpeed protocol and 5GBps speed. Later versions increased speeds, 10GBps (USB3.1), 20GBps (USB3.2). These were also called Gen1, Gen2, or now just the speeds.
Then, there are alternate modes which run other protocols over high speed lanes. DisplayPort is the most common one.
Next, USB4 defined USB4 protocol which multiplexes SuperSpeed and DisplayPort over two high speed lanes. USB4 requires USB-C. This is basically Thunderbolt standardized. Specification also defines 20Gbps, 40Gbps, and 80Gbps speeds.
2) USB 3.0 on Type-A - increases data to 5/10 Gbps (e.g. for SSDs) and power to 0.9A (4.5W / 5V).
3) USB 3.0 on Type-C - adds pins to enable most of the new stuff: base 3A (15W / 5V) and up to 240W with power delivery; extra data lanes for 20 Gbps, DisplayPort for external monitors.
4) USB 4.0 on Type-C - changes protocol completely (using packets instead of fixed lanes per pin) and requires minimum speeds and the use of type-C port.
A-to-C cables act like A-to-A as they don't have extra pins - they're just easier to use.
Pre-Power Delivery lots of phone chargers used A-to-C cables with a custom protocol to negotiate power draw beyond 0.9A. And some devices pull 3A anyway just assuming there's a power brick that supports 3A attached. But technically none of that is compliant.
20 comments
[ 2.2 ms ] story [ 40.4 ms ] threadThat's great for experts, but difficult for everyone else because the same connector can expose wildly different capabilities depending on the implementation.
Then in the section where it tells you how to do that, it fails to properly explain how to connect a load switch (10 cent component at 100 units) to get around the 10uF limit. The vast majority of applications will require less than 15 W and a good chunk of them can't get away with 10uF between VBUS and GND so a schematic how to do it in the lowest cost way would have helped here.
Edit: After reading until the very end I got the impression that this is just an ad for Texas Instruments PD controllers.
Thank goodness for the European Union. If it weren't for them, we'd all be stuck with these flimsy Apple charging cables forever.
This was a repeat for Apple: the first iMac was the first production USB computer and they were pilloried for that too.
As messy as it is, however, it's also a very useful protocol that allows even small players to take advantage of the same economies of scale that large companies can take advantage of. Pity that the communication often requires dedicated chips, though thankfully those are relatively inexpensive. I was able to get an RP2350 (the same MCU that's in the Raspberry Pi Pico 2) to interface directly with USB-PD, but they could have made it easier and more accessible.
[1] https://github.com/T76-org/drpd or https://www.crowdsupply.com/t76-org/dr-pd [2] https://hackaday.io/page/399885-a-mac-and-an-ipad-walk-into-...
They could have done a better job color coding the connectors like resistors, so you could know the protocols supported by the cables and devices.
I have to label my own cables according to data support, PD, max power, etc. And many of my “usb c” devices only work with usb-A to usb-C cables.
The connector design targeted the industry and not consumers. Hopefully they will improve that.
So is the protocol technically USB 4.0 and USB-C "just" a new connector role defined by that protocol, or did they ditch the versioning and "USB-C" is its own thing?
The guide mentions that USB 4.0 is the first version to require a USB-C connector, but then later refers to the "USB-C protocol". Is that the same as USB 4.0?
USB 3.0 defined the SuperSpeed protocol and 5GBps speed. Later versions increased speeds, 10GBps (USB3.1), 20GBps (USB3.2). These were also called Gen1, Gen2, or now just the speeds.
Then, there are alternate modes which run other protocols over high speed lanes. DisplayPort is the most common one.
Next, USB4 defined USB4 protocol which multiplexes SuperSpeed and DisplayPort over two high speed lanes. USB4 requires USB-C. This is basically Thunderbolt standardized. Specification also defines 20Gbps, 40Gbps, and 80Gbps speeds.
1) USB 2.0 - 480 Mbps, 0.5A (2.5W / 5V)
2) USB 3.0 on Type-A - increases data to 5/10 Gbps (e.g. for SSDs) and power to 0.9A (4.5W / 5V).
3) USB 3.0 on Type-C - adds pins to enable most of the new stuff: base 3A (15W / 5V) and up to 240W with power delivery; extra data lanes for 20 Gbps, DisplayPort for external monitors.
4) USB 4.0 on Type-C - changes protocol completely (using packets instead of fixed lanes per pin) and requires minimum speeds and the use of type-C port.
A-to-C cables act like A-to-A as they don't have extra pins - they're just easier to use.
Pre-Power Delivery lots of phone chargers used A-to-C cables with a custom protocol to negotiate power draw beyond 0.9A. And some devices pull 3A anyway just assuming there's a power brick that supports 3A attached. But technically none of that is compliant.