WhatCable - แอปเล็กบนแถบเมนูสำหรับตรวจสอบสาย USB-C
(github.com/darrylmorley)- WhatCable เป็นแอปบนแถบเมนูของ macOS ที่แสดงให้เห็นด้วยภาษาง่าย ๆ ว่าสาย USB-C ที่เสียบอยู่กับ Mac ทำอะไรได้จริงบ้าง และทำไมการชาร์จ Mac อาจช้า
- สาย USB-C แม้ภายนอกจะดูเหมือนกัน แต่มีความแตกต่างอย่างมากตั้งแต่สายชาร์จอย่างเดียวแบบ USB 2.0 ไปจนถึง 240W / 40Gbps Thunderbolt 4 และ WhatCable จะแสดงข้อมูลที่ macOS เปิดเผยผ่าน IOKit ในป๊อปโอเวอร์บนแถบเมนู
- สามารถดูสถานะของแต่ละพอร์ตได้อย่างรวดเร็ว เช่น Thunderbolt / USB4, อุปกรณ์ USB, ชาร์จอย่างเดียว, สาย USB/สายชาร์จอย่างเดียวที่ช้า หรือไม่มีการเชื่อมต่อ
- ระบบวินิจฉัยการชาร์จจะแสดงแบนเนอร์บอกคอขวด เช่น สายจำกัดความเร็วการชาร์จอยู่หรือไม่, Mac กำลังขอพลังงานต่ำกว่าที่ควรหรือไม่, และที่ชาร์จกับสายทำงานเข้ากันได้ดีหรือไม่
- อ่านข้อมูลจาก e-marker ของสายแล้วแสดงความเร็วจริง (USB 2.0, 5/10/20/40/80Gbps), ค่ากระแสที่รองรับ (3A/5A, สูงสุด 60W/100W/240W) และผู้ผลิตชิป
- แสดงรายการโปรไฟล์แรงดันไฟ PDO ที่ที่ชาร์จประกาศไว้ (เช่น 5V/9V/12V/15V/20V) และไฮไลต์โปรไฟล์ที่กำลังต่อรองใช้งานอยู่แบบเรียลไทม์
- ตีความชื่อผู้ผลิตและประเภทผลิตภัณฑ์ของอุปกรณ์ที่เชื่อมต่อจากการตอบกลับ PD Discover Identity และแสดงอุปกรณ์เก็บข้อมูล ฮับ และอุปกรณ์ต่อพ่วงไว้ใต้พอร์ตจริงพร้อมความเร็วที่ต่อรองได้
- แสดงโหมดการส่งข้อมูลที่กำลังใช้งานอยู่ เช่น USB 2, USB 3, Thunderbolt, DisplayPort และสามารถดู คุณสมบัติ IOKit พื้นฐานสำหรับวิศวกรได้ด้วยการคลิกพร้อมปุ่ม ⌥ หรือสลับในตั้งค่า
- ในการตั้งค่า สามารถซ่อนพอร์ตว่าง, เปิดใช้งานเมื่อเข้าสู่ระบบ, รันเป็นแอป Dock ปกติแทนไอคอนบนแถบเมนู, และเปิดการแจ้งเตือนเมื่อเชื่อมต่อหรือถอดสายได้
- การติดตั้งทำได้โดยดาวน์โหลด
WhatCable.zipจาก Releases page แล้วย้ายไปไว้ที่/Applicationsหรือใช้brew tap darrylmorley/whatcableตามด้วยbrew install --cask whatcable - แอปมีให้ในรูปแบบยูนิเวอร์แซลไบนารีสำหรับ Apple silicon และ Intel พร้อมลายเซ็น Developer ID และผ่านการ notarize ของ Apple แต่ความต้องการใช้งานจริงคือ macOS 14 Sonoma ขึ้นไป และ Apple Silicon
whatcableCLI ใช้เอนจินวินิจฉัยเดียวกัน และรองรับสรุปพอร์ต,--json, การสตรีมการเปลี่ยนแปลงการเชื่อมต่อด้วย--watch, และ--rawที่รวมคุณสมบัติ IOKit พื้นฐาน- ภายในแอปจะอ่าน
AppleHPMInterfaceType10/11/12,AppleTCControllerType10/11,IOPortFeaturePowerSource,IOPortTransportComponentCCUSBPDSOPและซับทรีของคอนโทรลเลอร์ XHCI โดยทำงานได้โดยไม่ต้องมีการให้สิทธิ์, private API หรือ helper daemon - ข้อจำกัดคือ สายที่ต่ำกว่า 60W และไม่มี e-marker อาจไม่แสดงข้อมูลสาย และหาก e-marker ปลอมหรือแฟลชผิดพลาดโฆษณาความสามารถเกินจริง ก็ไม่มีวิธีตรวจสอบภายในสายด้วยซอฟต์แวร์เพียงอย่างเดียว
- ตัวถอดรหัส PD รองรับ PD 3.0 / 3.1 และไม่รองรับ iOS หรือการแจกจ่ายผ่าน App Store เนื่องจากข้อจำกัดของ iOS sandbox และ App Sandbox โดยใช้สัญญาอนุญาต MIT
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เจ๋งมาก ลองทำดูเพราะอยากรู้ว่า GPT-5.5 จะเปลี่ยนอันนี้ให้เป็น KDE Plasma 6 Plasmoid ได้เร็วแค่ไหน ใช้เวลาไปราว 10 นาทีและประมาณ 2 ดอลลาร์ ตอนนี้เลยมีแอป QML ที่แสดงข้อมูลเดียวกันบนแถบงานแล้ว
แค่รู้ว่าวันนี้เราทำอะไรแบบนี้กันได้แล้วก็น่าทึ่งจริง ๆ เลยมาเล่าไว้
น่าทึ่งมากที่ @sleepingNomad ออกรุ่น 16 รีลีส ในช่วง 7 ชั่วโมงที่ผ่านมา พร้อมเอาฟีดแบ็กจาก HN มาปรับใช้แทบจะทันที
ถ้าไม่ชอบแอปบนเมนูบาร์ ก็รันเป็นแอปปกติได้ และถ้าไม่ชอบ GUI ตอนนี้ก็รันจากบรรทัดคำสั่งได้แล้ว
ดูแค่บันทึกการเปลี่ยนแปลงก็พอเห็นได้เลย:
https://github.com/darrylmorley/whatcable/releases?page=2
ทำให้นึกได้ว่า ChromeOS มีฟีเจอร์เหมือนพลังพิเศษสำหรับระบุ USB-C cable อยู่: https://www.reddit.com/r/UsbCHardware/comments/1pyojjd/comme...
ไม่แน่ใจว่าแอป macOS ตัวนี้ใช้วิธีเดียวกันไหม แต่ในลิงก์อธิบายว่าใน e-Marker ของสายมีข้อความ "Discover Identity" ที่ ChromeOS สามารถอ่านและแสดงผลได้
ฮาร์ดแวร์ Windows ทั่วไปอ่านไม่ได้เพราะข้อจำกัดของ BIOS แต่ Chromebook ทำได้ และ Mac ก็น่าจะทำได้เหมือนกัน
ค่อนข้างดีเลย แต่ไม่เข้าใจว่าทำไม แอป Mac หลายตัวถึงต้องพยายามอยู่ประจำบนเมนูบาร์
ปัญหาคือบนหน้าจอ 14 นิ้ว พื้นที่ด้านขวาของรอยบากก็แทบเต็มอยู่แล้ว ทั้งที่ก็ไม่ได้ใส่อะไรไว้เยอะขนาดนั้น
ถ้าปิด WhatCable ก็จะรันเป็นแอปหน้าต่างปกติแบบแอปใน Dock ทั่วไป
อ่าน e-Marker ได้บน อุปกรณ์ที่ไม่ใช่ Apple ด้วยไหม? ถ้าทำได้บน Linux หรือ Windows ก็น่าจะมีประโยชน์มาก
ขอบคุณที่ทำสิ่งนี้ขึ้นมา ผมเป็นผู้พิการทางสายตา การใช้ USB tester ราคา 16 ดอลลาร์ ที่ขายบน Amazon เพื่อจัดระเบียบลิ้นชักเก็บสายจึงไม่ใช่ตัวเลือก
อันนี้ช่วยให้ไม่ต้องไปซื้อ SBC ที่รัน Linux แยกต่างหากมาไว้ทดสอบสาย
บน Linux จะทำแบบนี้ได้ไหมนะ? บางทีอาจทำได้ด้วย wrapper ของ lsusb เพิ่งเจออันนี้ที่เพิ่ม PD และอย่างอื่นเข้าไป: https://github.com/doug-gilbert/lsucpd
ชอบที่นี่เป็น แอป Mac แบบเนทีฟ ขอบคุณที่ทำและแชร์
ผมเคยพยายามส่งโค้ดเพิ่ม การแสดงวัตต์ของกระแสไฟจากอะแดปเตอร์ ใน stats แต่ PR ของผมถูกปิดโดยไม่มีคอมเมนต์ เนื้อหาคล้ายกับ PR นี้:
https://github.com/exelban/stats/pull/3024
นี่เป็นฟีเจอร์ที่อยากได้มานานพอสมควร มี สาย USB-C จำนวนมากที่ไม่รู้ว่าเป็นสายอะไร ถ้าติดฉลากสมรรถนะของแต่ละเส้นได้ก็คงดี และตอนนี้ก็ทำได้แล้ว