38
submitted 3 months ago by gedaliyah@lemmy.world to c/asklemmy@lemmy.world

If you're like me, you have dozens of USB-A and USB-C cables. There are all of various quality, but I have no idea the history of each one. A lot of them came with other products and are total unknown quantity anyway.

Is there a tool to quickly test how good each cable is? Either a software or a hardware tool. Ideally it'd be nice to see something that can measure the power as well. Some charging cables are capable of fast charging, and some are not.

you are viewing a single comment's thread
view the rest of the comments
[-] tal@lemmy.today 16 points 3 months ago* (last edited 3 months ago)

Linux lets you see your USB tree with lsusb -t. That includes negotiated data transfer speeds.

This doesn't, strictly-speaking, give you the cable speed, but it does give you the link speed to another USB device, so if you have a computer with a fast USB controller and a fast USB device (probably a new hub would work well here), such that any limiting factor is the cable, you can see what speed they have negotiated over the cable, which I suppose effectively tells you what speed the cable can support.

A snippet of mine:

/:  Bus 004.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/5p, 20000M/x2
    |__ Port 005: Dev 005, If 0, Class=Hub, Driver=hub/4p, 5000M
        |__ Port 003: Dev 006, If 0, Class=Hub, Driver=hub/4p, 5000M
        |__ Port 004: Dev 007, If 0, Class=Hub, Driver=hub/4p, 5000M
            |__ Port 001: Dev 008, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 005.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/2p, 480M
    |__ Port 002: Dev 002, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 004: Dev 003, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 001: Dev 004, If 0, Class=Human Interface Device, Driver=usbhid, 12M
            |__ Port 001: Dev 004, If 1, Class=Human Interface Device, Driver=usbhid, 12M
            |__ Port 002: Dev 005, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
            |__ Port 003: Dev 006, If 0, Class=Audio, Driver=snd-usb-audio, 12M
            |__ Port 003: Dev 006, If 1, Class=Audio, Driver=snd-usb-audio, 12M
            |__ Port 003: Dev 006, If 2, Class=Human Interface Device, Driver=usbhid, 12M

Those numbers there (20000M, 5000M, 480M, 12M, 1.5M) are the data transfer rates supported to the device.

[-] tal@lemmy.today 1 points 2 months ago* (last edited 2 months ago)

@gedaliyah@lemmy.world The cables do have an "emarker", which does let them indicate identifying information, but it apparently at least as of eight months back, that information wasn't exposed by the Linux kernel:

https://old.reddit.com/r/UsbCHardware/comments/qm34dj/how_to_check_usb_version_of_a_usbc_cable/

Not yet. Some low-level changes need to be made to the Linux kernel and the underlying UCSI interface, so there's not anything you can build at the moment to make it happen.

If you happen to be a skilled linux kernel engineer with experience in USB specifications and more specifically the UCSI specification, and want to help, then contribute on this mailing list: linux-usb@vger.kernel.org

Dunno about other OSes. There's also dedicated diagnostic hardware, but unless you want that, the above approach I gave may be your best bet currently.

this post was submitted on 27 Jul 2024
38 points (95.2% liked)

Ask Lemmy

26826 readers
721 users here now

A Fediverse community for open-ended, thought provoking questions

Please don't post about US Politics. If you need to do this, try !politicaldiscussion@lemmy.world


Rules: (interactive)


1) Be nice and; have funDoxxing, trolling, sealioning, racism, and toxicity are not welcomed in AskLemmy. Remember what your mother said: if you can't say something nice, don't say anything at all. In addition, the site-wide Lemmy.world terms of service also apply here. Please familiarize yourself with them


2) All posts must end with a '?'This is sort of like Jeopardy. Please phrase all post titles in the form of a proper question ending with ?


3) No spamPlease do not flood the community with nonsense. Actual suspected spammers will be banned on site. No astroturfing.


4) NSFW is okay, within reasonJust remember to tag posts with either a content warning or a [NSFW] tag. Overtly sexual posts are not allowed, please direct them to either !asklemmyafterdark@lemmy.world or !asklemmynsfw@lemmynsfw.com. NSFW comments should be restricted to posts tagged [NSFW].


5) This is not a support community.
It is not a place for 'how do I?', type questions. If you have any questions regarding the site itself or would like to report a community, please direct them to Lemmy.world Support or email info@lemmy.world. For other questions check our partnered communities list, or use the search function.


Reminder: The terms of service apply here too.

Partnered Communities:

Tech Support

No Stupid Questions

You Should Know

Reddit

Jokes

Ask Ouija


Logo design credit goes to: tubbadu


founded 1 year ago
MODERATORS