github darrylmorley/whatcable v0.8.0
v0.8.0: Thunderbolt fabric

2 hours ago

Thunderbolt fabric

What's new

  • Thunderbolt fabric. WhatCable now reads IOThunderboltSwitch and reports what each Thunderbolt link is actually negotiated at, on top of what the cable's e-marker claims it could do. On a connected TB / USB4 port you'll see new bullets like:

    • "Linked at up to 20 Gb/s × 2" (per-lane Gb/s × lane count, matching what About This Mac → System Information shows)
    • "Connected to ASUS-Display PA32QCV" for a single hop, or "Connected via 2 hops: ASUS-Display PA32QCV → CalDigit, Inc. TS3 Plus" for a daisy-chain
    • "Last leg drops from up to 20 Gb/s × 2 to up to 10 Gb/s × 1" when the chain steps down to a slower device

    Behind the existing Show technical details toggle, an advanced section now renders the host root and every downstream switch as a small tree, with the active link label per hop.

    The JSON output gains a top-level thunderboltSwitches array (always present, even when empty) and a per-port thunderboltSwitchUID reference for joining the two.

  • TB5 stays hedged for now. No public IOKit dump exists yet for an Apple Silicon TB5 host with a TB5 partner attached, so we don't promise a "TB5" or "40 Gb/s" label until we've seen one. Until then a TB5 link renders as "Unknown generation (raw speed code 0x2, inferred TB5)". If you have TB5 hardware and a moment to spare, see issue #52 — the ask is one Terminal command and a paste-back.

Thanks

The encoding was anchored against three contributor paste-backs on issue #52:

  • @stevetrease — M3 MacBook Air + Samsung C34J79x via TB3
  • @joeshaw — M2 MacBook Pro + ASUS PA32QCV (USB4) + CalDigit TS3 Plus daisy-chain

Without those samples we'd have shipped a much more hedged feature, or none at all. Thank you both.

Don't miss a new whatcable release

NewReleases is sending notifications on new releases.