Stories
Slash Boxes
Comments

SoylentNews is people

posted by martyb on Wednesday July 10 2019, @04:04AM   Printer-friendly
from the so-much-for-port-a-bility dept.

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

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.

[...] 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 has issues with certain USB-C cables as a result.

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."

Probably not a dealbreaker (the cables that do work are cheaper), but could be annoying.

Previously: Raspberry Pi 4 Model B Launched


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 3, Interesting) by DannyB on Wednesday July 10 2019, @06:54PM (1 child)

    by DannyB (5839) Subscriber Badge on Wednesday July 10 2019, @06:54PM (#865461) Journal

    I don't now the precise details of USB-C charging. What I think happens is that there is a maximum amount of current, but voltage is increased up to about 18 V after negotiation with the device being charged.

    Doing some googling . . . two sources said: "up to 100 watts"

    One source said: With up to 100 watts, or 3 amps of power, USB-C cables can power almost anything.

    100 watts at 3 amps would mean about 33.333 volts.

    My Pixelbook charger is 45 watts. My third party Amazon charger (spare for pixelbook) is also 45 watts. My Pixel 3 XL phone charger is 15 watts. I have used:
    * third party 45 W charger on Pixelbook
    * pixelbook original 45 W charger on both Pixelbook
    * pixelbook original 45 W charger on Pixel 3 XL Phone -- but it only charges at the phone's fast charge rate -- of 15 watts.
    * Pixel 3 XL Phone charger on Pixelbook -- the pixelbook alerts that it is charging slowly.

    In addition:
    * I have used a USB-C to USB-C cable to connect my phone and pixelbook together.
    Doing this, from both the phone and pixelbook you can select which device will charge another device, and which device will get charged. Yes, the phone can charge the pixelbook from the phone's battery -- but the pixelbook also gives an alert that it is charging slowly

    Now what about a Raspberry Pi?

    If they are cheap enough to use one resistor where they were supposed to use two, I suspect this USB-C port may not implement the charging negotiation spec at all. (Speculation on my part) Therefore, it may be that you must used a 3A 5V USB-C charger with the Pi. I suspect the USB-C port on the PI is voltage regulated, but would it like 33.333 volts?

    --
    The lower I set my standards the more accomplishments I have.
    Starting Score:    1  point
    Moderation   +1  
       Interesting=1, Total=1
    Extra 'Interesting' Modifier   0  
    Karma-Bonus Modifier   +1  

    Total Score:   3  
  • (Score: 3, Interesting) by RS3 on Thursday July 11 2019, @04:37AM

    by RS3 (6367) on Thursday July 11 2019, @04:37AM (#865679)

    Awesome, thanks. I need to study USB-C more. ... Okay:

    USB Power Delivery uses one of CC1, CC2 pins for power negotiation up to 20 V at 5 A (or whatever less the source can provide). It is transparent to any data transmission mode, and can therefore be used together with any of them.

    - and -

    USB 3.0/3.1/3.2
    In the USB 3.0/3.1/3.2 mode, two or four high speed links are used in TX/RX pairs to provide 5 to 20 Gbit/s throughput. One of the CC pins is used to negotiate the mode.

    VBUS and GND provide 5 V up to 900 mA, in accordance with the USB 3.1 specification. A specific USB-C mode may also be entered, where 5 V up to 3 A is provided.[53] A third alternative is to establish a Power Delivery contract.

    ... which is probably what you referred to, and can be up to 20 V @ 5 A (ouch). Why do I envision some magic-smoke-releasing software bugs? "Hi, I'm Mr. Bill. Yes, please give me 20 V @ 5 A, I can take it! Noooooooo Mr. Billlllllllll!!!!!!" Sorry, I digress.

    The Pi schematic shows they just dead-shorted the CC1 and CC2 pins, which then goes into 2 resistors which feeds "PD_SENSE" which goes into ...

    holy moly- there's a big complex switching regulator on the Pi, which provides 3.3V, 1.8V, 1.1V, Vcore, and a 2nd tiny switcher which provides 1.08V, 1.05V, and 1.0V.

    Okay, that's pretty cool, I'm impressed. I'm betting it's very RFI quiet. Very short copper with ground plane everywhere- should be negligible RFI.