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.

  • @[email protected]
    link
    fedilink
    English
    16
    edit-2
    4 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.

    • @[email protected]
      link
      fedilink
      English
      1
      edit-2
      3 months ago

      @[email protected] 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: [email protected]

      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.

  • Admiral Patrick
    link
    fedilink
    English
    10
    edit-2
    4 months ago

    There’s some hardware tools on amazon that will test the power capacity, but I’m not sure about speed. Some check the characteristics of the cable, so it would stand to reason that if those characteristics are within spec, then it should perform as expected.

    Something like this does A and C: https://www.amazon.com/Eversame-Multimeter-Voltmeter-Indicator-DC3-6-30V/dp/B07JYVPLLJ

    Not sure how good / reliable / accurate they are. I’ve seen some homemade projects which aim to do similar, but if you’re like me and not great with a soldering iron, you might need to make due with something from Amazon lol.

    The sad fact is USB-C cables are just a confusing mess of optional features. I tend to just buy ones that are rated for 100W power delivery and have video support. Those tend to cover all my bases.

    • @Windex007
      link
      34 months ago

      I wtf’d that you could do 100W w/ USB… Then I can see that new specs are to allow 240W.

      • Admiral Patrick
        link
        fedilink
        English
        54 months ago

        Yeah, that’s pretty recent. All my chargers are 100W or less. I think the 240W is achieved by increasing the voltage to 48v and keeping the current maximum to 5A.

      • @raldone01
        link
        14 months ago

        Well you can power things like egpus, monitors and gaming laptops soon. Very neat actually.

    • @[email protected]
      link
      fedilink
      44 months ago

      Wondering about the cost. Hardcore USB test/analysis devices can hit 4-5-digit $$$. If this hits $50, it’ll clean up. But I have a feeling it’ll be on the high end.

  • @[email protected]
    link
    fedilink
    24 months ago

    Get a USB hard drive and test how long it takes to transfer a file onto that hard drive using each cable.

  • @Today
    link
    14 months ago

    You could plug each one in and see what you’re phone says for ‘time to full.’

    • @[email protected]
      link
      fedilink
      14 months ago

      I think there’s a misunderstanding.

      Time to full usually refers to charging speed.

      The post is asking about data transfer speeds.

      • @Today
        link
        14 months ago

        Oh, yeah, sorry.

      • thermal_shock
        link
        English
        1
        edit-2
        4 months ago

        would weed out the super shitty ones maybe. but yeah, not accurate for data transfer.