MIO-XL: USB Device Compatibility Issues

Hi all,
I really like the MIO-XL for its USB host ports. I want to use it as centerpiece of my MIDI rig, involving a Yamaha MODX, Nord Stage2, Access Virus, and a Teensy Microcontroller.

Unfortunately, the MIO-XL does not recognize the Teensy (class compliant!) in its MIDIx4 or MIDIx16 modes, where it provides 4 or 16 virtual ports.
Only the single-port mode works. I have been in contact with the iConnectivity support and the Teensy developer to investigate the issue. First we all thought that it might be related to the Teensy being a hybrid USB device, providing MIDI and serial-port protocols, the latter for programming issues.

So I disabled the serial port device, turning the Teensy into a pure MIDI device. Still - the 4 port mode does not work, only if I bring the number of MIDI ports down to two. I know that the MIO-XL supports USB devices with more ports in general. So what could be the problem here?

This is the USB descriptor in 4-port mode. The MIO-XL does not recognize this device:
http://www.borislau.de/teensy_no-serial_4ports.txt

This is the same USB descriptor, but stripped down to 2-ports. This works perfectly fine:
http://www.borislau.de/teensy_no-serial_2ports.txt

The USB descriptors are identical, except for the additional Jack descriptors. 

I wonder if the MIO-XL's USB implementation makes additional assumptions that are not met by the Teensy's USB descriptor, although it's supposed to be class compliant. I'd be very thankful for any help, and I'm happy to spend more time investigating the issue if someone has an idea what to try.

Best, Boris

Comments

  • I should add: The Yamaha MODX works perfectly fine on the MIO-XL, although it is a hybrid device with audio streaming and 3 MIDI ports. I noticed that its MIDI jacks are in different order - first all INs, then all OUTs: 
    http://www.borislau.de/yamaha_modx.txt

    This is different on the Teensy, which lists INs and OUTs interleaved, iterating over the virtual ports. According to the USB MIDI Specs (https://usb.org/sites/default/files/midi10.pdf), the order should not matter though.
  • I have an old iConnectivity MIDI2+, which works fine on the MIO-XL. I've worked on the USB descriptor of the Teensy to make it as close as possible to the MIDI2+, here it is:
    http://www.borislau.de/teensy_fixed.txt

    Still no luck, the MIO-XL ignores the Teensy with ≥4 ports, detects but transmits only with 3 ports, and works both ways with 2 ports.

    Is there anything else I could look at? Is there any way to get a log or other kind of debug information from the MIO-XL?

    Best, Boris
Sign In or Register to comment.