Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Raspberry Pi admits to faulty USB-C design on the Pi 4 (arstechnica.com)
255 points by close04 on July 9, 2019 | hide | past | favorite | 158 comments


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 all' connector. We're slowly heading in the opposite direction.


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.


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 mistakes. Or maybe people knowingly cut corners to save money (because saving on parts is a pressure that will never go away). Or something else.

So some sort of process fix seems to be needed, one that will (1) reward those who succeed and/or (2) punish those who try to get away with violating the spec and/or (3) create tools (like test equipment or certification services or processes) to make compliance easier to achieve for those who are trying to.

So, for example, could the Pi people have used some kind of device that would plug in and run through all the combinations? Or could there have been a canned list of test cases (representatives of different types of chargers, how they should behave) they should have run? Or could they have sent a prototype device off to USB Shouldn't Suck Labs to have them test it? Or email a schematic to them to have it reviewed by an engineer?


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


The USB Power Delivery specification is very complicated and covers, despite the name, a lot more than power delivery.


But in this particular case, USB Power Delivery was not involved, only basic USB-C. The USB-C plug was designed so that simple uses, like the 15W charging RPi has, do not need USB Power Delivery at all, just a couple of identification resistors and a way to read the resulting voltage (which will tell whether you can use the full 3A or must use less).


The spec is not the product. The USB C spec is not a USB C charger. It may not be a valid criticism of the spec but it's a 100% valid criticism of USB-C


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 of the planet, not all of whom can afford expensive cables.


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.


I like RJ-45 for this. I can choose between several different cables that are all compatible and pay only for the features/speed I need.


What happens with A to C converters and legacy cables? Or do we just not support A devices anymore?


Too complex and overreaching is certainly a valid fault.


If a spec defines a fully working part, and you go off and tackle the complexity by designing your own part that turns out to be non-compliant, then the blame is on the spec?


Hey, it worked(?) for the web!


maybe the spec is onerous


Or vague, or just plain incorrect.

I could see making a mistake like this. The earlier USB specs called for goofy things like grounding the shield to the enclosure entrance via parallel RC networks instead of bonding it properly, as well as adding various bypass capacitors to the data lines(!). These guidelines were poorly thought out, widely misinterpreted and even more widely ignored. They have conditioned engineers to make their own judgment calls in areas where they really should have been both more descriptive and more prescriptive, so maybe this is one of those cases.

I haven't looked at the post-USB 2 specs at all but wouldn't be surprised if they are nowhere near as clear, unambiguous, and well-thought-out as people here are saying.


> The power spec is very clear and unambiguous, and there is only one way to get it right.

Obviously not, since there is a way to get it almost right, which is what the Pi 4 demonstrates here. Experience from cryptography suggests that for a spec to be truly unambiguous, any deviation should make the implementation fail obviously in as many situations as possible.


I wish there was some kind of patent or trademark law that could be used to punish companies who advertise with the word "USB" or "Type-C" without adhering to the spec.


It is interesting that the USB Forum, for all their VID/PID douchebaggery, didn't register the trademark and enforce it on non-compliant implementations.

That would have been right in line with demanding that everyone buy 65,536 IDs at a time for thousands of dollars while attempting to prohibit resale.


USB in general seems like a deep, deep rabbit hole. You could devote your entire career to becoming a USB expert. The USB 2.0 spec is like 700 pages long. The 3.0 spec is like 500 pages long and requires you to be familiar with the 2.0 spec at the very start.

I started digging into USB for a project and the rabbit hole kept going deeper and deeper; I never fathomed the amount of complexity hidden under the hood of USB until I needed to start talking to a Qualcomm modem on the other side of a USB 3.0 connection (and the modem, even though it is a single device, enumerates 16+ USB 3.0 endpoints, which is a problem for a lot of ARM SoCs, or at least the vendors we tried!).


The number of pages don't tell you anything though.

I'd assume there are a bunch of reference designs, probably provided by the USB consortium itself, which should make it unnecessary to know anything about the spec to produce a USB C port.


