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

  • ExtremeDullard@piefed.social
    link
    fedilink
    English
    arrow-up
    22
    ·
    edit-2
    24 days 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
      ·
      23 days 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
        23 days 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.