Open akuker opened 2 days ago
https://www.exellon.net/book/smdi.pdf
this is the smdi specification for transafering audio to and from samplers.
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.
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
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
this post on stackexchange has some info about adapters supported by linux: https://superuser.com/questions/773331/attaching-scsi-drive-through-usb
a user confirms that the castlewood orb scsi adapter works with their EMU sampler: https://forum.vintagesynth.com/viewtopic.php?t=62242
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
teardown of a shuttle eusb-01 based device over at thinkgeek: https://tinkerdifferent.com/threads/scsi-to-usb-adapter-reverse-engineering.1878/
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)
USB SCSI Controller utilizing Teensy 4.1 https://github.com/svenschnelle/teensyscsi
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:~ $
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:
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.