There are open source designs (that I've successfully copied) that show how the RPI people should have done this correctly, it's not hard - in this case they tried to save a 0.1c resistor

The hard bit is fitting all those traces (some potentially high current) around that dinky connector with 24+ ground pins - with many all trying to do the swap thing at the same time


That said, the serial cables that preceeded USB had very simple specs that put the brunt of interconnection complexity on the user.

7 bits even parity? 8 bits no parity? hardware or software flow control? how do I know the modem is connected? lots o' fun!


”had very simple specs”

The specs weren’t that simple (why would a serial port connector need 25 wires?).

It’s more the implementations that were simple, going down to 5, 3 or even 2 wires (https://en.m.wikipedia.org/wiki/RS-232#3-wire_and_5-wire_RS-...)


What do they all do!?


I would guess that they're basically directly exposing the modem's ACPI device subtree over USB, the same way they would over PCIe. So you've got one endpoint corresponding to the data TX DMA region; one corresponding to the data RX DMA region; one corresponding to the command IO stream input; one corresponding to a command error channel; one corresponding to each different axis of mode-setting; etc.


Well, this design is better than the alternative.

Composing simple devices in a hierarchical address is much better than the old complex devices that had everything explained on the same datasheet, but it had 300 pages and no two devices were alike.


The question is: do we really need these rabbit holes?


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.


Which is the single reason why I hate USB-C, and I don't want USB-C to replace lightning.

And yet people keep saying USB-C will get better, the controller will get better, the quality of USB-C cable will get better. And Time and Time again it has proved vendors only care about cost, not quality.


> people keep saying USB-C will get better

Maybe people remember the beginning of USB. No cable marked charging/data but some are charging-only. Different resistances interfering with charging. USB 1 hubs pretending to be 2. It was all sorted out with time. Now USB 2 seems like magic that just works everywhere, but it really used to suck. (The experience, not the tech itself)


There are some very bad lightning connectors too.

In fact, you can buy lightning connectors that will destroy your iphone.

Poor quality implementations in order to save costs have nothing to do with USB-C vs Lightning.

In fact, because Apple charges so much to be able to build official lightning devices, people are more likely to go with unofficial cables from unknown brands. At least USB-C cables and chargers are a lot cheaper for reputed brands to manufacture officially.


* customers, not vendors. Vendors respond to the market.


I think the problem is, there's a distinction between a customer and a user. The customer just looks at the object, judges if it's adequate, then takes the cheapest one that meets that rough criterion. That's a very different kind of test to actually using the thing.


Sure. That’s why it’s taken decades after the ubiquity of the Internet for movie production houses to put their content on streaming services.


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.


USB C has confused me for the same reason. I read often about how there is no expectation that two USB-C cables/ports will work together.

Why design them to fit together if they won't always work right?


Because it's useful to have a bunch of multi-purpose ports on a computer. You can attach a mouse, a keyboard, a printer, a hard drive, a screen, a dock, a charger, or whatever you want, all to the same port.

In my experience, finding the right cable has never been an issue. All the USB-C devices I've bought came with a suitable cable in the box.


It's not the initial cable that's the problem, it's those that come after.

My wife wanted a charger with a longer cable for her phone. We need it to be able to fast charge, which is called a variety of different names on both the phone and charger sides. Can I get the $10 charger, or do I need the $40 charger the size of the MBP charger?

We ended up just biting the bullet and getting one of the more expensive, MBP-charger-shaped chargers, since I have laptops that use USB-C - but it was a confusing mess, and I still wasn't really sure fast charging would work on her phone till I plugged it in the first time.


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?


Well sure if it's for a airconditioned-hottub-phone, but I'm pretty sure a small 600 watt cable would be more cost effective here.


> In my experience, finding the right cable has never been an issue. All the USB-C devices I've bought came with a suitable cable in the box.

Which is fine, until you need you need a new cable. When I lost the cable for my phone, finding a cable I could trust was a pain.


> Why design them to fit together if they won't always work right?

I too don’t understand dynamic typing. ;)


> Why design them to fit together if they won't always work right?

USB-C is designed for graceful degradation.

There are two main types of non-captive cables: USB 2.0 only and USB 2.0 plus USB 3.x. Hosts and devices have to support at least USB 2.0, so if you try to connect two USB 3.x devices with a USB 2.0 only cable, it'll fallback to a USB 2.0 connection.

There are two main current levels: 3A and 5A. Cables which can carry higher power have a small chip describing this fact; if the chip is missing, the power source will limit itself to 3A.

Then there are the alternate modes. If you try to plug a device which only understands an alternate mode (for instance, a DisplayPort adapter), and the host doesn't understand that alternate mode (or can't understand it, like in the case of a USB-A port with a USB-A to USB-C cable), that device will instead appear as an USB 2.x device (the "billboard device"), which the operating system can use to show an error popup.

