With USB-C, we still have separate cables for these three types, but they all look confusingly the same. Not convinced this is an improvement.
With USB-C, we still have separate cables for these three types, but they all look confusingly the same. Not convinced this is an improvement.
Having gone all in on Type-C, I have only ever gotten a "bad" cable as a cheap charge cable, and have never had issues with cable incompatibilities.
Per the spec, yes. But devices may have hardware design issues making this untrue, as in the article. As I understand it, the Pi 4 works correctly with cheaper cables, but not with more expensive ones:
> When combined with more capable cables (handling SuperSpeed data, or 5A power) this configuration will cause compliant chargers to provide 0V instead of 5V to the Pi.
Yes, but defective devices do not really go into the USB-C complexity consideration. They go into the trash bin.
We can't blame USB-C for people disregarding the spec, especially as this is not a hard part of it. We can only blame it for the fact that we do have different "classes" of devices, where the main way out is to only get the highest class.
Having run all-USB-C (and not using Apple products) for a few years now, I have never myself bumped into a product that was defective. Everything always worked as advertised.
Now you're saying that we need to throw out working devices so that we can ensure we only need good cables.
What the rPI did would be akin to a micro-USB device using data pins for power. Such device would be defective, and not "another type" of micro-USB.
But agreed that marking could be better—maybe marking lower cables as "charge" cable somehow. At least Thunderbolt cables are distinctly marked, and will become merged in USB4.
If you haven't run into a device or charger that has quirks, I'm surprised and happy you're that lucky. I'm sure not.
I can't imagine doing signaling and having to build a spec.
Isn't that exactly how the spec is? AFAIK, a baseline cable has no resistor, the resistors are on the devices on either end. Only "electronic marked" cables have a resistor, and that's where the RPi4 fails: they shorted together the pin which has the configuration wire to the other end (where the device on the other end has one of its pair of resistors) with the pin which on a baseline cable has nothing at all, but which on a more advanced cable has a resistor connected to ground. So when there's no resistor at all (baseline cable) it works; when there's a resistor, the current flows through a wrong path and the voltage ends up in the range for a different kind of device.
USB type C is designed to remain passive until it knows if something is connected, and what it is. For most cable types, orientation must also be detected.
This means that there must be something in the cable/plug. This could of course have been a short, but to do that, those pins would have to be dedicated to detecting dumb cables.
Having no pins to waste, a resistor is used instead, which allows not only allows for multiple values for detection, but leaves the pins usable for transmission while detect resistors are in place (Power Delivery, Alternate Modes).
And there is absolutely no issue in that resistor. Everyone found the table, but either failed to read the 3 values, or decided "Hey, more amps is better!", ignoring whether or not the type A end would actually be able to supply it.
For instance, a USB-C analog headphone adaptor is just some resistors and the connectors themselves, and a USB A-C cable just requires a single extra resistor so the USB C device knows there is a USB A plug on the other end and not to draw too much current. Unfortunately, dodgy manufacturers got even that wrong, see https://www.extremetech.com/computing/217556-google-engineer...
The reason is the most common type of error: USB type A to type C cables using a wrong termination resistor value, signalling far too high current. We're talking about a table of currents to resistors with 3 rows: Default USB current (56K), 1.5A (22K) and 3.0A (10K).
Now, if the mistake had been in the parts that deal with orientation detection, PD protocol, alternate modes, or just dealing with the high speed signals pumping up to 40Gb/s through these cables, then we could agree that it might be complicated.
But if you can't pick a resistor from 3 values, then I don't know how one would write a spec that would be readable to you.
EDIT: s/that\ the\ evidence/that\ the\ spec/
Blame OP, not Nintendo.
AIUI, that's actually what's going wrong here. It only works if the charger+cable combo are both dumb enough. If there's enough fully-featured components to try to negotiate properly, the pi can't negotiate and it fails.
Using usb-c for power should have been a win. But they didn't - they just used a usb-c socket for power. There's a difference.
I guess the point I'm trying to make is, specs are great, but the reality is that there are infinitely many types of cable and the only thing which definitively defines the capabilities is physics.
The nice part of DC is you get to use the entire cross section of the wire. So 2A at 5V isn't gonna start too many fires even on thin wire.
Now hopefully we don't see too many folks start using USB-PD 3 with crappy but compliant cables, as my comfort with DC drops as we go up into 20V 5A territory.
If a USB device gets more current than it's supposed to get, it difficult not to blame the upstream power port for providing so much under the conditions of a short or the downstream port for not being designed correctly. Furthermore, when people see USB cables with "only 2 strands of wire" these are power cables where the data pins are shorted with a resistor, which locks a USB port to a more modest 500mA. That's definitely fine.
I refers to the 5/20V fear only in terms of how safe I feel about handling such voltages.