WhatCable - um pequeno app de barra de menus para inspecionar cabos USB-C
(github.com/darrylmorley)- Um app de barra de menus para macOS que mostra em linguagem simples o que um cabo USB-C conectado ao Mac realmente consegue fazer e por que o carregamento do Mac pode estar lento
- Cabos USB-C podem parecer idênticos por fora, mas variam muito, de USB 2.0 só para carregamento até Thunderbolt 4 de 240W / 40Gbps; o WhatCable exibe em um pop-up na barra de menus as informações que o macOS expõe via IOKit
- Dá para ver de relance, por porta, estados como Thunderbolt / USB4, dispositivo USB, apenas carregamento, cabo USB/lento ou só de carregamento, e nenhuma conexão
- O diagnóstico de carregamento mostra em banners gargalos como: se o cabo está limitando a velocidade de carga, se o Mac está solicitando menos energia, ou se carregador e cabo combinam bem
- Lê e mostra, a partir do e-marker do cabo, a velocidade real (USB 2.0, 5/10/20/40/80Gbps), a corrente nominal (3A/5A, até 60W/100W/240W) e o fornecedor do chip
- Lista os perfis de tensão PDO anunciados pelo carregador (5V/9V/12V/15V/20V etc.) e destaca em tempo real o perfil atualmente negociado
- Interpreta o nome do fornecedor e o tipo de produto dos dispositivos conectados a partir da resposta PD Discover Identity, e mostra armazenamento, hubs e periféricos sob a porta física real junto com a velocidade negociada
- Mostra os modos de transferência ativos como USB 2, USB 3, Thunderbolt e DisplayPort, e também permite ver as propriedades base de IOKit para engenheiros via ⌥-clique ou uma opção nas configurações
- Nas configurações, é possível ocultar portas vazias, iniciar no login, rodar como um app normal no Dock em vez de usar ícone na barra de menus, e ativar notificações de conexão/desconexão de cabos
- A instalação pode ser feita baixando
WhatCable.zipna Releases page e movendo para/Applications, ou combrew tap darrylmorley/whatcableseguido debrew install --cask whatcable - O app é oferecido como binário universal para Apple silicon e Intel, com assinatura Developer ID e notarização da Apple, mas o requisito real de funcionamento é macOS 14 Sonoma ou superior e Apple Silicon
- A CLI
whatcableusa o mesmo mecanismo de diagnóstico e oferece resumo das portas,--json, streaming de mudanças de conexão com--watche--rawpara incluir propriedades básicas do IOKit - Internamente, ele lê
AppleHPMInterfaceType10/11/12,AppleTCControllerType10/11,IOPortFeaturePowerSource,IOPortTransportComponentCCUSBPDSOPe a subárvore do controlador XHCI, funcionando sem concessão de permissões, APIs privadas ou daemon auxiliar - Como limitação, em cabos abaixo de 60W sem e-marker as informações do cabo podem não aparecer, e se um e-marker falsificado ou gravado incorretamente anunciar capacidades falsas, não há como o software verificar o interior do cabo
- O decodificador de PD é voltado para PD 3.0 / 3.1, e por causa das restrições do sandbox do iOS e do App Sandbox, não há suporte a iOS nem distribuição pela App Store
- Licença MIT
4 comentários
Na prática, depois de instalar, ficou tão limpo que gostei bastante... mas os cabos que eu usava e achava bons aparecem todos como meia-boca.
Depois de ver isso, fico pensando toda hora que preciso trocar por cabos mais caros.
Pesquisando, vi que o Satechi Thunderbolt 5 https://amzn.to/3QKqf0u e o Satechi USB4 V2 Pro https://amzn.to/3QB9HIp são bem recomendados, então corri e já pedi os dois.
Funciona só com o cabo solto? (sem nada conectado na outra ponta)
Parece que não funciona. Acho que só é reconhecido quando algo está conectado.
Comentários do Hacker News
Muito legal. Quis ver quão rápido o GPT-5.5 conseguiria transformar isso em um Plasmoid do KDE Plasma 6, então testei: levou uns 10 minutos e cerca de 2 dólares, e agora existe um app em QML que mostra a mesma informação na barra de tarefas
Só deixando registrado porque é realmente impressionante que hoje dê para simplesmente fazer esse tipo de coisa
Impressionante como @sleepingNomad lançou 16 releases nas últimas 7 horas, incorporando feedback do HN em tempo real
Se você não gosta de apps na barra de menus, dá para rodar como app normal, e se não gosta de GUI, agora também dá para rodar pela linha de comando
Dá para ver só pelo changelog:
https://github.com/darrylmorley/whatcable/releases?page=2
Isso me lembrou que o ChromeOS tem uma espécie de superpoder para identificar cabos USB-C: https://www.reddit.com/r/UsbCHardware/comments/1pyojjd/comme...
Não sei se esse app para macOS usa o mesmo método, mas o link explica que há uma mensagem "Discover Identity" dentro do e-Marker do cabo que o ChromeOS consegue ler e exibir
O hardware comum de Windows não consegue ler isso por limitações da BIOS, mas Chromebooks conseguem, e Macs provavelmente também
Bem legal, mas não sei por que tantos apps para Mac insistem em ficar residentes na barra de menus
O problema é que, numa tela de 14 polegadas, a área à direita do notch já está quase lotada, e nem tenho tanta coisa assim lá
Se desativar, o WhatCable roda como um app normal no Dock, com janela comum
Dá para ler o e-Marker também em dispositivos não Apple? Se funcionasse em Linux ou Windows, parece que seria realmente útil
Obrigado por criar isso. Sou deficiente visual, então usar aquele testador USB de 16 dólares vendido na Amazon para organizar minha gaveta de cabos não é uma opção
Isso evita que eu precise comprar um SBC separado rodando Linux só para testar cabos
Será que dá para fazer isso no Linux também? Talvez com um wrapper do lsusb. Acabei de encontrar https://github.com/doug-gilbert/lsucpd, que aparentemente adiciona PD e outras informações
Gosto que isso seja um app nativo para Mac. Obrigado por criar e compartilhar
Tentei contribuir com a exibição em watts da corrente do adaptador no stats, mas meu PR foi fechado sem nenhum comentário. É algo parecido com este PR:
https://github.com/exelban/stats/pull/3024
É uma funcionalidade que eu queria há bastante tempo. Tenho muitos cabos USB-C de origem desconhecida e sempre pensei que seria bom poder etiquetar o desempenho de cada um; agora isso ficou possível