This only seems to be counting USB-C to USB-C USB 3 cables
The actual situation is much worse when you add in passive and active C-to-C Thunderbolt, MHL, DP, and HDMI cables, some but not all combinations of which may or may not optionally support some but not all combinations of other signals as well — eg) a passive TB3 C-to-C cable will support DP and USB3 (but not MHL or HDMI), but an active TB3 C-to-C cable will be guaranteed to support only TB3, but may optionally support DP.
Visually making a complex matrix of incompatible things look identical has resulted in an absolutely hopeless situation for consumers, who trained by decades of “connector shape == bus” think that USB-C is a monolithic bus that supports all of these different use cases and then don’t understand why they can’t “just”, say, plug their USB-C Nintendo Switch (wired for USB 3.0 w/ a DP alt. mode signal) into a USB-C eGPU (wired for TB3) using whatever “USB-C cable” they have lying around, which could potentially support none of the incompatible protocols either port can handle anyway.
It's a bloody goddamned nightmare. For example, a brief review of my devices:
>Phone A. Type-C port limited to USB 2 data speeds but supports HDMI out via DisplayLink.
>Phone B. Type-C port that supports USB 3.1 speeds but doesn't do video out.
>Tablet A. Type-C port that supports USB 3 speeds but only charges through a MicroUSB port.
>Tablet B. Type-C port that supports USB 3 speeds and charging, but only charges at 0.8 amps through the type-C port and relies on a pogo-pin dock for actual 15-watt charging.
That's not even mentioning all the devices that advertise one thing and then break the standard in a hundred different ways like the Switch.
I don't see your point. Devices are free to support or not support whatever capabilities they want. Having a specific port is no guarantee that the device will use this or that capability offered over that port; mostly it's a guarantee it'll use at least one capability offered by that port.
The problem with USB-C is that many of the cables don't do everything. Nobody else is complaining that the devices don't do everything. Devices have never done everything possible under the communications standards they support.
Would you expect a monitor that supports HDMI2.0, to be a 4K monitor, just because HDMI2.0 supports 4K monitors? I would think not.
> Nobody else is complaining that the devices don't do everything.
Tons of regular consumers think that USB-C is a protocol and frequently complain that things they think should work together don’t, because they’re actually radically different ports electrically that happen to be shaped the same.
Gaming forums are rife with elaborate conspiracy theories behind why Nintendo won’t “just” release an eGPU Dock for the Switch, which it “obviously” “must” support because it’s USB-C and eGPUs have “supported” USB-C for years.
And now, Nintendo has announced a Switch Lite with no TV out (presumably they removed the DisplayPort crossbar IC that does alternate mode muxing with the USB 3.0 signal, to reduce manufacturing costs). But Joe Average Consumer is up in arms, this “must be them sabotaging it in software”, because “video out is a required part of the USB-C standard, this wouldn’t even save them any money, USB-C always physically supports video out”.
The average consumer in no way understands that USB-C is just a connector shape that a bunch of different incompatible things use. They think that, like almost all previous ports, the shape indicates a common protocol that is shared by things that have that shape. And they are absolutely complaining about a lack of what they perceive should be compatibility.
If a device has an HDMI port I know I can use that to connect a display. I don't know details like the supported resolutions, but at least I know that's a supported use case.
If I notice that a device has a USB-C port all I really learned is that it has a USB-C port. Who knows what it does.
But that's most port standards that have ever existed.
What can a device do with a parallel port? A serial port? A SCSI port? A Firewire port? Who knows? It's up to the device. It can certainly send signals over that port, of some kind. But what kind of signals? Up to the device. The host can hopefully probe a device-class out of the client and stand up an appropriate driver to talk to it.
A CD player has a 3.5mm audio jack. Pop quiz: does it support SPDIF? In fact, is it line-level or phono-level output? (An important question to avoid blowing out your equipment!) Answer, in both cases: who knows?
You find a random CAT-6 drop in the wall. Does it contain Ethernet? Does it contain Power-over-Ethernet? Does it contain both? No way to know without asking someone or plugging it in.
Or, for a slightly more interesting example of a "port": what can a random peripheral board do with a motherboard's PCI-e (or PCI, or ISA, or any historical equivalent) port? Well, whatever it likes. Does anyone expect every PCI card to be simultaneously a network card, graphics card, sound card, RAID card, etc., just because those are all things PCI can carry? Of course not. PCI-e is a single port, and a single protocol (sort of), but that doesn't mean it's a single set of exposed capabilities.
There's a difference. In most of those cases, you can expect to pull out any fitting cable for that port and the device will do what it's meant to do. There was a little confusion with 3.5mm jack, but the plugs were trivially inspectable (you could count how many connections they had).
With USB-C, whether or not a device will do all, some, or any at all of its functions, depends not just on the device, but on what you're connecting it to and which one of the countless types of cables you happen to have, all of which look identical to someone who's not an EE with appropriate equipment.
Makes me think, maybe I should start selling USB-C cable testers, because if old USB taught me anything, is that you can't trust cable manufacturers to not lie, even if the cable standard is as simple as it gets.
I feel like there's some confusion over peripheral support, and host support. What can I do with a serial port? Everything. I can talk to every device that ever used a serial connection. Sure, I might need to write a driver, but that's really a separate issue. There's absolutely no problem with "your serial port does not support <gibberish> so you can't use this particular mouse/printer/random industrial equipment".
With your PCIe example, again - I don't expect every card to do everything. But I do expect every card to work on my computer's PCIe bus.
I think one of the things that makes USB-C particularly problematic here is that "plug it in and find out" can be harmful to devices since devices can draw 100W of power through the port.
> since devices can draw 100W of power through the port
Devices can only draw 100W of power, which is 5A at 20V, after negotiation; before negotiation (or if negotiation fails), only 5V is available, like in the older USB connector types.
I'd be complaining like fuck if I had a mobile device with a USB-C port that can't be used for charging. That's the most ridiculous thing I've heard all day.
> Devices have never done everything possible under the communications standards they support.
Yes they do - that's the point of a communications standard. Any device with a USB 3.0 port will work with any USB peripheral ever, given suitable drivers. Your HDMI example makes no sense because it's backwards; of course I don't expect an HDMI2.0 monitor to be 4K, any more than I expect a flash drive to act as a keyboard - but I absolutely expect a port that supports flash drives to support keyboards, and I expect a computer with an HDMI2.0 port to support 4K monitors.
The departure with USB-C is that it isn't a communications standard. Unlike any previous USB port, having the port is not a guarantee that it will work with any peripheral with that plug. The situation with the cables merely reflects this fundamental usability flaw - even if all cables did everything, assessing compatibility would still be confusing.
Okay so you've a bunch of different devices that have different capabilities - can you also mention the different cables you had to get (I'm just curious).
In my case I have a switch, 2 macbook pros (2018, 2019) and an iPad pro (11.5") and I've not had much of a hard time finding cables, at least for power.
The only cable issue I've run into is that there are cheap MicroUSB to type-C adapters that are sold without a necessary 56Kohm resistor, which limits its functionality. It won't charge at high speed and it also prevents type-C devices from using OTG mode to talk to accessories like flash drives, mice, and cameras. There are also a few quirky combinations, like the fact a OnePlus Dash charger will absolutely refuse to provide power to a Switch while most phone chargers will power the handheld portion just fine if not the dock. A little too well in fact, as I had a RAVPower "40W 3A" car charger melt while using it to power a running Switch in the car.
The Apple Thunderbolt 3 to Thunderbolt 2 adaptor supports nothing except Target Disk Mode.
I tried using it to connect a USB-C SSD to my MacBook Pro 2014, using a Thundebolt 2 M-M wire, and the adaptor plugged into the SSD enclosure. It didn't work, though thankfully it didn't fry anything either.
The Thunderbolt adaptor also doesn't work with MiniDP-VGA or MiniDP-HDMI adaptors. So I would need to buy a whole new set of video adaptors if I upgrade my laptop. Needless to say, I'm not in a hurry to do so.
I like adaptors, and I have a large collection in my bag already for video out/in, phone charging, FireWire/Thunderbolt disk mode, and more. But I haven't even started collecting USB-C adaptors because it would only be for friends ("Sorry for the technical difficulties with the projector...") and I don't know which ones will work.
> The Apple Thunderbolt 3 to Thunderbolt 2 adaptor supports nothing except Target Disk Mode.
This isn’t correct. I use it daily to connect a MacBook Pro with Thunderbolt 2 ports to a RAID enclosure/dock with Thunderbolt 3 ports via a TB2 cable terminated with this adapter. An external monitor is attached to the enclosure, as well as several USB devices. The display port alternate mode signal and USB hub functionality all works simultaneously with the RAID.
Of course, half the problem with USB-C is that the failures are incredibly opaque, so it’s hard to say why the adapter failed in your case. Maybe you plugged it into a USB 3 USB-C port instead of a TB3 USB-C port? My enclosure has separate USB-C ports for each protocol, and I need to be careful to select the right one.
The actual situation is much worse when you add in passive and active C-to-C Thunderbolt, MHL, DP, and HDMI cables, some but not all combinations of which may or may not optionally support some but not all combinations of other signals as well — eg) a passive TB3 C-to-C cable will support DP and USB3 (but not MHL or HDMI), but an active TB3 C-to-C cable will be guaranteed to support only TB3, but may optionally support DP.
Visually making a complex matrix of incompatible things look identical has resulted in an absolutely hopeless situation for consumers, who trained by decades of “connector shape == bus” think that USB-C is a monolithic bus that supports all of these different use cases and then don’t understand why they can’t “just”, say, plug their USB-C Nintendo Switch (wired for USB 3.0 w/ a DP alt. mode signal) into a USB-C eGPU (wired for TB3) using whatever “USB-C cable” they have lying around, which could potentially support none of the incompatible protocols either port can handle anyway.