• tal@lemmy.today
    link
    fedilink
    English
    arrow-up
    18
    ·
    3 months ago

    Last I looked, these (and the “blue plastic for USB 3” convention) weren’t mandated by the spec. So it’s not that they’re violating the spec, but that they’re optional.

    • sugar_in_your_tea@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      17
      ·
      3 months ago

      And that’s the real issue with the USB spec, almost everything is optional. This would be fine if cables were largely interchangeable, but they’re not.

      What they should have are a handful of very well-defined tiers. Cables should maybe have three (basic, mid-range, high end), and ports can have a couple more.

      • GamingChairModel@lemmy.world
        link
        fedilink
        English
        arrow-up
        6
        arrow-down
        1
        ·
        3 months ago

        The problem is that there are too many separate dimensions to define the tiers.

        In terms of data signaling speed and latency, you have the basic generations of USB 1.x, 2.0, 3.x, and 4, with Thunderbolt 3 essentially being the same thing as USB4, and Thunderbolt 4 adding on some more minimum requirements.

        On top of that, you have USB-PD, which is its own standard for power delivery, including how the devices conduct handshakes over a certified cable.

        And then you have the standards for not just raw data speed, but also what other modes are supported, for information to be seamlessly tunneled through the cable and connection in a mode that carries signals other than the data signal spec for USB. Most famously, there’s the DisplayPort Alt Mode for driving display data over a USB-C connection with a DP-compatible monitor. But there’s also an analog audio mode so that the cable and port passes along analog data to or from microphones or speakers.

        Each type of cable, too, carries different physical requirements, which also causes a challenge on how long the cable can be and still work properly. That’s why a lot of the cables that support the latest and greatest data and power standards tend to be short. A longer cable might be useful, but could come at the sacrifice of not supporting certain types of functions. I personally have a long cable that supports USB-PD but can’t carry thunderbolt data speeds or certain types of signals, but I like it because it’s good for plugging in a charger when I’m not that close to an outlet. But I also know it’s not a good cable for connecting my external SSD, which would be bottlenecked at USB 2.0 speeds.

        So the tiers themselves aren’t going to be well defined.

        • tal@lemmy.today
          link
          fedilink
          English
          arrow-up
          6
          ·
          3 months ago

          And then you have the standards for not just raw data speed, but also what other modes are supported, for information to be seamlessly tunneled through the cable and connection in a mode that carries signals other than the data signal spec for USB.

          Not to mention power-only cables to avoid the security issues associated with cables that permit data transfer.

          • fruitycoder@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            3
            ·
            3 months ago

            “Power-only” meaning no data BEYOND the PD devices themselves because its actually a data protocol to negotiate the power output to the device.

        • sugar_in_your_tea@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          7
          ·
          edit-2
          3 months ago

          Right, which is why it’s so important to define tiers.

          For example:

          1. basic support (cheap) - gen 2 speeds, charging at 5v 500ma, etc; for peripherals and whatnot
          2. high speed (fast enough) - 5gbps speeds, charging at 5v 500ma, etc; USB drives, regular laptop/desktop ports, etc
          3. fast charging (general purpose) - 5gbps data transfer, fast charging up to 45W (or maybe a little lower) at various voltages; phones, special laptop/desktop ports
          4. specialized PD - gen 2 speeds (faster is optional), fast charging up to 240W at various voltages
          5. specialized data - 40gbps data transfer, charging at 5v 500ma (faster is optional), display out

          You’d use the same cable for 1-3, and specialized cables for 4 and 5, and those cables would have special markings on the connector. Ports for 3-5 would have unique markings as well. Cables and ports can go beyond those specs if they want.

          Just because you can break things into separate groups doesn’t mean you should. The goal here shouldn’t be to make things easier for manufacturers, but to make things easier for users.

      • s_s@lemm.ee
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        2
        ·
        edit-2
        3 months ago

        It has to be optional to remain a “Universal” spec.

        If it had more requirements, it would be more cumbersome to implement and device manufacturers would come up with completely different, completely incompatible cables and ports (a la Apple’s lightning) that would cause you even more headaches.

        • sugar_in_your_tea@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          3
          ·
          3 months ago

          “Universal” merely means devices with different capabilities can use the same interface. So you can use mice and keyboards (very low bandwidth needs) on the same port as a data hungry drive. That was the major innovation when USB took over for PS/2, parallel port, etc.

          Manufacturers can still use low-end components on the client devices, the requirement would merely be that the ports in host devices and cables would meet some minimum specs to be able to meet USB certification. Instead of having a wide variety of possible configurations, force host devices into smaller niches so the marketing is clearer to customers. Devices would still negotiate voltages, data rates, etc as they do now, the only change would be forcing implementations into buckets.