I've been trying to use the usb_host_lib example with a Novation Launchpad Mk2 and it is always failing:
Code: Select all
I (829) DAEMON: Installing USB Host Library
V (829) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args
V (839) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0x802
D (849) intr_alloc: Connected src 48 to int 12 (cpu 0)
I (879) CLASS: Registering Client
I (879) CLASS: In while loop
I (879) CLASS: driver_obj.actions == 0
D (2479) HUB: Root port reset
D (2479) HUB: Stage done: START
D (2479) HUB: Stage done: GET_SHORT_DEV_DESC
E (2479) HUB: Bad transfer status 1: CHECK_SHORT_DEV_DESC
E (2479) HUB: Stage failed: CHECK_SHORT_DEV_DESC
D (2489) HUB: Stage done: CLEANUP_FAILED
I have tried the same example with an Arturia Keystep and it seems to work fine:
Code: Select all
I (829) DAEMON: Installing USB Host Library
V (829) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args
V (839) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0x802
D (849) intr_alloc: Connected src 48 to int 12 (cpu 0)
I (879) CLASS: Registering Client
I (879) CLASS: In while loop
I (879) CLASS: driver_obj.actions == 0
D (2479) HUB: Root port reset
D (2479) HUB: Stage done: START
D (2479) HUB: Stage done: GET_SHORT_DEV_DESC
D (2479) HUB: Stage done: CHECK_SHORT_DEV_DESC
D (3479) HUB: Stage done: SECOND_RESET
D (3479) HUB: Stage done: SET_ADDR
D (3479) HUB: Stage done: CHECK_ADDR
D (3979) HUB: Stage done: SET_ADDR_RECOVERY
D (3979) HUB: Stage done: GET_FULL_DEV_DESC
D (3979) HUB: Stage done: CHECK_FULL_DEV_DESC
D (3979) HUB: Stage done: GET_SHORT_CONFIG_DESC
D (3979) HUB: Stage done: CHECK_SHORT_CONFIG_DESC
D (3989) HUB: Stage done: GET_FULL_CONFIG_DESC
D (3989) HUB: Stage done: CHECK_FULL_CONFIG_DESC
D (3999) HUB: Stage done: SET_CONFIG
D (3999) HUB: Stage done: CHECK_CONFIG
D (3999) HUB: Stage done: GET_SHORT_LANGID_TABLE
D (4009) HUB: Stage done: CHECK_SHORT_LANGID_TABLE
D (4009) HUB: Stage done: GET_FULL_LANGID_TABLE
D (4019) HUB: Stage done: CHECK_FULL_LANGID_TABLE
D (4019) HUB: Stage done: GET_SHORT_MANU_STR_DESC
D (4029) HUB: Stage done: CHECK_SHORT_MANU_STR_DESC
D (4029) HUB: Stage done: GET_FULL_MANU_STR_DESC
D (4039) HUB: Stage done: CHECK_FULL_MANU_STR_DESC
D (4039) HUB: Stage done: GET_SHORT_PROD_STR_DESC
D (4049) HUB: Stage done: CHECK_SHORT_PROD_STR_DESC
D (4049) HUB: Stage done: GET_FULL_PROD_STR_DESC
D (4059) HUB: Stage done: CHECK_FULL_PROD_STR_DESC
D (4059) HUB: Stage done: GET_SHORT_SER_STR_DESC
D (4069) HUB: Stage done: CHECK_SHORT_SER_STR_DESC
D (4069) HUB: Stage done: GET_FULL_SER_STR_DESC
D (4069) HUB: Stage done: CHECK_FULL_SER_STR_DESC
D (4079) HUB: Stage done: CLEANUP
D (4079) USBH: Processing actions 0x100
D (4089) USBH: New device 1
I (4089) CLASS: In while loop
I (4089) CLASS: Opening device at address 1
I (4099) CLASS: Getting device information
I (4099) CLASS: Full speed
I (4109) CLASS: bConfigurationValue 1
I (4109) CLASS: Getting device descriptor
*** Device descriptor ***
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0x0
bDeviceSubClass 0x0
bDeviceProtocol 0x0
bMaxPacketSize0 64
idVendor 0x1c75
idProduct 0x288
bcdDevice 2.00
iManufacturer 1
iProduct 2
iSerialNumber 3
bNumConfigurations 1
I (4139) CLASS: Getting config descriptor
*** Configuration descriptor ***
bLength 9
bDescriptorType 2
wTotalLength 101
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
bMaxPower 100mA
*** Interface descriptor ***
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 0x1
bInterfaceSubClass 0x1
bInterfaceProtocol 0x0
iInterface 0
*** Interface descriptor ***
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 0x1
bInterfaceSubClass 0x3
bInterfaceProtocol 0x0
iInterface 0
*** Endpoint descriptor ***
bLength 9
bDescriptorType 5
bEndpointAddress 0x2 EP 2 OUT
bmAttributes 0x2 BULK
wMaxPacketSize 64
bInterval 0
*** Endpoint descriptor ***
bLength 9
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 0x2 BULK
wMaxPacketSize 64
bInterval 0
I (4219) CLASS: Getting Manufacturer string descriptor
Arturia(
I (4229) CLASS: Getting Product string descriptor
Arturia KeyStep 32
I (4239) CLASS: Getting Serial Number string descriptor
00000000001A
I (4239) CLASS: In while loop
I (4249) CLASS: driver_obj.actions == 0
D (9639) USBH: Processing actions 0x17
D (9639) USBH: Default pipe device 1
E (9639) USBH: Device 1 gone
I (9639) CLASS: In while loop
I (9649) CLASS: Deregistering Client
D (9649) USBH: Processing actions 0x40
D (9649) USBH: Freeing device 1
D (9659) USBH: Device all free
D (9659) HUB: Recovering root port
I (9659) DAEMON: No more clients and devices
V (9669) intr_alloc: esp_intr_free: Disabling int, killing handler
Code: Select all
$ sudo lsusb -D /dev/bus/usb/003/002
[sudo] password for mark:
Device: ID 1235:0069 Focusrite-Novation Launchpad MK2
iInterface 3 Launchpad MK2
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
wTotalLength 0x0009
bInCollection 1
baInterfaceNr(0) 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 1 Audio
bInterfaceSubClass 3 MIDI Streaming
bInterfaceProtocol 0
iInterface 3 Launchpad MK2
MIDIStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
wTotalLength 0x002e
MIDIStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (MIDI_IN_JACK)
bJackType 1 Embedded
bJackID 1
iJack 0
MIDIStreaming Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (MIDI_OUT_JACK)
bJackType 1 Embedded
bJackID 2
bNrInputPins 1
baSourceID( 0) 1
BaSourcePin( 0) 1
iJack 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
MIDIStreaming Endpoint Descriptor:
bLength 5
bDescriptorType 37
bDescriptorSubtype 1 (GENERAL)
bNumEmbMIDIJack 1
baAssocJackID( 0) 2
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
MIDIStreaming Endpoint Descriptor:
bLength 5
bDescriptorType 37
bDescriptorSubtype 1 (GENERAL)
bNumEmbMIDIJack 1
baAssocJackID( 0) 1
Device Status: 0x0000
(Bus Powered)
Any ideas on how I can get past this error?
E (2479) HUB: Bad transfer status 1: CHECK_SHORT_DEV_DESC
E (2479) HUB: Stage failed: CHECK_SHORT_DEV_DESC