USB "Mapper" software?

Does anyone know of any software/script etc that can visualise/dump the USB tree in a simple way? I want to try a bunch of different combinations with my dock and Studio Display and peripherals without the tedium of manually documenting each layout.

The System Profiler app shows the tree at a deep system level, but it is littered with implementation details that make it hard to read. I also found the system_profiler SPUSBDataType command which lists the same data. I managed some simplification of that with system_profiler SPUSBDataType | egrep '(:$|Controller|Vendor)' but even that has superfluous stuff.

It seems that one each physical device that accepts other USB devices can represent as multiple hubs, typically for both USB 2 and USB 3.

Here’s an abbreviated output from the grep command above. Take a look at where my Stream Deck appears. It’s plugged into the OWC Dock, which is plugged into my Studio Display, which is plugged into my Mac. So… Mac → SD → OWC → Stream Deck.

USB:
    USB 3.1 Bus:
      Host Controller Driver: AppleT8103USBXHCI
    USB 3.1 Bus:
      Host Controller Driver: AppleT8103USBXHCI
    USB 3.1 Bus:
      Host Controller Driver: AppleUSBXHCITR
      PCI Vendor ID: 0x8086 
        ...
        USB2 Hub:
          Vendor ID: 0x05ac (Apple Inc.)
            USB2.0 Hub:
              Vendor ID: 0x2109  (VIA Labs, Inc.)
                OWC USB-C Dock:
                  Vendor ID: 0x0d8c  (C-MEDIA ELECTRONICS INC.)
                USB2.0 Hub:
                  Vendor ID: 0x2109  (VIA Labs, Inc.)
                    Billboard Device:
                      Vendor ID: 0x10c4  (Silicon Laboratories, Inc.)
                    USB2.0 Hub:
                      Vendor ID: 0x2109  (VIA Labs, Inc.)
--------->              Stream Deck MK.2:
                          Vendor ID: 0x0fd9  (Elgato Systems GmbH)
            Studio Display:
              Vendor ID: 0x05ac (Apple Inc.)

The USB 3 hubs and USB 2 hubs are the same physical devices and the Studio Display is also two of the hubs yet shows separately as well!

I also don’t know why there are three top-level USB 3.1 Bus items on my 2-port MacBook Pro.

That’s allowed :slightly_smiling_face:
A “hub” isn’t necessarily a place for you to plug things in, it can be used internally to ”plug in” multiple devices. So for the Studio Display, that could be the camera, and perhaps other internal devices.

Your MBP uses USB internally for things like trackpad, keyboard (looks like those use SPI), and perhaps system controls.

After all, it is a universal serial bus :slightly_smiling_face:

1 Like

Here’s usb on my iMac Pro.