BlueSCSI / BlueSCSI-v2

Open source, open hardware, SCSI emulator using the Pi Pico PR2040 and Pico 2 RP2350
https://bluescsi.com
GNU General Public License v3.0
255 stars 28 forks source link

Implement a USB->SCSI Bridge Mode for BlueSCSI #212

Open akuker opened 2 days ago

akuker commented 2 days ago

image

This feature request is to add a new "mode" to BlueSCSI that allows it to connect legacy SCSI devices to a modern-ish host via USB. The goal is to emulate a device similar to this: image

The scope of this issue will be to add basic mass storage support (hard drive, cd-rom) to BlueSCSI on a Linux host. (Linux seems to be the least picky about USB device drivers). Initial implementation will keep the CDC (console) port over USB to allow debugging. MacOS 9 might not handle composite USB devices properly, so we may need an alternate config for that.

Once this basic functionality is implemented, the following wish-list will be evaluated:

References:

Help Requested

If you have any of the USB->SCSI bridge devices, if you could, plug it into a Linux/Mac host and run sudo lsusb -v and add the output to this ticket. We may need it later when trying to improve compatibility.

ewanuno commented 2 days ago

https://www.exellon.net/book/smdi.pdf

this is the smdi specification for transafering audio to and from samplers.

ewanuno commented 2 days ago

https://macintoshrepository.org/182-akai-mesa-ii- this is Akai Mesa II which runs on os9 and connects to Akai xl series samplers there is also a windows version.

akuker commented 2 days ago

Castlewood Orb USB Smart Cable info:

Bus 001 Device 012: ID 084b:a001 Castlewood Systems Castlewood ORB Drive
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        16
  idVendor           0x084b
  idProduct          0xa001
  bcdDevice            2.06
  iManufacturer           1 Castlewood Systems
  iProduct                2 Castlewood ORB Drive
  iSerial                 5 000000000000
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0020
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          3 Mass Storage Class
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              400mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              4 Bulk-Only and CBC Interface
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
Device Status:     0x0000
  (Bus Powered)

Linux Kernel Messages:

[15475167.179155] usb 1-3: new full-speed USB device number 12 using xhci_hcd
[15475167.337989] usb 1-3: New USB device found, idVendor=084b, idProduct=a001, bcdDevice= 2.06
[15475167.338005] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=5
[15475167.338010] usb 1-3: Product: Castlewood ORB Drive
[15475167.338014] usb 1-3: Manufacturer: Castlewood Systems
[15475167.338018] usb 1-3: SerialNumber: 000000000000
[15475167.345882] usb-storage 1-3:1.0: USB Mass Storage device detected
[15475167.346423] usb-storage 1-3:1.0: Quirks match for vid 084b pid a001: 4
[15475167.346855] scsi host6: usb-storage 1-3:1.0
[15475186.595582] scsi 6:0:6:0: Direct-Access     CWS ORB2 -SE U ID 6       D20  PQ: 0 ANSI: 2
[15475186.603192] sd 6:0:6:0: Attached scsi generic sg2 type 0
[15475186.609098] sd 6:0:6:0: Power-on or device reset occurred
[15475186.615347] sd 6:0:6:0: [sdc] 4307184 512-byte logical blocks: (2.21 GB/2.05 GiB)
[15475186.640510] sd 6:0:6:0: [sdc] Write Protect is off
[15475186.640513] sd 6:0:6:0: [sdc] Mode Sense: a1 00 00 08
[15475186.665759] sd 6:0:6:0: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[15475186.751033]  sdc: [mac] sdc1 sdc2 sdc3 sdc4
[15475186.754306] sd 6:0:6:0: [sdc] Attached SCSI removable disk
.....
[15475454.333299] usb 1-3: USB disconnect, device number 12
[15475454.334404] device offline error, dev sdc, sector 850 op 0x1:(WRITE) flags 0x800 phys_seg 1 prio class 2
akuker commented 2 days ago

Microtech SCSI-HD50 SCSI Bridge


Bus 001 Device 013: ID 07af:0005 Microtech SCSI-HD50 SCSI Bridge [shuttle]
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.00
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x07af Microtech
  idProduct          0x0005 SCSI-HD50 SCSI Bridge [shuttle]
  bcdDevice            1.00
  iManufacturer           1 Microtech International, Inc.
  iProduct                2 USB-SCSI-HD50
  iSerial                 5 07
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0020
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          3 Default
    bmAttributes         0x40
      (Missing must-be-set bit!)
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              4 Mass storage
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
cannot read device status, Resource temporarily unavailable (11)

Linux Kernel messages:

