Live data from Hacker News

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

arstechnica.com

151–160 of 165 posts

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

#151
post #14

Earlier quoted context omitted.

The whole USB-C PD spec is overly complicated but in this case these chips are to ensure that someone doesn't push 4a/19v over an improperly built USB-C cable - that can lead to fire and burns. Also, other cables may have chips in them for data negotiation, specifically TB3/PCI encapsulation (the data rate is so high that over 6 inches you start to run into issues).

So, the spec allows an under-gauged cable to be plugged into a power outlet, and then relies on software (instead of a fuse) to not start a fire. I'm looking for a word... worse than awful...

No, what the spec does is say that if the cable doesn't have a max rating, it'll top out at 5V (and .5a, I believe).

Then, it does negotiation with the cable and the device to insure that it can provide the voltage the device needs.

And yes, PSUs MUST negotiate voltage or be 5V only and all USB-C devices must accept at least the 5V voltage.

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

#152
post #72

Earlier quoted context omitted.

And the criticism is completely invalid here. The power spec is very clear and unambiguous, and there is only one way to get it right. It is not the fault of the spec when manufacturers cannot be bothered to produce a circuit that has already been designed for them in the spec itself.

It seems like the spec must be at least reasonably clear because after these mistakes are made, someone like Benson Leung can always point to it and the community has little trouble adjudicating that yes, the spec said this one thing, but someone did that other thing instead. Given this has happened time and time again, it seems like a process flaw more than a document flaw. Maybe well-meaning people just make mistak…

> Given this has happened time and time again

I wasn’t aware there were different specs until a few weeks ago. I’m sure the rpi4 was in development since last year. They should have tested more cables, maybe they can fix it somehow.

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

#153

Earlier quoted context omitted.

Blame for this problem is 80% on RPi, no doubt, but I'd say 20% of the problem is someone deciding to allow multiple cables, some with active components in them. If they'd instead specified that every detachable USB C cable must be 40 Gbps / 100 watt capable, and any lower-spec cable must be captive to the device (like mouse and keyboard cables are) then this problem wouldn't have happened.

> If they'd instead specified that every detachable USB C cable must be 40 Gbps / 100 watt capable, and any lower-spec cable must be captive to the device (like mouse and keyboard cables are) then this problem wouldn't have happened. If you are specifying that every cable is going to be $30 minimum, then your spec is dead from day 0. The USB-C committee has to balance a spec that will be used by a significant chunk o…

Full-spec cables are only $30+ because that includes a premium margin for being full-spec, as a differentiator.

If all USB-C detached cables had to meet full-spec then there would be price competition.

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

#154

Earlier quoted context omitted.

You needed a $5 AC power extension cord.

Carry around a 3,000 watt mains extension, because someone decided making USB C cables all support 100 watts was just too demanding, eh?

100 watt USB cables are a bit thick and unwieldy since they need to support a current of 5A. They also need better insulation, since they use a higher voltage (up to 20V).

If your phone can only charge at 10 watt (5V / 2A), why would you use a stiff, heavy 100W cable to charge it?

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

#155

Earlier quoted context omitted.

It seems like the spec must be at least reasonably clear because after these mistakes are made, someone like Benson Leung can always point to it and the community has little trouble adjudicating that yes, the spec said this one thing, but someone did that other thing instead. Given this has happened time and time again, it seems like a process flaw more than a document flaw. Maybe well-meaning people just make mistak…

> Given this has happened time and time again I wasn’t aware there were different specs until a few weeks ago. I’m sure the rpi4 was in development since last year. They should have tested more cables, maybe they can fix it somehow.

> maybe they can fix it somehow

Given the problem description (wrong number of resistors), I doubt that they'll be able to fix it in the existing boards. I don't know how feasible it is for them to retool, but maybe we'll see a model 4.1 with an additional resistor show up at some point.

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

#156
post #30

Earlier quoted context omitted.

Yes, but it's an extra expense. If you've got spare USB-C chargers you could use, it's tempting to wait.

Their USB charger costs 7€. From my experience: Just buy their charger and you'll have no problem. I've seen so many attempts at powering the Pi with alternative sources that suck and cause problems. 7€ is worth avoiding that.

It's not only that there shouldn't be a need for their charger if you already have one, but if you integrate the Pi into something custom you'll possibly want custom power delivery as well, and then it's a PSU redesign when you find out.

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

