1 pontos por GN⁺ 2 시간 전 | 1 comentários | Compartilhar no WhatsApp
  • WhatCable é um app da barra de menu do 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
  • Embora os cabos USB-C pareçam iguais por fora, há uma grande diferença entre um cabo apenas para carregamento USB 2.0 e um 240W / 40Gbps Thunderbolt 4; o WhatCable mostra, em um popover da barra de menu, as informações que o macOS expõe via IOKit
  • É possível ver de relance, por porta, estados como Thunderbolt / USB4, dispositivo USB, apenas carregamento, cabo USB/carregamento lento e sem conexão
  • O diagnóstico de carregamento exibe banners indicando gargalos como cabo limitando a velocidade de carga, Mac solicitando menos energia ou incompatibilidade entre carregador e cabo
  • Ele 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, máximo de 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 armazenamentos, hubs e periféricos sob a porta física real junto com a velocidade negociada
  • Mostra os modos de transmissão ativos como USB 2, USB 3, Thunderbolt e DisplayPort, e também permite verificar as propriedades do IOKit brutas para engenheiros por meio de ⌥-clique ou de uma opção nas configurações
  • Nas configurações, é possível ocultar portas vazias, iniciar na sessão do usuário, executar como um app normal no Dock em vez de usar um ícone na barra de menu e ativar notificações de conexão/desconexão de cabos
  • A instalação pode ser feita baixando WhatCable.zip na Releases page e movendo para /Applications, ou com brew tap darrylmorley/whatcable seguido de brew install --cask whatcable
  • O app é distribuído 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 whatcable usa o mesmo mecanismo de diagnóstico e oferece suporte a resumo de portas, --json, streaming de mudanças de conexão com --watch e --raw, que inclui propriedades brutas do IOKit
  • Internamente, ele lê AppleHPMInterfaceType10/11/12, AppleTCControllerType10/11, IOPortFeaturePowerSource, IOPortTransportComponentCCUSBPDSOP e a subárvore do controlador XHCI, funcionando sem concessão de permissões, APIs privadas ou daemon auxiliar
  • Como limitação, informações do cabo podem não aparecer em cabos abaixo de 60W sem e-marker, e não há como o software verificar o interior do cabo se um e-marker falsificado ou gravado incorretamente anunciar desempenho falso
  • O decodificador PD é voltado para PD 3.0 / 3.1; por causa das restrições do sandbox do iOS e do App Sandbox, não há suporte a distribuição para iOS e App Store, e a licença é MIT

1 comentários

 
GN⁺ 2 시간 전
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

    • Quero economizar 10 minutos e 2 dólares; isso está em algum lugar no GitHub?
    • Fiz exatamente a mesma coisa com o dongle Bluetooth Sennheiser BTD-700. Achei que alguém já tinha criado uma pequena biblioteca em C para controlar o dongle e, com base nela, o Claude fez um widget decente para KDE que controla os fones
  • 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

    • Recebi ótimos bug reports e pedidos de funcionalidade no HN e, graças ao Claude, consegui lançar atualizações rapidamente. Ter um bom pair programmer torna 16 releases em 7 horas muito mais fácil
    • Realmente impressionante. OP/sleepingNomad, você poderia colocar isso também no MacPorts?
  • 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

    • Concordo. Principalmente algo assim, que parece ser usado só algumas vezes; imagino que a maioria das pessoas não tenha tantos cabos nem queira verificar isso regularmente
      O problema é que, numa tela de 14 polegadas, a área à direita do notch já está quase lotada, e nem tenho tanta coisa assim lá
    • Para mim tudo bem, mas entendo que para outras pessoas talvez não. Então adicionei um toggle "Show in menu bar" nas configurações
      Se desativar, o WhatCable roda como um app normal no Dock, com janela comum
    • Acesso com um clique é mais rápido do que digitar o nome do app no Finder. O Dock normalmente já está cheio e serve para outros tipos de app, enquanto o padrão de UI permite deixar a saída sempre visível
    • Pois é, minha barra de menus também já está lotada
  • 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