I would love an app that looks something like this.

I think all the data is here already,† but presented in an incomprehensible fashion.

† (Except whether a cable might be limiting the throughput, which I think would be very useful to know.)

I feel like if USB-C is such a mess where cables all look the same, having something like this to debug would help a lot.

I didn’t include power delivery, btw, which would also be helpful to know – I just don’t understand it very much.

Other nice things I could imagine:
- obviously, reacting in real time to connecting/disconnecting
- highlighting device(s) connected recently if you’re debugging
- showing activity on the cable if it’s happening
- highlighting special ports if they’re not equal
- eject buttons for devices that need it
btw thankful that even in making this mock I finally wrapped my head around this situation, as I had to make this table. I had no idea all these speeds were an option:
who wore it better

@mwichary I was about to note that we have 80gbps already, but you've discovered that.

I have an app that does something like this in Linux. Essentially a wrapper for lsusb. I forgot the name off hand, but I think it is missing a key element of your design: the throughput measurement piece.

I remember trying to look for something like this, and I ran into the problem where the drivers know the theoretical throughput, but not the actual throughout. If I'm reading screenshots correctly, you're noticing the same thing. The basic system queries don't have exactly the data we're looking for.

But I think this brings up a more subtle but complicated challenge with the original UI. One of your key requests is that you would like to identify on underperforming cable. But I don't know how the operating system can correctly differentiate between a bad cable or a bad device?... /1

@mwichary ... In the same vein, there are a few modes to each of the line weights in the diagram.

A. The theoretical maximum as displayed by the drivers.
B. The practical maximum as directly limited by the daisy chaining
C. The available maximum as implied by the active throughput of each of the devices
D. A verified maximum achieved via automatic testing

And I think this is where a UI like this kind of gets complicated.

If I plug in a 20gbps hub and then a bunch of peripherals, my actual throughput is going to be limited not just by the devices I've plugged in, but by the bandwidth they're actually using. If you plug in three monitors, a high def microphone, an external hard drive and a 2.5 gbps network cable, you could be totally fine or completely hosed based on how those things are configured and operating.

And I'm not actually sure how to do this, but I would definitely pay to have such a utility available. Answering such questions would be extremely valuable. //

@mwichary

addendum: I have seen some hobbyists post basic boards for USB cable testers and there are some gadgets on Amazon, but they're not very user friendly.

We're definitely in a reality where we need to have $20 cable testers that you use at home. With a useful display explaining which USB features this cable will support. Just like we have $0.50 battery testers.

I don't think it's ever going to be $0.50 for a USB one because it's complicated. But we can't be relying on $10k devices for this.

@gatesvp
Yes on the cable testers.
I was even thinking how one could get an “eye” signal test, at home, but shelved it for lack of resources and the faint possibility of doing signal analisis with sufficient accuracy.

@mwichary

@dzwiedziu

Thinking about this deeper and it kind of feels like a good tester here is going to be equivalent to at least something like a higher end USB hub. Like far more than even $20.

How do you test a 240W cable if you don't have at least a 240W power supply? Testing 80gbps throughout requires a chip that can actually process that much data, currently not super cheap. Looking at the details from the LTT testing on HDMI and I see the same things brought up.

LTT sold out their entire first batch of high quality USB cables in a matter of days. So there's clearly market here for transparency and quality. But it looks like we're going to have to wait a little bit longer for consumer level testability.

@gatesvp
The 240W example is a bit simpler, that if you have devices that can supply and can use 240W you can quickly see if it works, and many devices (±an extra app) will tell you how good it works based on the already-present electronics.

With 80Gbps it's harder, but that where signal testing/eye diagrams would help, without need for data.
LTT also featured a machine for that. “Just” ~15kUSD IIRC.
(Or a good oscilloscope and patience.)

@gatesvp Yeah… I know what you mean. But I think as long as we know what speed the device asked for and what speed it got negotiated down to, we could try to visualize it all.

It’s true that a device can ask for more than it needs, too.

Maybe some of this becomes a global database of devices? And in case vendor/ids lie or unreliable, you can choose the device from the dropdown.

@mwichary also cables sometimes lie :/

@mwichary What I find really impressive is that I'm using a really old keyboard at work, I don't know the model. I can send you a picture of you're curious, but it's old enough to have a physical wheel for volume control.

