My earlier tests were with Teensy LC, as I had other plans for my Teensy 4.1 but then thought to test with it just for giggles. Guess what - on Teensy 4.1 this issue is gone, MIO sees the board on both 4 and 16 cable configurations!
Here's a diff of the descriptor between LC and 4.1 on MIDIx4 configuration:
Code:
-Bus 002 Device 111: ID 16c0:0485 Van Ooijen Technische Informatica Teensyduino MIDI
+Bus 002 Device 114: ID 16c0:0485 Van Ooijen Technische Informatica Teensyduino MIDI
Device Descriptor:
bLength 18
bDescriptorType 1
- bcdUSB 1.10
+ bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
@@ -12,7 +12,7 @@
bcdDevice 2.11
iManufacturer 1 Teensyduino
iProduct 2 Teensy MIDIx4
- iSerial 3 5364600
+ iSerial 3 7652520
bNumConfigurations 1
Configuration Descriptor:
bLength 9
@@ -179,12 +179,12 @@
Endpoint Descriptor:
bLength 9
bDescriptorType 5
- bEndpointAddress 0x04 EP 4 OUT
+ bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
- wMaxPacketSize 0x0040 1x 64 bytes
+ wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
bRefresh 0
bSynchAddress 0
@@ -205,7 +205,7 @@
Transfer Type Bulk
Synch Type None
Usage Type Data
- wMaxPacketSize 0x0040 1x 64 bytes
+ wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
bRefresh 0
bSynchAddress 0
@@ -241,7 +241,7 @@
Endpoint Descriptor:
bLength 7
bDescriptorType 5
- bEndpointAddress 0x81 EP 1 IN
+ bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
@@ -258,5 +258,14 @@
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 2
+Device Qualifier (for other device speed):
+ bLength 10
+ bDescriptorType 6
+ bcdUSB 2.00
+ bDeviceClass 0
+ bDeviceSubClass 0
+ bDeviceProtocol 0
+ bMaxPacketSize0 64
+ bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)
It's not USB version as MidiHub is 1.10 too, nor the wMaxPacketSize as MH is 1x64 bytes too, and it's not the DeviceQualifier as that's not present other devices that do work with the MIO. Which would seem to leave the two bEndpointAddress differences, for whatever that means - I'm just a clueless observer in this, just happy with having something that does work with the MIO in multicable config!
Edit: just to clarify: I've so far only tested that the MIO *sees* the Teensy 4.1 board in both MIDI x4 and x16 configurations, didn't test any actual functionality beyond that.