And so on. At every corner of the spec you can notice an interest in making it degrade gracefully. Of course, that can only work when the manufacturers follow the spec correctly.


I find it incredible that presumably no one tried using a MacBook charger before this shipped. If they did and didn't document the shortcoming that's arguably just as bad.

Surely a not insignificant number of customers have MacBooks? If I was writing some test specs this use case would almost certainly feature, given the MacBook Pro's USB C adapter must be one of the most widespread high power USB C charger designs in existence. Especially when the stock device does not ship with a power supply, not like it was unforeseeable some customers would just use the chargers they already have.


It seems a case of rushing a product 9-12 months ahead of schedule, scrapping two silicon revisions, as mentioned in the announcement[0] in their haste to be "production ready".

"Good, low-cost USB-C power supplies (and USB-C cables) are surprisingly hard to find, as we discovered when sending out prototype units to alpha testers"

In hindsight that reads that they tried a bunch of off-the-shelf cables and were perplexed about why some of them didn't work.

So they built their own official power supply that worked around the design flaw.

[0] https://www.raspberrypi.org/blog/raspberry-pi-4-on-sale-now-...


You over-estimate how popular Macbooks are outside the US.


About two thirds of all Apple's computers are sold outside the US. It's significant enough. In British engineering circles there are plenty of them (relevant given the location in which the Pi team works).

The key point here is the standard charger design used on almost all laptop models from the world's 4th largest computer vendor. In my experience laptops from the top three have nothing close to the level of standardization in their charger design, given none of the top three have standardized solely on USB C for laptop charging. It was entirely foreseeable many people would try this and be disappointed when it didn't work.


> From a Pi consumer perspective, this is not that big of a deal.

Well, didn't seem that way to me when I bought an RPi4, tried it with two different power supplies and cables, and it didn't work at all. I thought the device was DoA so I did an RME with the distributor.

Today I learned a different story, and now I'll have to scrounge up yet another cable to see what the true story is. The one cable I have not tried may or may not be "dumb" enough for the RPi4 to work.

It's annoying at best.


Would be less of an issue if they included a usb c power cable but they don’t :/


Yeah.

At least the "dumb" cable I use in the car with my phone is dumb enough to feed power to the RPi4 anyway, so I'm going to keep the device and just remember to only use it with cheap, dumb cables.

I was very confused a few days ago when I plugged it into the MacBook Pro power supply, thinking "this ought to have more than enough juice for the Pi" - except the thing stayed dead and silent altogether. :)


Would be nice if they at least had a code on them to know what the compatibility is, such AV means the port is audio and video compatible, AVP would mean the former plus you can use it to charge or power a device. The same codes could be used on the cables as well.


And then you'd get and arms race that leads to "USB C AVPDEFWXYZLGBTQ" cables and ports that are compatible with every possible use and eventually everyone would just use those thus fulfilling the goal that USB C had in the first place.


> AVPDEFWXYZLGBTQ

RISC-V, is that you?


Disagree... you should have two types of cables, one low end, low power, etc... one high end, supports it all. That would be easier. As to the audio adapter, would just assume to have an inline dac, I have a USB2 A to 3.5mm 4-pole adapter that would be entirely doable in USB3, maybe a slight bump at either end. Then the device would have to support the given DAC, you'd have the same compatibility issues for audio, but that's already true. 3 failed attempts to get a cheap replacement for my lost my pixel 2 xl adapter.


I don't think that solution works, because I have one converter that is audio, visual, power capable for my Nintendo Switch, but incompatible with my Surface Go, and another that is vis versa.


USB Type-C is an example of the second-system effect:

http://catb.org/jargon/html/S/second-system-effect.html



alternatively,

"There are 14 competing standards"...

https://xkcd.com/927/


So basically Type-C is like the F-35 of the USB world?


All purpose spec will be a round connector


We got rid of that for space reasons. courage.


Reminder to self: being an early adopter sucks virtually always.