I can plug a modern mouse into its USB ports and it works fine, though when I plugged my USB key in, it gave me an insufficient voltage error, So I suspected USB 1.

But I can still use this with my current laptop, and everything works normally!

@mwichary I ran into this a month ago. The speeds on 3.0, 3.1 and 3.2 are not correct because 3.1 technically "doesn't exist anymore" and 3.2 has four modes providing 5Gbps, 10Gbps in two ways and 20Gbps. And 20Gbps is not widely supported either.

The USB Forum royally fucked up the naming for USB 3.

@static Yeah, I am not sure quite how one would explain the names and the logos etc. But I think at least the speed number should be useful – and whether you could go higher than the current one.

@mwichary I don't think you can diagram it simply.

I found this all out when trying to run two HDMI capture dongles (at 1080p!) on the one port. I can't do it, not even with a hub that claims to be USB 3.2.

@static Yeah, I was wondering about combined throughput etc.
@static But at least, you know: Show me the numbers, show me what’s connected and how. That would already be a lot more useful for debugging those situations, I think.

@mwichary Oh yes! What and where is definitely useful!

Would be good to have a Windows version, too. A lot of Windows PCs have internal hubs that people don't know are there.

@static @mwichary USB 5, 10, 20, 40, 80 would be perfectly clear.

At this point I must assume the confusion is intentional.

@voltagex @mwichary I like your idea. Reading the explanation on Wikipedia (which is not easy to read, either), it really sounds like people too close to the engineering managed to force through their preferred naming.

@mwichary Yea, the jump from 1 to 2, and then up from there is pretty amazing:

8X, 40X, 10X, 2X, 2X, 2X…

@mwichary I wrote a whole book about this
@glennf @mwichary I love my BLE CaberQU USB-C cable tester, that checks data speed AND charging capability for USB-C cables. (Two more things that do not correlate as much as most people would expect.)
@tphinney @mwichary I bought one. Defective. They sent me a new one. Same. The founder was baffled. I sent it back for QA. They sent me a 3rd and 4th. The one that I think worked failed on data rates on Thunderbolt 4/USB4 cables. It also kept testing cables that worked perfectly well at full speed/voltage as failed. So I don't know what to make of that.

@glennf @mwichary Oh wow. That sucks. I should have known you would have tried it!

I have had mostly good luck with it... but there is one cable that kinda flunked that I just tossed without further ado. Next time I will try it out in use as well, just to see.

@tphinney @mwichary Yes, it may be that I have edge case cables or got a spate of bad devices, but I tried a dozen cables and sometimes got different results by switching ends or rotating plugs. It could be that this is a USB-C problem, not a cyberQU problem, too!
@mwichary you can have a USB-C cable that only does USB 2.0 speeds but also can do 40 GBPs Thunderbolt 3. It is a special case that was not rare. The USB4/Thunderbolt 4 cable type solved the issue.
@mwichary With hubs that are repeaters and not switches, you could also have a situation that one device dictates the speed of other devices (or is this a hypothetical situation that does not occur anymore?)
@doekman It seems like it’s still the case. https://mstdn.ca/@gatesvp/116118773098725654
Gaëtan Perrault (@[email protected])

@[email protected] ... In the same vein, there are a few modes to each of the line weights in the diagram. A. The theoretical maximum as displayed by the drivers. B. The practical maximum as directly limited by the daisy chaining C. The available maximum as implied by the active throughput of each of the devices D. A verified maximum achieved via automatic testing And I think this is where a UI like this kind of gets complicated. If I plug in a 20gbps hub and then a bunch of peripherals, my actual throughput is going to be limited not just by the devices I've plugged in, but by the bandwidth they're actually using. If you plug in three monitors, a high def microphone, an external hard drive and a 2.5 gbps network cable, you could be totally fine or completely hosed based on how those things are configured and operating. And I'm not actually sure how to do this, but I would definitely pay to have such a utility available. Answering such questions would be extremely valuable. //

Mastodon Canada
@mwichary USB1.0 specs/speeds got merged into USB2.0
Technically 1.0 doesn't exist anymore, there were only very few devices that supported it, anything that uses the 1.5 and 12Mbit speed the past ~25 years is a USB2 device.
@timonsku I think “introduced in” is easier to understand than what happened to it since.