Arrêtez de deviner : découvrez enfin ce que vos câbles USB-C ont dans le ventre

Tous les câbles USB-C se ressemblent, mais leurs capacités varient énormément. WhatCable est un utilitaire macOS qui décode les données « e-marker » pour vous indiquer précisément ce que votre câble prend en charge.

Si vous avez un tiroir rempli de câbles USB-C, vous connaissez la frustration : ils se ressemblent tous, mais l'un peut être une bête de course capable de délivrer 240 W, un autre un monstre Thunderbolt à 40 Gbps, et un troisième un câble bon marché « charge uniquement » à 480 Mbps fourni avec une paire d'écouteurs.

Pendant des années, la seule façon de faire la différence était de les tester avec du matériel coûteux ou de procéder par tâtonnements. WhatCable change la donne en extrayant les données cachées « e-marker » directement depuis l'IOKit de votre Mac, pour les présenter dans une application de barre de menus claire et lisible.

Pourquoi est-ce important pour les développeurs ?

En tant que développeurs, nous manipulons souvent des périphériques à large bande passante, des SSD externes et des stations de travail gourmandes en énergie. Lorsqu'une vitesse de transfert est bridée ou qu'un ordinateur portable ne se charge pas à pleine puissance, le câble est généralement le premier suspect, mais il est notoirement difficile à vérifier.

WhatCable résout ce problème en lisant les réponses USB Power Delivery (PD) Discover Identity. Il ne se contente pas de deviner ; il interroge la puce située à l'intérieur du connecteur du câble pour rapporter :

  • Vitesse de données : de 480 Mbps (USB 2.0) jusqu'à 80 Gbps.
  • Puissance nominale : capacités de 60 W, 100 W ou 240 W.
  • Prise en charge des protocoles : Thunderbolt 3/4/5, USB4 ou DisplayPort.

Au-delà de la barre de menus : l'interface en ligne de commande (CLI)

Bien que l'application de barre de menus soit parfaite pour un coup d'œil rapide, le projet inclut également un outil CLI robuste. C'est inestimable pour les scripts ou les diagnostics rapides dans le terminal. Si vous l'installez via Homebrew (brew install --cask whatcable), vous obtenez automatiquement la commande whatcable.

L'exécution de whatcable dans votre terminal fournit un instantané immédiat de vos ports :

$ whatcable

Port USB-C 1
✓ Charge optimale à 96 W
Câble : 5 A, 100 W, USB4 40 Gbps
Chargeur : PDOs 5 V / 9 V / 15 V / 20 V

Port USB-C 2
! Le câble limite la vitesse de charge
Câble : 3 A, 60 W, USB 2.0
Appareil : SSD externe, USB 10 Gbps

Vous pouvez même utiliser --json pour rediriger la sortie vers jq pour une surveillance ou une journalisation automatisée, ou utiliser --watch pour voir les mises à jour en temps réel lorsque vous branchez ou débranchez des appareils.

Comment cela fonctionne sous le capot

WhatCable est une démonstration magistrale de l'utilisation des API natives de macOS sans recourir à des hacks privés. Il interagit avec quatre familles de services IOKit spécifiques :

  1. AppleHPMInterface / AppleTCController : Surveille l'état, la connexion et l'orientation de chaque port.
  2. IOPortFeaturePowerSource : Extrait la liste complète des objets de distribution d'énergie (PDO) de votre chargeur.
  3. IOPortTransportComponent : Décode les VDO « PD Discover Identity » de l'e-marker du câble.
  4. Sous-arborescence du contrôleur XHCI : Mappe les périphériques USB connectés à leurs ports physiques.

Parce qu'il repose sur ces interfaces standard, il est léger, sécurisé et ne nécessite pas d'extensions de noyau invasives ou de démons auxiliaires.

Fonctionnalités Pro et santé du matériel

Bien que l'outil principal soit gratuit et open-source, le projet propose une version « Pro » qui ajoute des diagnostics approfondis. Cela inclut :

  • Mesure de puissance en direct : Graphiques en temps réel de l'entrée d'alimentation.
  • Diagnostics de négociation : Une vue comparative de ce que votre Mac, votre câble et votre appareil prennent en charge par rapport à ce qui a été réellement négocié.
  • Estimation de la résistance : Un moyen astucieux d'identifier les câbles de mauvaise qualité ou endommagés qui pourraient provoquer des chutes de tension.

Pour commencer

Si vous utilisez Apple Silicon sous macOS 14 ou une version ultérieure, vous pouvez récupérer la dernière version sur le dépôt GitHub.

Conseil d'expert : Si vous avez un câble que vous soupçonnez d'être mal étiqueté ou contrefait, utilisez la commande whatcable --report. Elle génère un ticket GitHub pré-rempli avec l'empreinte digitale du câble, aidant la communauté à construire une meilleure base de données des capacités des câbles. En contribuant avec vos données, vous aidez à rendre l'outil plus précis pour tout le monde.

Source

darrylmorley/whatcable : application de barre de menus macOS qui vous indique, en langage clair, ce que chaque câble USB-C branché sur votre Mac peut réellement faire