usb host not recognizing motu device, Teensy 4.1

Status
Not open for further replies.

Fertje

Active member
Hi There!
I'm trying to connect a MOTU midi express 128 to the teensy 4.1 usb host port (with usbhost_t36 lib).

It doesn't do anything, not recognizing the device, I can't retrieve a hardware ID. From other devices such as usb-sticks or keyboards work fine.
The MOTU is working fine on mac/pc.

Does anyone have any idea how to get the midi data from this device to the teensy 4.1?
Thanx a lot.

Fertje
 
That interface has custom drivers, it's likely being recognized as a valid device but as it's not a class compliant midi device it won't work with the default MIDI driver included in the library without modification.
 
Thanks VJ.
I guess the Miditech Midiface 16x16 is when I look at the specs. I'll try one. Thanks again.
 
The midiface 16x16shows the Hiddeviceinfo when i connect and disconnect. But it show no messages when i send midi.

On an arduino uno using the usb host shield v2, the 'Usb Host Shield Library 2.0' example 'USBH_MIDI_dump' works immedately and shows all the raw data on the serial monitor.

I just can't seem to get any data on the teensy 4.1 through the usb host port though.. I'm kind of stuck.
 
It's possible that the MOTU is sending standard usbMIDI but not using a standard midi device descriptor that's currently recognized, USB Host Shield Library may be using a different method to detect it and assigning the driver or have already added the necessary checks for it. I know there are a couple of other USB devices that have needed specific checks to be added to be able to use them with the library.

You can uncomment a line in the library header file to get more info when you connect the device, here's the link to the line: https://github.com/PaulStoffregen/U...0a19f3479afb9064253b88b02e0/USBHost_t36.h#L62

With that information it should be possible to add the support for it to the library.
 
I think you should make sure you are using the big buffer midi driver for usbHost_36 and I highly recommend increasing the size of the device descriptor buffer. I don't know why Paul doesn't make that the default. Any USB 2.0 MIDI devices will fail to function properly if you don't make those changes.
 
I kind of gotten a bit further with the Miditech midiface16x16. (a class compliant 16x in and 16x out MIDI DIN to 1x USB device, no drivers needed).

The device is working, but no midi messages arrive. Done the bigbuffer, but with no result yet.
This is my debug info, there is one error shown in bold:

USB Host Testing

USB2 PLL running

reset waited 5

USBHS_ASYNCLISTADDR = 0

USBHS_PERIODICLISTBASE = 2000D000

periodictable = 2000D000

port change: 10001803

connect

begin reset

port change: 18001205

port enabled

end recovery

new_Device: 480 Mbit/sec

new_Pipe

enumeration:

enumeration:

enumeration:

Device Descriptor:

12 01 10 02 00 00 00 40 90 12 49 17 00 01 01 02 03 01

VendorID = 1290, ProductID = 1749, Version = 0100

Class/Subclass/Protocol = 0 / 0 / 0

Number of Configurations = 1

enumeration:

enumeration:

Manufacturer: MIDITECH

enumeration:

Product: MIDIFACE 16x16

enumeration:

Serial Number: no serial number

enumeration:

Config data length = 581

enumeration:

Configuration Descriptor:

09 02 45 02 02 01 00 80 7D

NumInterfaces = 2

ConfigurationValue = 1

09 04 00 00 00 01 01 00 00

Interface = 0

Number of endpoints = 0

Class/Subclass/Protocol = 1 / 1 / 0

09 24 01 00 01 09 00 01 01

09 04 01 00 02 01 03 00 00

Interface = 1

Number of endpoints = 2

Class/Subclass/Protocol = 1 / 3 / 0

07 24 01 00 01 21 02

06 24 02 01 01 00

06 24 02 01 05 00

06 24 02 01 09 00

06 24 02 01 0D 00

06 24 02 01 11 00

06 24 02 01 15 00

06 24 02 01 19 00

06 24 02 01 1D 00

06 24 02 01 21 00

06 24 02 01 25 00

06 24 02 01 29 00

06 24 02 01 2D 00

06 24 02 01 31 00

06 24 02 01 35 00

06 24 02 01 39 00

06 24 02 01 3D 00

06 24 02 02 02 05

06 24 02 02 06 06

06 24 02 02 0A 07

06 24 02 02 0E 08

06 24 02 02 12 09

06 24 02 02 16 0A

06 24 02 02 1A 0B

06 24 02 02 1E 0C

06 24 02 02 22 0D

06 24 02 02 26 0E

06 24 02 02 2A 0F

06 24 02 02 2E 10

06 24 02 02 32 11

06 24 02 02 36 12

06 24 02 02 3A 13

06 24 02 02 3E 14

09 24 03 01 03 01 02 01 00

09 24 03 01 07 01 06 01 00

09 24 03 01 0B 01 0A 01 00

09 24 03 01 0F 01 0E 01 00

09 24 03 01 13 01 12 01 00

09 24 03 01 17 01 16 01 00

09 24 03 01 1B 01 1A 01 00

09 24 03 01 1F 01 1E 01 00

09 24 03 01 23 01 22 01 00

09 24 03 01 27 01 26 01 00

09 24 03 01 2B 01 2A 01 00

09 24 03 01 2F 01 2E 01 00

09 24 03 01 33 01 32 01 00

09 24 03 01 37 01 36 01 00

09 24 03 01 3B 01 3A 01 00

09 24 03 01 3F 01 3E 01 00

09 24 03 02 04 01 01 01 05

09 24 03 02 08 01 05 01 06

09 24 03 02 0C 01 09 01 07

09 24 03 02 10 01 0D 01 08

09 24 03 02 14 01 11 01 09

09 24 03 02 18 01 15 01 0A

09 24 03 02 1C 01 19 01 0B

09 24 03 02 20 01 1D 01 0C

09 24 03 02 24 01 21 01 0D

09 24 03 02 28 01 25 01 0E

09 24 03 02 2C 01 29 01 0F

09 24 03 02 30 01 2D 01 10

09 24 03 02 34 01 31 01 11

09 24 03 02 38 01 35 01 12

09 24 03 02 3C 01 39

error: length beyond total data size

enumeration:

USBHub memory usage = 960

USBHub claim_device this=2000B6A0

USBHub memory usage = 960

USBHub claim_device this=2000BA60

USBHub memory usage = 960

USBHub claim_device this=2000BE20

Descriptor 4 = INTERFACE

MIDIDevice claim this=20001DA0

len = 503

bInterfaceClass=1

bInterfaceSubClass=1

Interface is unknown (might be Yahama)

type: 36, len: 9

MIDI Header (ignored)

type: 4, len: 9

Descriptor 36 = ???

Descriptor 4 = INTERFACE

MIDIDevice claim this=20001DA0

len = 485

bInterfaceClass=1

bInterfaceSubClass=3

Interface is MIDI

type: 36, len: 7

MIDI Header (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 6

MIDI IN Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

type: 36, len: 9

MIDI OUT Jack (ignored)

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???

Descriptor 36 = ???
 
You've increased the size of the descriptor buffer in enumeration.cpp?

Code:
static uint8_t enumbuf[2048] __attribute__ ((aligned(16)));
 
I managed to sovle it by increasing the enumbuf to 1024 in the enumeration.cpp

Thanx all for the support.
 
Status
Not open for further replies.
Back
Top