#157

Earlier quoted context omitted.

Their USB charger costs 7€. From my experience: Just buy their charger and you'll have no problem. I've seen so many attempts at powering the Pi with alternative sources that suck and cause problems. 7€ is worth avoiding that.

Remember when the EU had to pass laws to prevent everyone from making their own bloody chargers with proprietary plugs for mobile phones, because _no one needs their own custom charger_? Yeah, that. It doesn't matter how cheap their charger is, no one should need to even buy one. RasPi botched their USB-C implementation, and the solution to that is not "buy yet another charger", it should be "we're fixing the design…

That's actually a good point I didn't consider.

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

#158
post #79

Earlier quoted context omitted.

Well, I followed through to Benson Leung's post where he cites and transcribes the actual USB-C specification and I'm not surprised that the spec is occasionally ignored. The supposedly 'normative' circuit diagram deviates from a conventional circuit diagram. If you want an engineer to pay attention to your instruction don't invent some ad-hoc diagram technique; be concrete and prescriptive, and assume you're dealing…

How does it diverge from a conventional circuit diagram?

See the circuit diagram above labeled "Excerpt from the reduced Pi4 Model B schematics..." that appears above the spec diagram? That is what I mean by a "conventional" diagram. That is the sort of diagram that people tasked with engineering boards (as opposed to writing standards) are use to dealing with all day. The spec diagram looks like an abstract block diagram, as opposed to a concrete circuit.

Now, you are very likely to say something like "but the spec diagram is a correct circuit diagram and the engineer should be expected to comprehend and correctly implement a circuit using it." And you're not wrong. But unfortunately, as is clearly evident by the frequency of failure to convey the intent of the spec, this expectation is too great. It shouldn't be but it is. That's a difficult thing to accept. For many it is simply impossible to accept. But yet that's the cold, simple truth and standing on ceremony doesn't change it.

When it costs money, in the form of lost sales due to disappointed customers or excessive support costs, "better" (as in more concrete, prescriptive) circuit diagrams are provided. One can see this in the datasheets and application notes from successful component manufacturers. They do this because they have to take the calls when engineers misunderstand things or need their hand held. They do this because they hear from managers and executives when their products are not "easy" to integrate.

Standards authors don't feel this pressure, so the subtle and easily dismissed gap between what appears in standards documents and what people actually want (and therefore pay attention to) is wider. What is wanted is something that appears nearly indistinguishable from what the engineer would expect to see while using Altium or Eagle or KiCad or some other commonly used EDA tool, and not a specification sufficient generalization.

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

#159
post #46

From a Pi consumer perspective, this is not that big of a deal. However, it damages the purpose (in name) of USB C. Isn't C supposed to be the 'all purpose' spec? If we have popular manufacturers failing to follow the spec, we end up with cables marked as 'compatible with Raspberry Pi' or 'compatible with Nintendo Switch'. To the average consumer (and even most techies), USB C was supposed to be the 'one size fits al…

This has always been a criticism of USB C and it proves true time and time again. USB-C tries to be too many things to too many people and ends up with a huge matrix of incompatibility as a result.

I guess there is some market for a USB-C compliance tester gadget you can plug into a device and check exactly how compatible it is.

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

#160
post #46

From a Pi consumer perspective, this is not that big of a deal. However, it damages the purpose (in name) of USB C. Isn't C supposed to be the 'all purpose' spec? If we have popular manufacturers failing to follow the spec, we end up with cables marked as 'compatible with Raspberry Pi' or 'compatible with Nintendo Switch'. To the average consumer (and even most techies), USB C was supposed to be the 'one size fits al…

This has always been a criticism of USB C and it proves true time and time again. USB-C tries to be too many things to too many people and ends up with a huge matrix of incompatibility as a result.

Benson Leung from the linked article...

"The Figure 4–9 I posted above isn’t simply a rough guideline of one way of making a USB-C receptacle. It’s actually normative, meaning mandatory, required by the spec in order to call your system a compliant USB-C power sink. Just copy it."

The reason this is wrong on the Pi is not because of "a huge matrix of incompatibility", but of ignorance to a mandatory design spec that is provided to everyone already.

It seems to parallel crypto from a high level. Yes, USB-C can be complex. But they did the hard work here so: don't roll your own and use this free and complete reference implementation.

Post reply on HN