Edit: Sure, the issue is rather easy to circumvent, but anyone would have preferred not to have it. At the very least, it affects the resale value. My point is that whenever the answer to the question 'do I need it absolutely right away?' is no, it's better to wait a bit, no matter how much you intend to buy it at some point.


There is an old joke about the American West which goes, "Q: How do you know which people were pioneers? A: They are the ones with arrows in their back."

USB-C is a phenomenally complex system from an engineering perspective, serving at least three masters (compatibility, power delivery, and enhanced performance). As these systems go through the standards process you have vendors designing silicon in anticipation and engineers designing circuits. Not surprisingly, I have met just as many EE's who 'design by looking at something that does something similar' as software engineers who start with code that does something close and hack it into compliance.

Actually taking the time to develop an understanding of the complex system after it has made it through its final standards ballot, and then build systems with it take too long in today's market. You would bring something to market 3 to 5 years after the first products hit and were probably establishing defacto standards.

So the business side pushes to get something out, the engineering side learns just enough to get it to work in their lab, and the trademark validation/usage process is new/non-existent. As a result you will see early products that are broken in various ways until the collective knowledge and number of correct examples reaches the tipping point. After you reach that point future designs will likely work reliably because the chance of everyone involved having enough examples to start from is high, and compatibility issues will have been publicized and thus written into the book of "things not to do."


They should have bought arrows with appropriate IFF circuitry.


Wouldn't true pioneers have arrows in their front?


In the UK House of Parliament the two main parties sit in rows and face each other across the house. It's said that the politicians on the front bench (the party leaders) have their opponents in front of them and their enemies behind.


The arrows are a metaphor for "friendly fire" from former compatriots they have angered, not the enemy forces.


I wonder if something is to be said for the third generation of people who suddenly find themselves facing musket balls to the front from a hostile population now more heavily armed by previous pioneers.


I simply ordered one with the official power supply(at £8 it's cheaper than literally any branded USB-C charger) and would never even know there was an issue if not for the articles here.


Same here. For that price, anything else I could get would probably turn out to be a half-broken counterfeit garbage that might burn my house down. I'm considering buying an additional charger from them just to have a spare for my other USB-C devices.


Only downside of the official power supply (if you are not British) is that it tends to cover some of the neighboring plugs on the extension cord. They could have gone with a slightly narrower and taller one but I assume this is what fits best on the British 3-prong.


Doesn't this mean that you can't use the Branded power supply with anything else? I'm so used to all my micro-usb (and hell, even mini and normal USB) based power delivery systems being 100% compatible, save using a 0.5amp supply simply won't charge my old phone as quickly as a 1.8 or whatever amp supply.

Is this untrue in the world of USB C? I haven't experienced any oddities yet with my Pixel 2


The design mistake is on the RPi side, not the power supply side; their branded power supply should work with anything that needs at most 15W (3A @ 5V).


>Doesn't this mean that you can't use the Branded power supply with anything else?

No, check the article for an explanation.


Eh, it’s not too bad. I found a cable that works and I’ll stick to it. Even with previous-gen Pis there was always a bit of futzing with cables to find one that has small enough voltage drop to not get power warnings (even some otherwise “good” cables really cheap out on copper). The USB C thing is still an issue, and I’m glad it’ll be fixed, but it’s really not that big of a deal.


Having chopped up quite a few USB cables to power Pi's from fixed supplies (for professional use), I can totally relate to this. Even thick 'quality' cables commonly have dinky little copper wires inside, wrapped in lots of plastic. The only cables we found that were decently made were Molex ones which cost around 10UKP each at the time (a price we were happy to pay).


For me, the USB cable that came with the 5V/2A charger that came with my phone did the trick. A fairly common source of high current capable USB cables.


I'm not sure I understand the concept of "resale value" when it comes to a Raspberry Pi... they're dirt cheap boards, who's going to look at one and go "this is a wise investment that I will be able to sell on a year from now at a good price"?


There's always a risk/reward going on being an early adopter, in this case it's far from the worst though. It's a 35$ purchase, and at worst you have to get a new cable.


Lucky me I didn't have any problems with mine because I:

- Bought the most basic kit that included a power supply and heat sinks

- Bought a $10 acrylic case with a fan so cooling also is not an issue for me


While this isn't great, as a consumer I don't really see too big of a problem. If I get a raspberry pi to use for home automation or as a media center, do I really need it to work with every USB-C cable? I'd think I'd just find one that works and let that be the dedicated raspberry 4 cable.

If you're building a product based on Raspberry Pi that you're selling to others, then sure I could understand the outrage.


They chose to use a standard so yes it's a problem that they didn't follow it. It's pretty cut & dry here.

Fortunately in this case it fails to 0V so it's not a dangerous or damaging failure, but still the spec literally hands you a schematic. Is it that hard to just copy it? Why did they even try to be clever and use their own design in the first place just to save a single 5.1k ohm resistor?


>but still the spec literally hands you a schematic. Is it that hard to just copy it? Why did they even try to be clever and use their own design in the first place just to save a single 5.1k ohm resistor?

See also: People who like to get all creative with encryption library implementations in commercial settings. If implementing a standard protocol, unless you have a very good reason otherwise, you should;

1. Go and find the guide by the people who designed it.

2. Read the guide and make test thingies till you are sure you understand it.

3. Now go and do what the guide tells you to do.


I can give the automotive electronics perspective here. Suppose that resistor costs 2c, including the actual part cost, PCB space, pick-and-place machine time (inc. more frequent spool replacement). Further suppose you expect to sell one million of this device.

$0.02 x 1E6 = $20k

If you are the circuit designer making, say, $150k, you just justified about a month of your salary (after accounting for benefits and other overhead). Your manager may parade you in front of the team at the next big group meeting as an example of how to achieve the BOM efficiency the company need to hit profit margin targets.


I've never bought into that reasoning on the automotive side. Selling "one million of this device," as you say, will bring in $20 billion. So yes, they can afford $20K to do the job right.

Also, SMT resistors at that quantity level are more like 1/10 of a cent, not 2 cents, and the PnP machine is running anyway. In fact you often end up using more resistors than strictly necessary, just because the machine holds a limited number of reels and it's cheaper to use more of the same part to arrive at a desired value than to add a new line item.

Things should be as cheap as possible, but no cheaper. Optimizing the cost of individual resistors is almost always a classic example of measuring the wrong thing. We should strive to avoid making excuses for doing that.


If it was purely about saving costs why even use USB-C, though? They could have just said that a 3A micro-usb supply is now required for USB power. The Pi4 isn't actually using any of the increased power delivery provided by USB-C PD, which is in the higher voltage range, after all. It just wants 5V 3A, which micro-usb can certainly handle as well (there are a variety of such power supplies for previous Pi's in fact).

