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

@mwichary sounds like a vibe coding opportunity! Tell it to generate a Figma document from that input…
@Drwave I don’t know if an app can access all the data necessary…
@mwichary Just do "File->Save" in the System Information app that is showing that.
It's just a plist...
USB Connection Information App - App Store

Download USB Connection Information by Daniel Gauthier on the App Store. See screenshots, ratings and reviews, user tips, and more apps like USB Connection…

App Store
@atomicbird @Drwave From looking at the screenshots, not sure if it tells you maximum supported speed? Just the current one.
@atomicbird @Drwave Oh wait, maybe I should just buy it! It shows “max supported speed” as an option in the last screenshot.

@atomicbird @Drwave Yeah, I’m afraid it doesn’t show when the cable is limiting the throughput. The maximum supported speed is just for the whole thing.

Also, it shows everything in a flat list, not hierarchically.

But good to know this exists!

@mwichary @atomicbird @Drwave I’ve encountered so many “USB-C” issues where the cable turned out to be the problem that I’ve bought these two devices to test cables:

BitTradeOne USB cable checker: https://bit-trade-one.co.jp/en/adusbcim/

ChargerLAB POWER-Z USB port tester: https://www.power-z.com/products/chargerlab-power-z-km003c

The first device shows me cable CONNECTIVITY—it’s shocking how many “USB-C” cables don’t have all their pins connected. It also shows you how much resistance the cable exhibits, which limits power application.

The second device displays various software queries. The most important is the cable’s E-Marker identifier, which tells you what protocols it supports. The device also lets you snoop on what’s going on in the cable when it is connected.

I went through my bucket of “USB-C” cables and threw out a bunch of them because they failed one test or another which made them booby traps for when I want to use them.

BONUS: the first device also tests adapters e.g. USB-A to C as well.

"USB CABLE CHECKER 2" reveals the performance of your USB cable | Bit Trade One

A verification device that reveals the performance of USB cables!

@drahardja @atomicbird @Drwave Do you know whether a Mac itself should have the right… I don’t know, circuitry/capabilities to do those things?
@mwichary @atomicbird @Drwave I don’t *think* the cable’s e-marker is available via API, but I’m not certain. Looking at the output of `ioreg`, I see no relevant difference with a cable connected vs disconnected.
@mwichary @drahardja @atomicbird @Drwave I believe @sven was working on such a tool? But using low level access via booting Asahi/m1n1. I don’t believe the capabilities are available once booted into macOS.
@twix @mwichary @drahardja @atomicbird @Drwave nope, not working on anything like that. you could possibly detect e-markers and check connectivity of some pins (SBU1/2, D+/- but only in one orientation, SSTX/RX) I think. if you get code execution on the type-c port controller you could maybe do some more tests. would be a fun project but nothing I'm personally going to spend time on.
@drahardja @CosmicTraveler @mwichary @atomicbird @Drwave It would be great if someone posted which brands test well.
@FeloniousPunk @CosmicTraveler @mwichary @atomicbird @Drwave “Well” for what purpose? There are thin cables that carry little data but is compact, thick cables that charge well but don’t do data, long cables that do data well but is power limited, and huge thick cables that do it all.
@drahardja @CosmicTraveler @mwichary @atomicbird @Drwave Touché. Maybe some classifications are in order.
@FeloniousPunk @CosmicTraveler @mwichary @atomicbird @Drwave Yeah. And the average consumer has no chance to figure any of this out.

@mwichary @atomicbird @Drwave Oh and I should mention: just because a cable *can* perform at some reported level, it doesn’t mean two connected devices *will* perform at that level. The protocol negotiation between the two devices may end up at some other equilibrium.

Case in point: I connected my phone to my computer with a cable that reports USB 3.2 Gen 2 speeds (10 Gbps), but the connection was established at USB 2.0 speeds (480 Mbps). I then switched to a cable that reports USB4/TB4 speeds (40 Gbps) and the connection was made at 10 Gbps.

USB-C cables and connections continue to be a hot mess that no mortal consumer can understand.

@mwichary
Missing (or inaccessible) information is not a problem at all for that magical vibe slob. It will always give you the most plausible factoids.

@Drwave