The USB-C standard has been long touted as a “one port to rule ‘em all” solution. Sure, it’s universal in the sense of the shape of the port. But the capabilities of a USB-C port and cable can vary widely.
Last month, I wrote about why it’s so hard to differentiate one USB-C cable from another. Experts I talked to also noted that there are very few visual markers that tell you what a USB-C cable can do — charging, data transfer, audio, video, or all of them?
We can certainly do better. And software can play a part too. Thankfully, Google’s showing the way forward with a neat new trick.
A new ChromeOS feature
Last week, Google announced a new feature in ChromeOS 102 that’ll help you identify non-compatible USB-C cables.
Here’s how it works:
If you’re using a Chromebook, you’ll now get a pop-up if you plug in a USB-C cable that’s not compatible with monitors, or has a slower data transfer rate than your device.
For instance, if your Chromebook supports USB4, and if you’re using a cable that doesn’t support the standard for quick data transfers, the device’s OS will notify you about it.
The feature is available for Chromebooks with 11th- or 12th-generation Intel Core CPUs with USB4 or Thunderbolt capability, with wider device compatibility coming soon.
The current set of warnings include, “Cable may not support display”, “Cable doesn’t support UBS4/Thunderbolt,” and “Your device supports a higher data rate than your cable.”
All USB-C cables, even those without logos, identify themselves to the computer precisely (using USB PD), and my team reads that info now, and we eliminate a silent failure when the user uses a USB 2.0-only cable with a DP Dock or Monitor.
— Benson Leung (@Laughing_Man) May 27, 2022
This addresses the problem of silent failures. There are times when you plug in a USB-C cable and your device doesn’t work the way it’s supposed to. However, there’s no way to know if the USB cable is the culprit. Chrome OS’s new feature tells us a bit about what could be wrong.
Lack of system level information
We reached out to Google, Microsoft, and Apple to understand if they’re working on similar features for Android, Windows, Mac, and iOS.
Microsoft directed me to a page that helps you troubleshoot USB-C cable problems, but the notification on Windows 10 and Windows 11 is generic, and tells you that there’s “something” wrong with the USB cable.
Apple and Google didn’t respond to my queries at the time of writing.
USB-C Power Delivery specifications suggest that the system can get information such as the hardware version of the cable, USB version supported by the cable, maximum voltage and currency capacity, and maximum data transfer speed.
The Linux kernel also has provision for USB-C class APIs to identify different functionality of compatible devices and cables.
These fields can help the operating system display information about a cable’s performance and compatibility with other devices. But there are hardly any such features available at the moment.
Benson Leung, a Google engineer, who has worked on the Chrome OS feature mentioned above, noted in a thread last month that there’s a gap in OS-level messaging about USB-C cables.
There is a clear education problem, but you should be asking yourself, “Why doesn’t my OS tell me what the cable or device I’ve plugged in is, and tell me about any problems?” Right now, there are big gaps in all OSes around USB-C messaging to the user.
— Benson Leung (@Laughing_Man) April 9, 2022
While USB-IF, the organization maintaining the USB standard, has tried to make cables easily identifiable with logos, many manufacturers don’t display any kind of indicators on packaging or devices.
So it’s hard to know if your spare USB-C cable will support certain data speeds or displays. If OSes could show us information about these cables through pop-ups or apps, it would be easier for us to select cables with certain specifications in a shop or online. This functionality can’t come soon enough.