Seems like a really questionable cost-savings maneuver to switch to a way more complicated & expensive connector for nearly no reason, and then penny pitch on one resistor.


Costs taken into consideration sure, but the Raspberry Pi Foundation is a charity, so I'm not sure the same sort of incentives exist on a personal basis. It probably is just the engineering attitude of saving costs as much as possible.


Those small SMD resistors come on a reel, and they're typically much cheaper than 2 cent: more like 0.1 cent. Still, that's $1000 for one million units.


Generally when I use a SBC like a raspberry pi or esp 8266/32, I use an existing cell phone charger + whatever cable is nearest to where I'm sitting.

I 100% expect the SBC to work with any combination of charger and cable. I have lots of existing cell phone charges and cables so unless I were purchasing this for someone else I don't think I would consider ordering the branded raspberry pi charger/cable.

Compatibility with existing cables is a big deal; I won't be ordering my Pi 4 until sometime after this is resolved.


The Pi 3 already didn't work with random PSUs or cables one has around.

But it still worked with just a sufficiently powerful PSU, while the Pi 4 requires something implementing the USB-C standard. Honestly, I'd prefer a round plug I could use with a 12V PSU.


And you would be disappointed. 3/4 of the micro-usb cables I purchased of my favorite purveyor of cheap chinesium does not power a pi3, and when it does brown-out

Have a hard look at the simple 'how can anyone possibly get a piece of wire wrong' cable, or even better test it.

https://www.youtube.com/watch?v=n70N_sBYepQ


At least in that case, its a matter of looking at the Amps to make sure there is enough juice.


I don't think anyone believes it is a big problem, but it's a minor annoyance with an easy resolution that will improve the general robustness of the product when it's fixed. Which is a great thing for a cheap all-purpose device like the raspi.


You might want to use a type c charger you already have or a power bank.