[15477419.131956] usb 1-3: new full-speed USB device number 13 using xhci_hcd
[15477419.292413] usb 1-3: New USB device found, idVendor=07af, idProduct=0005, bcdDevice= 1.00
[15477419.292428] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=5
[15477419.292433] usb 1-3: Product: USB-SCSI-HD50
[15477419.292438] usb 1-3: Manufacturer: Microtech International, Inc.
[15477419.292442] usb 1-3: SerialNumber: 07
[15477419.298645] usb-storage 1-3:1.0: USB Mass Storage device detected
[15477419.299187] usb-storage 1-3:1.0: Quirks match for vid 07af pid 0005: 4
[15477419.299756] scsi host6: usb-storage 1-3:1.0
[15477422.852315] scsi 6:0:1:0: Direct-Access     QUANTUM  FIREBALL_TM1080S 3000 PQ: 0 ANSI: 2
[15477434.868096] sd 6:0:1:0: Attached scsi generic sg2 type 0
[15477434.880371] sd 6:0:1:0: Power-on or device reset occurred
[15477434.912013] sd 6:0:1:0: [sdc] 4124736 512-byte logical blocks: (2.11 GB/1.97 GiB)
[15477434.934375] sd 6:0:1:0: [sdc] Write Protect is off
[15477434.934379] sd 6:0:1:0: [sdc] Mode Sense: a3 00 00 08
[15477434.956737] sd 6:0:1:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[15477435.040942]  sdc: sdc1
[15477435.041315] sd 6:0:1:0: [sdc] Attached SCSI disk
[15477570.603607] usb 1-3: USB disconnect, device number 13
[15477570.652426] sd 6:0:1:0: [sdc] Synchronizing SCSI cache
[15477570.652502] sd 6:0:1:0: [sdc] Synchronize Cache(10) failed: Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
ewanuno commented 1 day ago

this post on stackexchange has some info about adapters supported by linux: https://superuser.com/questions/773331/attaching-scsi-drive-through-usb

ewanuno commented 1 day ago

a user confirms that the castlewood orb scsi adapter works with their EMU sampler: https://forum.vintagesynth.com/viewtopic.php?t=62242

ewanuno commented 1 day ago

linux kernel patch with more product names for usb-scsi devices. seems like lots of them use the shuttle technology eusb-01 chip https://www.spinics.net/lists/stable/msg64565.html

ewanuno commented 1 day ago

teardown of a shuttle eusb-01 based device over at thinkgeek: https://tinkerdifferent.com/threads/scsi-to-usb-adapter-reverse-engineering.1878/

stinkerton18 commented 1 day ago

Adaptec Blue and White USB2-Xchange

Kernel message (no drive connected):

[ 1373.355758] usb 3-1: new high-speed USB device number 8 using xhci_hcd
[ 1373.481955] usb 3-1: New USB device found, idVendor=03f3, idProduct=2002, bcdDevice= 1.00
[ 1373.481970] usb 3-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0

LSUSB output:

Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass       255 Vendor Specific Subclass
  bDeviceProtocol       255 Vendor Specific Protocol
  bMaxPacketSize0        64
  idVendor           0x03f3 Adaptec, Inc.
  idProduct          0x2002 USB2-Xchange
  bcdDevice            1.00
  iManufacturer           0
  iProduct                0
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x00ab
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           6
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x88  EP 8 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       2
      bNumEndpoints           6
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x88  EP 8 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       3
      bNumEndpoints           6
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x88  EP 8 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass       255 Vendor Specific Subclass
  bDeviceProtocol       255 Vendor Specific Protocol
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)
wmlive commented 1 day ago

USB SCSI Controller utilizing Teensy 4.1 https://github.com/svenschnelle/teensyscsi

dramirez1972 commented 1 day ago

Entrega USB to SCSI Converter:

pi@raspberrypi4:~ $ lsusb -v

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0
  bDeviceProtocol         3
  bMaxPacketSize0         9
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0003 3.0 root hub
  bcdDevice            6.01
  iManufacturer           3 Linux 6.1.21-v8+ xhci-hcd
  iProduct                2 xHCI Host Controller
  iSerial                 1 0000:01:00.0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x001f
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              12
        bMaxBurst               0

Bus 001 Device 003: ID 1645:0007 Entrega [hex] U1-SC25 SCSI
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.00
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x1645 Entrega [hex]
  idProduct          0x0007 U1-SC25 SCSI
  bcdDevice            1.00
  iManufacturer           1 Entrega Technologies Inc.
  iProduct                2 Entrega USB to SCSI Converter
  iSerial                 5 07
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0020
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          3
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              160mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0

Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x2109 VIA Labs, Inc.
  idProduct          0x3431 Hub
  bcdDevice            4.21
  iManufacturer           0
  iProduct                1 USB2.0 Hub
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0019
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0002 2.0 root hub
  bcdDevice            6.01
  iManufacturer           3 Linux 6.1.21-v8+ xhci-hcd
  iProduct                2 xHCI Host Controller
  iSerial                 1 0000:01:00.0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0019
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              12
pi@raspberrypi4:~ $