RAW HID ESP32S3
Posted: Wed Aug 23, 2023 5:12 pm
Hi
I am trying to connect a raw hid device to my esp32s3 board but am battling to find enough information. When running the usb_host_lib example the device gets picked up :
<code>
9:03:32.535 -> [0;32mI (865) CLASS: Opening device at address 1[0m
19:03:32.535 -> [0;32mI (865) CLASS: Getting device information[0m
19:03:32.535 -> [0;32mI (865) CLASS: Low speed[0m
19:03:32.535 -> [0;32mI (875) CLASS: bConfigurationValue 1[0m
19:03:32.535 -> [0;32mI (875) CLASS: Getting device descriptor[0m
19:03:32.535 -> *** Device descriptor ***
19:03:32.535 -> bLength 18
19:03:32.535 -> bDescriptorType 1
19:03:32.535 -> bcdUSB 1.10
19:03:32.535 -> bDeviceClass 0x0
19:03:32.535 -> bDeviceSubClass 0x0
19:03:32.535 -> bDeviceProtocol 0x0
19:03:32.535 -> bMaxPacketSize0 8
19:03:32.535 -> idVendor 0x665
19:03:32.535 -> idProduct 0x5161
19:03:32.535 -> bcdDevice 0.00
19:03:32.535 -> iManufacturer 3
19:03:32.535 -> iProduct 1
19:03:32.535 -> iSerialNumber 0
19:03:32.535 -> bNumConfigurations 1
19:03:32.535 -> [0;32mI (905) CLASS: Getting config descriptor[0m
19:03:32.535 -> *** Configuration descriptor ***
19:03:32.535 -> bLength 9
19:03:32.535 -> bDescriptorType 2
19:03:32.535 -> wTotalLength 34
19:03:32.535 -> bNumInterfaces 1
19:03:32.535 -> bConfigurationValue 1
19:03:32.535 -> iConfiguration 0
19:03:32.535 -> bmAttributes 0xa0
19:03:32.535 -> bMaxPower 100mA
19:03:32.535 -> *** Interface descriptor ***
19:03:32.535 -> bLength 9
19:03:32.535 -> bDescriptorType 4
19:03:32.535 -> bInterfaceNumber 0
19:03:32.535 -> bAlternateSetting 0
19:03:32.535 -> bNumEndpoints 1
19:03:32.535 -> bInterfaceClass 0x3
19:03:32.535 -> bInterfaceSubClass 0x0
19:03:32.535 -> bInterfaceProtocol 0x0
19:03:32.535 -> iInterface 0
19:03:32.535 -> *** Endpoint descriptor ***
19:03:32.535 -> bLength 7
19:03:32.535 -> bDescriptorType 5
19:03:32.535 -> bEndpointAddress 0x81 EP 1 IN
19:03:32.535 -> bmAttributes 0x3 INT
19:03:32.535 -> wMaxPacketSize 8
19:03:32.535 -> bInterval 12
</code>
but I cannot find a way to send raw hex strings to it. In linux it shows up as a /dev/hidrawX instead of ttyUSB or ACM. I suspect that is why I am seeing errors like this from the framework
<code>
[0;31mE (767) HUB: Stage failed: CHECK_SHORT_MANU_STR_DESC[0m
</code>
Has anybody got any suggestions or perhaps come accross a sample that does something like this?
I am trying to connect a raw hid device to my esp32s3 board but am battling to find enough information. When running the usb_host_lib example the device gets picked up :
<code>
9:03:32.535 -> [0;32mI (865) CLASS: Opening device at address 1[0m
19:03:32.535 -> [0;32mI (865) CLASS: Getting device information[0m
19:03:32.535 -> [0;32mI (865) CLASS: Low speed[0m
19:03:32.535 -> [0;32mI (875) CLASS: bConfigurationValue 1[0m
19:03:32.535 -> [0;32mI (875) CLASS: Getting device descriptor[0m
19:03:32.535 -> *** Device descriptor ***
19:03:32.535 -> bLength 18
19:03:32.535 -> bDescriptorType 1
19:03:32.535 -> bcdUSB 1.10
19:03:32.535 -> bDeviceClass 0x0
19:03:32.535 -> bDeviceSubClass 0x0
19:03:32.535 -> bDeviceProtocol 0x0
19:03:32.535 -> bMaxPacketSize0 8
19:03:32.535 -> idVendor 0x665
19:03:32.535 -> idProduct 0x5161
19:03:32.535 -> bcdDevice 0.00
19:03:32.535 -> iManufacturer 3
19:03:32.535 -> iProduct 1
19:03:32.535 -> iSerialNumber 0
19:03:32.535 -> bNumConfigurations 1
19:03:32.535 -> [0;32mI (905) CLASS: Getting config descriptor[0m
19:03:32.535 -> *** Configuration descriptor ***
19:03:32.535 -> bLength 9
19:03:32.535 -> bDescriptorType 2
19:03:32.535 -> wTotalLength 34
19:03:32.535 -> bNumInterfaces 1
19:03:32.535 -> bConfigurationValue 1
19:03:32.535 -> iConfiguration 0
19:03:32.535 -> bmAttributes 0xa0
19:03:32.535 -> bMaxPower 100mA
19:03:32.535 -> *** Interface descriptor ***
19:03:32.535 -> bLength 9
19:03:32.535 -> bDescriptorType 4
19:03:32.535 -> bInterfaceNumber 0
19:03:32.535 -> bAlternateSetting 0
19:03:32.535 -> bNumEndpoints 1
19:03:32.535 -> bInterfaceClass 0x3
19:03:32.535 -> bInterfaceSubClass 0x0
19:03:32.535 -> bInterfaceProtocol 0x0
19:03:32.535 -> iInterface 0
19:03:32.535 -> *** Endpoint descriptor ***
19:03:32.535 -> bLength 7
19:03:32.535 -> bDescriptorType 5
19:03:32.535 -> bEndpointAddress 0x81 EP 1 IN
19:03:32.535 -> bmAttributes 0x3 INT
19:03:32.535 -> wMaxPacketSize 8
19:03:32.535 -> bInterval 12
</code>
but I cannot find a way to send raw hex strings to it. In linux it shows up as a /dev/hidrawX instead of ttyUSB or ACM. I suspect that is why I am seeing errors like this from the framework
<code>
[0;31mE (767) HUB: Stage failed: CHECK_SHORT_MANU_STR_DESC[0m
</code>
Has anybody got any suggestions or perhaps come accross a sample that does something like this?