Or the person buying it is the increasingly number of non-technical people buying Raspberry Pis. To them, its just broken and needs to be returned.


I'd be pretty damn annoyed if I went to set up my new media center and discovered that I was gonna need to go out, buy a selection of different cables, and figure out which one works.


Or you just buy the official cable, which seems to be competitively priced. It's not ideal, but also not that big of a deal now that it is known. (Yes, it would be incredibly frustrating if you encountered this and was not aware)


As a consumer I think it's a big problem. Having identical ports that work differently is even more confusing than having a half dozen different ports. I can look at a micro-USB cable and a mini-USB cable and tell in 2 seconds which one works with the device I have - I can't do that if the ports look the same but behave differently.

It's enough of a usability fail that I won't buy one until it's fixed.


Just buy the official power supply instead of "finding" random junk.


...but then why follow specifications at all?


The computer costs $35-55. Mistakes get made and they'll fix it. Get over it.


>a board revision with a spec-compliant charging port should be out sometime in the "next few months."

wohoo. Glad I waited. Hoping they make some incremental gains on the heat situation too


Normal-sized HDMI connectors would be great, too.


Interesting that two major-ish companies sell products that are out of spec (rpi and Nintendo). Is there any insight on why these decisions were made? Business and engineering opinions would be equally interesting.


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 with a low caliber worker, because 99% of the time that's exactly who will get tasked to deal with your specification.

[1] https://medium.com/@leung.benson/how-to-design-a-proper-usb-...


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.


Probably a mix of complicated standards, NIH, lack of standards compliance testing, and "works on my machine"


Nintendo has 6k employees, rpi foundation has like 1/100th of that. They are not really comparable.


I have two RPi4B 4GB models. They work perfectly with the very cheap PSU/charger ($8) from the Raspberry Pi Foundation. $8 is less than a cost of a USB-C cable.

If you want to complain something about the product, I think unfinished software would deserve more attention. The current desktop performance doesn't reflect the capabilities of the system. I guess it'll significantly improve once OpenGL ES 3.2 (and hopefully Vulkan!) drivers will be complete.

Other minor issue I had was RPi4B not recognizing the HDMI display. I had to manually force it and this caused loss of HDMI audio. Using the official Raspberry Pi branded micro-HDMI cable.

I hope Raspbian will eventually have a 64-bit version. Out-of-order cores can benefit from more registers in 64-bit mode. More registers allows the compiler to reduce true and false dependencies, leading to faster code execution.

CPU wise it's nice, quad Cortex A72 is a huge boost compared to A53. Hardware accelerated omxplayer can play 4K HEVC content nicely. USB 3 ports have up to 4 Gbit/s bandwidth, and it's not shared with the now truly full speed gigabit ethernet.

I'm very happy with the product. RPi4B is a very capable system for its price. And it'll just get better over time.


There is a 64-bit Kali Linux image for the Raspberry Pi.

https://www.offensive-security.com/kali-linux-arm-images/


I mentioned in an earlier thread, I had so much trouble using any charger I already had with the 3B+, I just assumed it wouldn't work with most chargers this time either and ordered a kit with an official one.


Same, I traced it back to my penchant for buying cheap shit cables. Measure the voltage at the back of the USB connector on the Pi3, it should be > 4.9 always.


Is it possible to fix? Sounds like it's just missing a resistor? Break out the soldering iron and maybe could it could be salvaged.


Part of the problem with this seems to be that the extra pads are not exposed, making it really hard to do fix without removing the connector.


The problem isn't just the missing resistor, it's that two pins are tied together when they shouldn't be. I don't think it's feasible to fix that on such a dense multilayer board.


I preordered, and it hasn't shipped yet. I wish there were an option to wait and get a fixed one later instead.


I ended up cancelling my pre-order from Element 14, you could potentially do the same depending on who you ordered from. I didn't cancel because of this, but just because I got really busy with work and I know it'll be a few months before I get to pull it out of the drawer. Better to let someone else have it to use than take a pre-order spot for my desk drawer.


I think the Pi team unintentionally became dependant on the time window they normally spent using test boards based on pre-release versions of the Broadcom sytem-on-a-chip. When the Broadcom chip went final really early they ended up shipping a half-baked version of the board along with it.


They should offer group labs to DIY fix the pcb


