1. 18

  2. 5

    My understanding is that USB-PD basically contains an Ethernet-like protocol to send digital information between microprocessors in the USB/charging circuits of the two devices (charger and Switch, power bank and phone, etc), and the two sides speak a fairly complicated protocol with quite complicated state machines.

    Seems completely bonkers over-engineered to me, I’m not surprised at all that devices get USB-PD all kinds of wrong, especially when most of these kinds of chips are going to be produced as cheaply as possible by white-label companies which will put in exactly enough effort to make money. But what do I know.

    EDIT: Here’s an article I found which seems to explain the protocol fairly understandably: https://www.embedded.com/usb-type-c-and-power-delivery-101-power-delivery-protocol/

    1. 9

      I just wanna point out that this complicated protocol is a protocol which, in >99.9% of cases, will be used to select between 5V, 9V, 12V, 15V or 20V. I feel like this could’ve been done simpler.

      1. 7

        It can. USB-C picked a handful of resister values that can be used to negotiate power without requiring an additional protocol on top. This was critical for adoption because a lot of cheap chargers are sold so close to cost that adding a microcontroller to the BOM would push them over the top.

        1. 1

          Thanks, that’s an important correction.

          Do you have a link to a document which describes it? Everything I’m able to find on USB-C PD just describes the digital protocol over 1-wire, but I haven’t read the spec.

          1. 1

            I went to a great talk about this and I’m completely blanking on the name of the speaker and the title of the talk. The spec describes the pull-up resistors needed to assert that you can deliver / consume the higher power mode. I think you need USB-PD for the very high power modes, but the fast-charge mode is activated with just a handful of resistors between the PSU and the device.

        2. 1

          The M1 macs use USB-C PD as a serial port early in the boot process I believe.

      2. 4

        Not only that, its USB-C PD controller can get fried by non-PD-compliant docks/chargers, which I got bit by once. Luckily Nintendo was kind enough to replace my Switch under warranty, only scolding me with a note in the box with the warranty replacement saying to only use approved accessories.

        1. 4

          If some charger is non-compliant enough, it could fry anything… Thankfully enough time has passed that now it seems hard to find really broken chargers.

          1. 1

            I believe there was a similar issue with Raspberry Pi 4: https://hackaday.com/2019/07/16/exploring-the-raspberry-pi-4-usb-c-issue-in-depth/

          2. 2

            What a nightmare USB is.

            1. 1

              I bricked my switch by using a non-Nintendo charger on it a couple years ago. Total PITA. At least Nintendo replaced it under warranty.