If you do, then you’re in luck, thanks to the Suptronics X1013 expansion board for the Raspberry Pi 5, which adds ten USB ports for a total of fourteen

    • Rekall Incorporated@piefed.socialOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      14 hours ago

      At one point I was running a laptop with x4 USB connections (KB, Mouse, laptop cooler and an HDD), x1 HDMI and x1 ethernet and I though that was rather quaint.

      • ExtremeDullard@piefed.social
        link
        fedilink
        English
        arrow-up
        19
        ·
        edit-2
        19 hours ago

        I work in a company that makes a range of measurement devices that talk over serial port. Some talk UART, some talk RS232, others talk RS422. I need to be able to test several of those at the same time - or maybe not, but when I’m sitting at home and working remotely, I like to have one of each kind already connected, ready to use. That’s one USB port (for a FTDI USB-to-serial converter cable) or real RS232 port connected per device.

        All those devices also have a second UART serial port to dump tracing information onto. Most of my test devices have the trace serial port connected also. That’s another USB port per device.

        And then most - not all, but most - have a JTAG programmer attached to them, to debug then and reflash their firmwares. That’s one USB port for each JTAG programmer.

        And I have several programmable bench power supplies controlling power to several batches of those devices. Each one of those power supplies uses one USB port.

        And I have 3 cameras watching the goings on with those devices, one per USB bus (Linux won’t allow more for bandwidth reason) to make alignment easier.

        And to debug some of the devices, I have them talking through “snoop cables”, i.e. a regular serial cable to control the device, but with the Rx line connected to a second cable’s Rx line, and the Tx line connected to a third cable’s Rx line, so that, by watching what comes through the 2 snoop cables, I know exactly what gets transferred to / from the device, if I have any doubt about what goes on at the hardware level.

        And then I have a couple of USB-controlled precision tilt tables to align 3 of the devices. That’s 3 more USB ports - although the tilt table’s controllers also act as USB hubs, so I get two USB ports back for every main one I use.

        And then I have oddball devices connected, like a servo controller for another application, a USB-to-serial cables out of which I only use the RTS line to turn a laser pointer on and off.

        And then a trackball, a keyboard, a 3D Space Mouse for CAD’ing…

        This is one of my USB hubs:

        image

        I’ve been at the same company doing this stuff for years. Things add up over the years 🙂

        • ikidd@lemmy.world
          link
          fedilink
          English
          arrow-up
          4
          ·
          12 hours ago

          I hope you have a spreadsheet of all that. I’d smoke something pretty quick trying to remember which port has the power supply for X device.

          • ExtremeDullard@piefed.social
            link
            fedilink
            English
            arrow-up
            5
            ·
            edit-2
            11 hours ago

            No need. I have better than that: dev file aliases. So I have for example

            /dev/crs1, the device
            /dev/crs1_pwr, the PSU for that device (if it’s powered alone)
            /dev/crs1_snoop_rx, the serial cable that snoops on the device’s Rx line
            /dev/crs1_snoop_tx, the serial cable that snoops on the device’s Tx line
            /dev/crs1_jtag, the JTAG adapter that programs / debugs that device
            /dev/crs1_tilt_x, the X axis of the tilt table the device is mounted on
            /dev/crs1_tilt_y, the X axis of the tilt table the device is mounted on

            Each point to some nondescript /dev/ttyUSB? or /dev/ttyACM? but the aliases have meaningful names, so I don’t need to remember anything.

            That’s the power of udev 🙂 And also one of the many reasons why Linux is better than Windows.