Raspberry Pi Admits To Faulty USB-C Design On the Pi 4 (arstechnica.com) 134
An anonymous reader quotes a report from Ars Technica: 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.
Whether your USB-C charger works with the Pi 4 has to do with whether it uses an "e-marked" cable. E-marked cables are fully featured USB-C cables with chips inside that negotiate power management, accessory modes, data rates, and other communication specs. Since the Pi 4 USB-C port is wired incorrectly, these smart cables will detect the Pi 4 as an "Audio Adaptor Accessory" and refuse to charge them. Usually, e-marked cables are more expensive and come with larger, higher-powered items, like a USB-C laptop. 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."
Whether your USB-C charger works with the Pi 4 has to do with whether it uses an "e-marked" cable. E-marked cables are fully featured USB-C cables with chips inside that negotiate power management, accessory modes, data rates, and other communication specs. Since the Pi 4 USB-C port is wired incorrectly, these smart cables will detect the Pi 4 as an "Audio Adaptor Accessory" and refuse to charge them. Usually, e-marked cables are more expensive and come with larger, higher-powered items, like a USB-C laptop. 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."
and they saved $0.005 an unit with that. (Score:2)
and they saved $0.005 an unit with that.
Re: (Score:2)
Re: (Score:2)
Raspberry doesn’t manufacture the vast majority of them. Raspberry sells the designs.
True, they don't manufacture them in the same sense that Apple doesn't manufacture iPhones. But they do not sell the design and allow anyone to sell Raspberry Pis. If you want to buy a Raspberry Pi, you either have to buy it from them, or from someone they sold finished boards to. The design is largly given away as stated in the article, most of it is open source.
Re:and they saved $0.005 an unit with that. (Score:4, Interesting)
and they saved $0.005 an unit with that.
Were it due to an attempt at cost cutting, I might agree, but, as Eben said:
It's surprising this didn't show up in our (quite extensive) field testing program.
They didn't try to cut costs, they just forgot to add a $0.00156 resistor, and it seems none of the testers tried a more powerful USB-C charger.
I imagine the field testing didn't turn up anything because the Pi Foundation gave each of the testers one of the Pi foundation's $8 chargers... because those needed testing too...
Re: (Score:2)
Should be easy to fix then. Traces are easy to cut.
Re: (Score:1)
I suspect they used 0402s or something really small. The RPi is a rather small board.
Re:and they saved $0.005 an unit with that. (Score:5, Interesting)
I imagine the field testing didn't turn up anything because the Pi Foundation gave each of the testers one of the Pi foundation's $8 chargers... because those needed testing too...
Actually those turned up too late in the day, and went through a separate testing program.
We actually grabbed a bunch of cheap(ish) chargers and cheap(ish) cables from Amazon, discarded the ones that were too terrible, and sent them out in various combinations. Because of course you worry about the vulnerability of your product to the cheap stuff everyone has, not to the expensive stuff some people have. Live and learn.
Re: (Score:1)
Sounds like USB-C is a bit of a mess, much harder to use than B. I can see how that happened, most people are going to run Pis from cheap wall warts existing phone chargers.
Re: (Score:3, Informative)
Re: (Score:1)
I guess they should have used a licensed Apple darkening connector (some call it lightening) instead.
Re: (Score:1)
if you need to explain a joke, it's not funny.
Re: (Score:1)
Funny?
harder or simpler (Score:3)
much harder to use than B
Actually, depends on whose perspective.
From the users' point of view :
- with B : you play the "hunt the correct combo of device + cable + charger that works, and also happens to charge somewhat fast". (you got an expensive high quality charger, but your device only supports 5V and the cable is shitty and can't push a lot of mA) You can also run into situation where everything will fry.
- with C : everything will automatically negociate with everything else. (In theory, it means that your laptop could display
Re: (Score:2)
Sounds like USB-C is a bit of a mess
No it sounds like USB-C has added complexity. But this should only surprise people who haven't read the spec. It's not messy but it does need to be understood, much like any specification that provides a wide range of capabilities.
Support "stuff I have laying around" (Score:3)
Because of course you worry about the vulnerability of your product to the cheap stuff everyone has, not to the expensive stuff some people have. Live and learn.
Which is actually one of the approach of the design of the Pi I like.
It works with stuff that everybody has litteraly laying around. You can just grab random stuff you happen to have, plug it into a Pi and it works.
Which brings me to one of the little disappointement I got at the announcement of Pi4 :
both HDMI ports are of the micro type.
I happen to be in possession of HDMI-to-microHDMI adapters, but most people I know don't have such, whereas nearly every body has some HDMI-to-HDMI cable around (e.g.: to c
Re: (Score:2)
"Because of course you worry about the vulnerability of your product to the cheap stuff everyone has"
Which coincidentally is cheap due to the very same fuck-up you've committed, by not following the goddamned fucking spec to the goddamned letter.
Nice try deflecting, though. Doesn't work on those of us that know how to read and understand specifications.
Re: (Score:1)
One of the 'big guys' posts here and you furiously smash the keys with an insult that adds nothing of value at all to the conversation, just because you see a chance for your fifteen minutes of fame (sad version).
Thanks for being one of the people that makes appearances like this so rare nowadays. -_-
Re: and they saved $0.005 an unit with that. (Score:1)
Re: (Score:3)
You're honestly suggesting they should have performed an exhaustive test of every USB C chargers on the market? Bull. Shit. They used a representative sample of chargers - a perfectly valid testing technique. (But what do I know? I've only been a professional test analyst for 22 years.) Yeah, there were gaps in their testing and it bit them in the bum. They'll refactor their tests for the next revision and get specific hardware types in for testing. That's what happens in the real world. And I have a Pi 4 w
Re: (Score:2)
Re: and they saved $0.005 an unit with that. (Score:3)
Bullshit they didn't notice it.
It's right there in the product announcement where alpha-testers found they couldn't plug in any random usb charger, so they built their own.
Much easier to blame 3rd party equipment as dodgy than admit to a bug in your hardware.
Re: (Score:2)
Then perhaps charging over USB isn't a bright idea in the first place.
I have a "good" quality USB charger at home made by a major brand, but I've found that compatibility is still pretty spotty across all devices. Some of my devices refuse to charge from anything but a USB port from a PC. Meanwhile, a standard DC adapter works every damn time no problem.
I wish manufacturers weren't obsessed with forcing new "smart" ports down our throats, only to make multiple versions and specs anyway. They ALWAYS end u
Re: (Score:2)
No thanks. None of us pine for the days of individual adapters for each devices. Charging via USB is a great idea and having a few incompatibilities is a fuckton better than being literally incompatible with everything other than the charger it shipped with.
Re: (Score:1)
BUT the schematics are open source, so many eyes were reviewing this and making bugs shallow.... oh, that never happened.
Gee, let's see, one bias resister is missing on a USB pin and it got missed? Couple that with it generally works unless you use expensive stuff to power the thing and I'm not surprised it got missed for a bit. Besides, do you have any clue how convoluted this whole USB charging circuitry has become? With all the legacy support required and the ever increasing current requirements has made things pretty darned complex these days. The fact that the cheap devices don't properly sense the Pi for what it's pr
Re: The waiting is the hardest part (Score:4, Informative)
The fact that the cheap devices don't properly sense the Pi for what it's programed to be could be argued is the cheap USB power supplies' fault
No.... its actually expensive USB power-supplying devices adhering to the USB spec.
Its the dumber cheaper USB power-supplying devices that will deliver the power regardless.
Re: (Score:2)
Re: (Score:2)
It's nothing to do with cheap or expensive, or well designed or poor designed, and purely active vs passive cables, as active cables necessarily have a pulldown resistor on one of the CC lines.
The "cheap" vs "expensive" difference here can be measured in "millicents".
Re: (Score:2)
Wait a few months for the retail channels to be flushed of old stock.
Or just order it after the fix is in, and after receiving your order --- test it against a smart charger with an E-cable.
Should it fail to charge, then reject and return the unit for exchange or repair as defective goods under the warranty of merchantability.
Re: The waiting is the hardest part (Score:2)
1) Sales and marketing deemed the B0 prototype "production ready" and cancelled the C0 and C1 iterations that would have made the product more robust.
An accurate, well-written Slashdot post ! WTAF?! (Score:2)
Ah, it's just lifted verbatim from Ars Technica, where the editors are intelligent enough - and proud enough of their job - to EDIT.
As you were.
"cables" [...] "negotiate" (Score:4, Funny)
My cables dont negotiate - they fucking work or meet the cutter...
Re: (Score:2)
You must be having great success with USB-C.
Re: (Score:1)
Passive cables forever!!
Re: (Score:2)
This reminds me of the part "not a resistor, a wire just does this" in https://xkcd.com/730/ [xkcd.com]. A "cable" should be the epitome of a passive circuit element. If it contains other than trace amounts of R, C or L, it's not a cable in my book.
Re: (Score:2)
The cable is just a cable. The active parts are in the connector :-P
Contintues to be designed by incompetents (Score:1)
I mean can these people even read? It is clearly _documented_ how to do this right! The mistakes they make are an utter disgrace.
Of course, all the fanbois will cheer them on, regardless that they have so far botched every version of this thing and needed to fix beginner's mistakes in later revisions.
Re: (Score:3)
Re: (Score:2)
Of course, all the fanbois will cheer them on, regardless that they have so far botched every version of this thing and needed to fix beginner's mistakes in later revisions.
If someone is claiming expertise and experience, I’d like to know the extent of that expertise and experience.
Re: (Score:2)
Yes there was a tu quoque in there, but there is also a challenge to an assertion made without evidence. I notice further down that the OP responds by saying the mistakes are "obvious", which is called evasion and suggests that the OP doesn't really know what the mistakes made were.
Re: (Score:1)
There are mistakes and then there are mistakes. This one is utterly idiotic and indicates a fundamental misunderstanding on how elementary electronics work. Like these people do not even know Ohm's law. Or like they are unable to comprehend the specification that clearly says how this is to be done. Pathetic.
For their other screw-ups, they have all been obvious. If you were actually interested in them you would know them.
Re: (Score:2)
Re: (Score:2)
You think I need to "refuse" you? Do you think you can order others around? I simply ignore your lazy and invalid defensive strategy. Read up on their gross missteps yourself. There is ample information online. Of course, there are also ample invalid and stupid excused for their incompetence, so you may have to wade though that.
Re: (Score:2)
Re: (Score:2)
As the data I refer to is both obvious and easily accessible, you whole accusation is bogus.
Re: (Score:2)
Re: (Score:2)
This one is utterly idiotic and indicates a fundamental misunderstanding on how elementary electronics work. Like these people do not even know Ohm's law.
The fact that you said this indicates you don't know what the problem is or why it arose. Hint: Reading the charging spec allows precisely for the configuration present here. It's not until you compare it to the spec on active cabling that you would come even close to realising why this would be a problem. I.e. You need to read a spec for something *not* part of your project.
But you know ohms law, so you're so fucking smart.
Re: (Score:2)
Like these people do not even know Ohm's law.
How is Ohm's law relevant? A dummy power adapter will supply the correct power to the board.
Or like they are unable to comprehend the specification that clearly says how this is to be done. Pathetic.
The USB-C power spec allows for three different type ports [digikey.com] : "The USB BC spec outlines three distinct types of USB port: A Standard Downstream Port (SDP); a Dedicated Charging Port (DCP); and a Charging Downstream Port (CDP) (Figure 2)." The Pi meets the DCP design. Some devices have ports that meet all three but that is not mandatory; some devices will only allow one. That's not ideal but not against spec.
Typical RPi stuff (Score:3)
I have to say I always have concerns about their hardware.
I was one of the first purchasers of the original... we discovered that the USB port dropped packets because of the shared-port design, especially if it was under heavy network load. It literally took days to discover, how it got past all the testing I can't fathom and the Broadcom engineers took forever to narrow it down (even with me and many others sending off hardware - they were convinced it was to do with the SD cards in use).
The PoE hat had to be revised as it sometimes just didn't work. The only thing that appeared to "work" without all kinds of revisions and firmware workarounds was the DVB-T hat, and that's mostly because it's nothing more than an SPI-driven DVB chip that already had drivers in Linux for many years... there's basically nothing else on the board.
The RPi 4 looked great. But they've seriously underestimated stock despite having a "surprise" release without any kind of hype, where they could have prepared any amount of stock in advance. You still can't get the 4Gb version at most stores, weeks after release.
Looks like I'll have to do what I always have to do with these people... wait until the RPi 4B+++1! Rev D Turbo Hyperfighting edition of the board that's actually correct, by which time the firmware and drivers will be fully working in all the distros.
Honestly, I'm always disappointed by their testing regimes. They sell millions of the things and yet there's always *something* on release.
I'll wait a year or so, for the updated boards and the cases and software to catch up, when they'll be putting out an RPi5 or whatever, and then buy a handful of the working versions of the RPi4.
I don't even get what's so hard about letting case and software makers know in advance the changes so they can have stuff there for release day. I assume it works to their advantage to "only" have the official supply and case on release day.
Re: (Score:1)
Yes they are simply awful. I only have 4 (pi-3/pi-2) of them in active use around the house 24x7. Awful. And that price! Horrible. Should be 4 bucks, not 40.
Re: (Score:3)
I have to say I always have concerns about their hardware.
Not entirely surprising - its ruthlessly designed down to a very low price. The point is that "makers" don't need to worry too much about letting the magic smoke out, or ripping apart old projects to re-use the expensive computer. Most other computer makers expect you to pay premium prices for design flaws.
Plus, its partly meant to re-capture the spirit of the Sinclair ZXs and the BBC Micro. Long waits for stock? Dodgy ports? I think they nailed it :-).
Re: (Score:2)
I have to say I always have concerns about their hardware.
I have serious concerns about your expectations from a $30 device by a small non-profit foundation. Get a grip man, this isn't a high performance product from a multinational corporation leveraging vertically integrated supply chains.
I have never had concerns about their hardware or its supply. I am continuously amazed at what the Raspberry Pi foundation has and is achieving.
Re: (Score:2)
You don't know the difference between a amp and a watt, but accuse the other guy of not understanding electricity.
USB-C has variable voltage.
To supply 60W USB-C provides up to 3A at 20V. 20V is a good way to fry a device designed for the Audio Adapter Accessory Mode which is by design limited to 5V.
Re: (Score:2)
And that's the issue here: the rpi4 is passively identifying itself as a device that doesn't support higher charging rates (by having the resistors wired wrong) so the smart charger/cable supply low power.
Re: (Score:2)
The "smart" cables are simply not fulfilling their purpose
Uh, no. They're fulfilling their purpose. Active USB-C cables recondition signal and handle negotiation for 100W loads. The fact that the Pi is not following spec for negotiation there is hardly the fault of the cable.
because the designer thought that a cable would be a better judge of what it should do than the device it is plugged into.
The active IC isn't there for shits and giggles. It serves a purpose. Thankfully, they wrote a spec so that people could interact with them correctly. Whoops.
A perhaps a good question would be why smart cables refuse to charge audio devices
It doesn't. The USB-PD charger does, because it is looking for the USB-PD control channel, which isn't there because the remote device s
Re:Sounds More like a Bug with the Cables (Score:5, Informative)
Unless the article is being very misleading, the pi devices are ready and able to take everything any cables can throw at them. The devices are correcting asking for for a charge.
You are misunderstanding USB.
The problem is specifically the Pi is requesting no current to charge with by explicitly stating it is an audio device that doesn't need power.
That's what the resistors do.
The "smart" cables are simply not fulfilling their purpose, because the designer thought that a cable would be a better judge of what it should do than the device it is plugged into.
It's the device telling the cable it doesn't want power. Again, that's exactly what the resistors are for, and it is the Pi stating it wants no power because it is an audio device.
A perhaps a good question would be why smart cables refuse to charge audio devices, do you need to buy the audio charging DLC from the manufacturer?
The cables do not, there is a different resistor value combination to state you are an audio device that wants power, a combination the Pi isn't using.
The cables are delivering exactly what is requested, nothing, because it is the pi saying it doesn't want power from the cable.
A better question is why you think the cable should be overriding what the device says?
You are pretty much stating the cable should magically know and decide to send power when the device explicitly says not to.
Why are you trying to destroy audio devices that don't need power?
Re: (Score:2)
If it works like you describe, that makes a lot more sense. But are you implying that the vast majority of usb-c cables (all non smart cables) will destroy all non charging devices they are plugged into?
Re:Sounds More like a Bug with the Cables (Score:5, Informative)
But are you implying that the vast majority of usb-c cables (all non smart cables) will destroy all non charging devices they are plugged into?
It's the other end, you can damage a power supply by drawing more current from it than it can deliver. You can also overheat your cable by drawing more current through it than it's rated for.
Check out the new "USB power delivery" spec. Try searching on: USB PD R2.0 V1.2
To use "legacy" mode you must put resistors on the data lines, which by definition makes it a charge only port and not a data capable port.
To be data capable and still follow the USB-C spec you must use the new power delivery spec.
This is from https://www.chromium.org/chromium-os/cable-and-adapter-tips-and-tricks [chromium.org]
In a 5V 3A or 5V 1.5A supply can I connect CC1 and CC2 and use a single shared resistor?
No. This design fails with active cables, emarked cables or any device that requests Vconn. These cables have an Ra pulldown on one of the pins, preventing accurate detection of CC voltage if the pins are shorted at the adapter.
Now note the resistor configuration table for power adapters above that.
To get power you need a resistor on CC1 and leave CC2 open. "Hot" mode.
If they are shorted together, that can't be. Both will have resistance on them, which you'll note is "cold" mode.
This mode does not deliver power until the device, this case the pi, itself puts power onto the line to signal how much current it needs.
Remember again, we are trying to power the pi, it has no other source of power yet, and no way to put power on that line.
5V shall be applied to VBUS only when a UFP is detected by monitoring voltage on the CC pin. 5V should only be applied when voltage vRd on CC is 0.85V < vRd < 2.45V for a 3A power source.
Since the pi isn't (and can't) put power back into CC to the supply, a supply must not apply power itself to the device.
This is what the pi is saying to the power supply when wired incorrectly this way.
It shouldn't even be using this mode, let alone using it and in a way telling the power supply to not deliver power.
If it was the power supply end getting this detail wrong, it is completely possible to misinterpret a legacy mode device requesting higher 5v amperage, as a request for a higher voltage instead.
Screwing that up would very much destroy whatever device was plugged into it, getting potentially 20v shoved down its throat.
Thus the "vSafe0" fall backs when things aren't just right or only following part of the spec.
Simply not working is a far better default state than over powering anything in any way.
Re: (Score:3)
So if a device advertises itself over Ethernet as Gigabit but isn't, and your device constantly falls off the network as it constantly fails gigabit negotiation but is constantly saying that it's Gigabit-capable, is that the network's fault?
What about if it's not advertising PoE capability/requirement but needs to?
It's literally no different. If you put the resistance that the RPi does, on the pins that it does, on the cable that it does, the equipment powering the other end is literally being instructed t
Three Words They Want Don't Want to See (Score:2)
So, let's just fix it (Score:1)
So, naturally, I wonder if there's an easy fix to this...
Maybe we can mod the Pi and include the missing resistor (this assumes that the solution is indeed this easy) ?
Or possibly just use a pass-through dongle inbetween the Pi and the USB-C charger that corrects the identification mistake?
I'm keen to see what the hacker hive come up with, since this is a product that is (at least half) aimed for these users.
Re: (Score:1)
It's a workaround, for sure, to not use these cables (which should be supported.)
The completest in me wants to see a homebrew fix. I'll browse hackaday and see what comes forth in the weeks ahead
Schematics are not fully available (Score:3)
The Pi schematics are incomplete and heavily-redacted. It just so happens that the available schematics included the USB-C port and associated circuitry, but the Pi hardware is not open by any means.
That said, the Pis are sweet little machines. I own a Zero E, a couple of 3Bs and a 4.
Re: Schematics are not fully available (Score:2)
Re: (Score:2)
Schematics for V4 are here: https://www.raspberrypi.org/do... [raspberrypi.org]
What parts are redacted?
"Reduced" just means they combined everyone onto one giant unwieldy A2 sheet. Shame they didn't use Kicad too.
Re: (Score:2)
"Reduced" just means they combined everyone onto one giant unwieldy A2 sheet.
Errr no. Maybe look at the schematic you linked to. Please point out the SoC, the RAM chip, the Network chip, and the USB chip on your "combined everything on one" schematic.
Re: (Score:2)
My bad, you are correct. Sorry. hot weather is melting my brain lately.
Really should have used a barrel connector (Score:3)
They really should have used a barrel connector.
So many naive Raspberry Pi owners wonder why their fancy gadget randomly corrupts SDCards and get the flashy undervoltage icon thing in the top-right-hand corner of their screens when using their phone charger.
Orange Pi had the right idea with the barrel connector. It's ponderous why the Raspberry Pi Foundation didn't address this years ago, especially with the market flooded with sketchy USB Type C chargers [gizmodo.com].
Re: (Score:2)
Probably because it's easier for people to blow their Pi up with a barrel connector. Is it centre positive or centre negative? 5V, 7.5V, 9V, 12V, 15V? Adding a wider input range supply would have added cost.
Also, people have USB chargers so it further reduces the cost to the consumer.
Re: (Score:2)
Re: (Score:2)
They did address it. The singular requirement was for the Pi to use a powersupply that users likely already had further driving down cost.
If you want barrel connector, buy one and connect it to the GPIO header. You want it battery powered, connect it to the GPIO header, you want PoE > GPIO header.
Raspberry Pi gives you any option you could possibly desire for powering their device, but by default it ships with the one of use to the most people.
Re: (Score:2)
Re: (Score:2)
If that were true, they wouldn't have changed from SD to microSD, from microUSB to USB-C, etc.. The point of the RPi changes is to force you to buy new power adaptors and cases, because the only people who even *knew* that the 4 was being released, or what it had, were the RPi people, so day-1 case and peripheral sales can only came from them.
If they cared about "common everyday components", they'd have left it SD but bundled a 10p plastic micro-adaptor, they'd have left it microUSB but bundled a mini USB-
Re: (Score:3)
The point of the RPi changes is to force you to buy new power adaptors and cases
Sorry but horseshit. The RPi changes specifically fit a very important need:
The SD slot took a lot of space and sat proud of any case.
The change to USB-C was that MicroUSB doesn't provide the necessary power that USB-C chargers do as standard.
You clearly have zero idea of the technical details of the project or its changes, especially since they DID separate the power pins out the way "if they wanted to", and you can modularlise the power solution to do whatever you want. They even sell a battery power hat
Extensive field tests (Score:2)
My guess is that people were like "oh, this cable doesn't work, let's get another one, oh, this one works, guess that other cable has a problem even though it works with my phone, can't possibly be a problem with my Pi"