4 ms·
It's one thing if an enthusiast made a mistake putting together a one-off breadboard for a board they're hacking on. But it's entirely a different problem if a
by LaughingMan11 7y ago
It's one thing if an enthusiast made a mistake putting together a one-off breadboard for a board they're hacking on. But it's entirely a different problem if a professional engineering organization, with a hardware release process, a factory build process, and a QA process didn't read the spec properly and didn't catch this bug.
If it's someone's profession to do engineering, don't give them a pass for not being able to follow an industry specification. Engineering is all about following arcane rules in various specs. If it's not USB, then it's Wifi or Bluetooth, or whathaveyou specs, which are all similarly complicated.
For what it's worth, the USB spec is complicated, but in this case, there's actually a picture in the USB Type-C Spec you linked to which tells hardware designers exactly how to put together this circuit. They should have just copied it directly instead of going off-script.
I wrote about it here, and included the figure from the spec:
https://medium.com/@leung.benson/how-to-design-a-proper-usb-c-power-sink-hint-not-the-way-raspberry-pi-4-did-it-f470d7a5910 https://medium.com/@leung.benson/how-to-design-a-proper-usb-...
- jaclaz 7y agoHey, you are "the" Benson Leung! I still believe that an error like that one is something that can happen (unlike a number of errors/mistakes you happened to find/highlight over the years). I am not saying that it's "normal", only saying that I can understand how someone could miss this aspect. Engineering is not (or should not be) "following arcane rules in various specs", good engineering is making things as simple as possible (but not simpler) and have them working. The engineer failed in the specific design, but IMHO the whole set of engineers that wrote the USB standard failed in making things simple enough. If we take another (unfortunately) "common" standard (one with which you are not maybe so familiar with) UEFI, its specs are more (last time I checked) than 2200 pages, is it so surprising that its implementation in many boards is not fully-fully compliant to them?