Do I still need to pay them extra cash to get video codecs codes?


"E-marked cables are fully featured USB-C cables with chips inside"

That's um... awful.


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


You can plug a 5 amp rated extension cord into a residential plug on a 15A breaker and the breaker won’t protect you from overloading the cable with 15A. So yes, those sorts of light duty cables have their own fuse to prevent this.

But I really would not trust all the no-name vendors flooding the market with shitty USB cables to include correct safety measures in all of their cables, so requiring cables to specifically request higher power levels seems like a better precaution to rely on in this case.


(a) A fuse only prevents over-current based on the port's rating, not the cable's. It wouldn't help here.

(b) USB-C has several modes of operation. The thinner cables aren't under-speced in the lower-tier modes. They're perfectly fine for powering a mouse or carrying low-speed (USB 2.0 class) data. But not for charging a laptop, or other high current / data-rate uses.


How do you spec a fuse for out of spec usage? What's stopping me from connecting a strand of magnet wire between both sides?


A consumer does not solder USB connectors together with magnet wire.

Power plug compatibility which relies on software for fire safety is a bad idea.


Ok? But the kind of supplier willing to under-design cables will gladly do stuff that's barely a step up?

I literally don't understand your proposed alternative unless you're saying all cables should be spec'd to handle the max amount of voltage... in which case people would still under-design.

If the fuse is designed to keep cables for some voltage X from going up in flames, how will it keep cables for some voltage X-Y from going up in flames while also allowing Voltage X, when both are in spec?


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.


Is it? I think you want some smarts to talk to so 100W isn't pushed down a cable with wires too thin to handle it. And the high frequency modes (TB3, DP, etc) all require a lot of handshaking, signal conditioning etc to work, stuff that can't necessarily be done at the host connector side.


>a board revision with a spec-compliant charging port should be out sometime in the "next few months."

Are they going to change the boxes and their product spec to remove USB-C from it when they are not USB-C compliant?


Great maybe theyll deliver the 8gb model while theyre at it


There is no 8gb model, there is no memory chip of that type that would fit in the spot.


hm alright, thank you


Quadrupling the memory over the previous version wasn't enough for you?


no it wasn't

there are references to an 8gb model already so no need to act surprised when they do launch it


Damn, did they just Osborne themselves? I for sure have decided to hold off on a Pi-4 until this issue is fixed, since its really a hassle.

Maybe a smarter move would've been to bundle the Pi-4 charge (non E-cable) to avoid dissatisfaction with this mis-design ..


It's really only an issue if you're trying to power a pi4 from a high powered USB-C power delivery source source like a macbook, macbook air or macbook pro AC wall adapter. It would be a waste of money to use a $18 USB-C cable on a pi4.

I can see how this would be discovered quickly, since a lot of the early purchasers of the pi4 probably tried to power them up using the nearest USB-C power source at hand, which was their laptop's power adapter.

If you use a USB-C phone charger or any of the cheaper USB-C power sources intended to power things under 20 watts, it shouldn't be an issue. But they definitely do need a new board revision.


They provide their own charger. It works, I’ve got one.


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.


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 immediately, and it's going to cost us a fair bit but you can send your board back to get it replaced"


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


But some folk already have decent pd-usb3 chargers that damn well ought to work.

Mine, that can charge my gpd pocket can barely power my pi4.

I still see the yellow lightening bolt which indicates a "poor" power supply - which is just plain lying.


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.


Them fixing this issue in a future revision is almost a given (it's a simple fix), so them making that statement doesn't really affect anything. Therefore it's not really the Osborne effect in the sense that people are holding off for a better product, people are holding off buying because it's defective.


or you can just buy a $5 cable on amazon

it sucks but it's not a deal breaker.


How hard is it to to copy a [expletive] schematic?

Edit: I'm serious. What convinced them to implement a design different from the example in the spec that simply does not work (hello, testing?)?


The USB-C spec is 300 pages with multiple errata and revisions. It's not just one schematic.


FTA: Benson Leung seems to think they should have copied figured 4-9 -- https://medium.com/@leung.benson/how-to-design-a-proper-usb-...

I don't think a long and imperfect specification is a good excuse for getting this one wrong -- since this specific part of the spec is a MUST and accurate.


Yes, forget due diligence. It's too much work.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: