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: 2) by RS3 on Wednesday July 10 2019, @03:03PM (10 children)

    by RS3 (6367) on Wednesday July 10 2019, @03:03PM (#865395)

    I have great respect and admiration for you and your posts, however I'm baffled by this one.

    The Pi circuits need regulated 5 V and they're asking for 3 A minimum. You could connect a 5 V 1,000 A power supply and the Pi will only draw (take) the amps it needs.

    I'm not sure how "charger" comes into play. Maybe a given charger won't deliver the 3 A unless the device it's plugged in to commands it to supply the necessary amps, but then the volts would drop below 5 and the Pi would likely go berserk or just shut down.

    Again, sorry, I'm not following what you're trying to say here, unless that's what you were saying (some chargers need sw commands on the CC pins...)

    Starting Score:    1  point
    Karma-Bonus Modifier   +1  

    Total Score:   2  
  • (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.
    • (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.

  • (Score: 2) by fyngyrz on Wednesday July 10 2019, @06:56PM (7 children)

    by fyngyrz (6567) on Wednesday July 10 2019, @06:56PM (#865463) Journal

    You could connect a 5 V 1,000 A power supply and the Pi will only draw (take) the amps it needs.

    Since we're doing "here's what I would have done posts"...

    I'd have put a barrel plug (much more robust than these awful USB cables), as well as two heavy PCB holes one could actually solder wires into, followed by a bridge rectifier so power supply polarity was irrelevant, and then popped 1, 2 or 3 five volt linear regulators on there, depending on the current demands of the particular SoC.

    Heat, heat sinks... yep. That's the compromise, but it's a great one.

    Then there'd be a wide range of linear power supplies that would work just fine, and the risk of damaging the hardware comes down to providing (way) too high a DC voltage. Probably would survive an AC adaptor as well, though I doubt it'd get the computer running. 😊. Unless you threw an ultracap on there, but they're pretty bulky at higher voltages, still. You could power it from your car's 12 VDC system and that would work, though you'd want to be extra careful about shutting the car down with the RPi running.

    I've had way, way more than enough of these awful RFI-emitting, short-lifetime el-cheapo switching power supplies, fragile cables, incredibly crappily designed USB plugs (the micro USB plug is what I'm referring to here), and USB female connectors that peel right the hell off the PCB because some lackwit thought that surface mounting them would be sufficient, which it bloody well is not, specifically because those awful USB connectors can't be plugged in both ways, and when an attempt is made to do it wrong (which, strangely enough, seems to be about half the time), it puts serious mechanical stress on the female end's mount, typically with a mechanical advantage incorporating some leverage.

    Don't get me wrong — I still want one of these to fool with, but... yeah, I'd certainly have done it differently.

    --
    The gene pool is shallow. And polluted.

    • (Score: 2) by takyon on Wednesday July 10 2019, @07:42PM

      by takyon (881) <takyonNO@SPAMsoylentnews.org> on Wednesday July 10 2019, @07:42PM (#865475) Journal

      The way I hear it, you already want a heat sink or FLIRC case [flirc.tv] if you are running this thing.

      --
      [SIG] 10/28/2017: Soylent Upgrade v14 [soylentnews.org]
    • (Score: 2, Interesting) by Anonymous Coward on Wednesday July 10 2019, @09:17PM (4 children)

      by Anonymous Coward on Wednesday July 10 2019, @09:17PM (#865503)

      I'd have put a barrel plug (much more robust than these awful USB cables), as well as two heavy PCB holes one could actually solder wires into, followed by a bridge rectifier so power supply polarity was irrelevant, and then popped 1, 2 or 3 five volt linear regulators on there, depending on the current demands of the particular SoC.

      I'm glad you're not designing it then...

      Sure we can use 7805 type linear regulators, typically with about a ~2V minimum dropout voltage... Add in the ~1.5V or so drop in the bridge rectifier and we'll need an input voltage of about ~9V, so this power supply, by itself, is consuming almost as much power as the rest of the board combined!

      Let's say we need 15W out of this, 7805 type regulators typically have a max output current of 1A so three are required and together with the bridge rectifier, represents (in volume!) about $1 of extra BOM cost on a device which retails for $35, ignoring whatever cooling upgrades are required for this.

      Using an LDO type regulator can help with efficiency, but usually have much lower power output (and are also much more finicky to use) so this will probably be an even more expensive option. Likewise efficiency of the rectifier can be improved using more intricate designs (-> $$$)...

      • (Score: 3, Funny) by fyngyrz on Wednesday July 10 2019, @10:23PM (1 child)

        by fyngyrz (6567) on Wednesday July 10 2019, @10:23PM (#865533) Journal

        Well, here's the thing. None of your concerns are my concerns. 😊

        --
        Every once in a while declare peace. It confuses your enemies.

        • (Score: 2) by RS3 on Thursday July 11 2019, @03:33AM

          by RS3 (6367) on Thursday July 11 2019, @03:33AM (#865658)

          I know you weren't trying to be funny, but I actually laughed out loud a bit. And it might be because you started with "Well, here's the thing." I generally don't watch and can't stand most sitcoms, but there was this one called "Becker" starring Ted Danson who played a doctor of sorts. His assistant Linda was stunningly ditzy and whenever she did something stupid she'd start her explanation with "here's the thing", and something funny always followed.

      • (Score: 3, Informative) by Knowledge Troll on Thursday July 11 2019, @01:44AM (1 child)

        by Knowledge Troll (5948) on Thursday July 11 2019, @01:44AM (#865603) Homepage Journal

        I'm glad you're not designing it then...

        represents (in volume!) about $1 of extra BOM cost on a device which retails for $35, ignoring whatever cooling upgrades are required for this.

        I'd have gone even further and not tried to cost cut with the linear regulators and go all the way to switching regulators. Switching regulators with 5 volt output, 25 watts power handling capacity, and tolerant of inputs up to 16 volts can be had at retail for less than $4 in the form of r/c aircraft battery eliminator circuits (BEC). That's $4 full retail cost to the end user. To retail at that cost they must have got the entire unit down around $1.

        So lets run with $1 added to the $35 retail price of the RPI: that's a 2.8% increase in cost. That single dollar bought the user not having all these common power delivery issues as well as having the full 5 volts available at the USB ports and also not having to use crappy USB power supplies. Another amazing benefit is that the forums wouldn't be clogged up with people having power issues.

        The poor power regulation was a really bad place to try to cost cut. That has caused a ton of pain for a lot of people.

        • (Score: 0) by Anonymous Coward on Friday July 12 2019, @05:22AM

          by Anonymous Coward on Friday July 12 2019, @05:22AM (#866117)

          I'd have gone even further and not tried to cost cut with the linear regulators and go all the way to switching regulators.

          A switching design would make much more sense for this product but the earlier poster made it quite clear that they did not want to use a switching regulator for EMI reasons (justified or not).

          represents (in volume!) about $1 of extra BOM cost on a device which retails for $35, ignoring whatever cooling upgrades are required for this.

          [...]
          So lets run with $1 added to the $35 retail price of the RPI: that's a 2.8% increase in cost.

          Well this is a non sequitur: a $1 increase in BOM cost does not imply a $1 increase in the retail price of the finished product. I'd guestimate adding onboard regulation without changing anything else would turn this in to a $40 product.

          The poor power regulation was a really bad place to try to cost cut. That has caused a ton of pain for a lot of people.

          I'm not really familiar with this particular product design... However, these issues seem really quite minor, easily worked around and will likely be fixed in the next board revision. So I'd say it remains to be seen whether this was really a bad decision. If you take shortcuts somewhere else instead people will complain about that too: this is just life with products built to a price. If that's a problem one can get products where the designers never make any tradeoffs to save costs...

          What does seem strange to me, however, is that TFA suggests they made a deliberate design decision to reduce the number of 5.1k resistors from two to one, contrary to the USB specification. This essentially does not save anything at all, because resistors often literally cost nothing beyond the reel space (which they've already committed because they still have this resistor value in the design). Judging by the photos it does not look like there would be any real problem fitting another one onto the board...

    • (Score: 2) by RS3 on Thursday July 11 2019, @04:09AM

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

      Awesome post- I'm in strong agreement mostly.

      Mounting on a PC board- surface or through-hole- _any_ mechanical connector, switch, button, pot, etc., that humans touch or gets mechanical stress is piss-poor design IMHO. That's why I suggested the dongle for the power connector. I know, I hear it now, it's supposed to be cheap. But you can find connectors with through-hole reinforcements (and even they break easily...)

      My only issue with your post: I would NOT use a diode bridge. Of course I know why you suggested it, but think about the ground (electrical return or common) problem. If you use a bridge, then the car's (or anything's) ground is NOT Pi ground- there's a diode separating the two. I'd just use a single diode to guard against reverse-polarity and that's good enough.

      I'm not against switching supplies, but you make good points about the RFI. They can be shielded, and properly designed so as to minimize / damp out RFI-producing ringing. In fact, for something this small there are some great regulator chips that run with one inductor and minimal RFI.

      As much as I am an analog/linear EE and generally prefer simpler linear regulators, at 3 A drawn, running off a car's electrics would cause a 7805 to dissipate almost 30 watts, and that's not a small heatsink. Oh, and oops- a 7805 is only good for 1.5 A, so a current-passing booster transistor is needed (easy). Still 30 W to unload.

      More research needed...