I am trying to make a composite device with two identical HID joystick classes on one device but windows 10 doesn´t recongnize it. I don't want to make a device with one interface and using one HID descriptor with two joystick described as TLC but I want to make a device with two interfaces each one with user defined HID descriptor. The microcontroller is LPC1788 and I am using middleware with usb component. One device (USBD_Config_0.c) and two HID (USBD_Config_HID_0.h and USBD_Config_HID_1.h) with user provide descriptor in USBD_User_HID_0.c and USBD_User_HID_1.c identicals. The error:
The USB device \ VID_1234 & PID_9101 \ 0001A0000001 could not be migrated.
Last Device Instance ID: USB \ VID_04D8 & PID_0021 \ 5 & e4db51b & 0 & 6 GUID Class: {745A17A0-74D3-11D0-B6FE-00A0C90F57DA} Location Path: PCIROOT (0) #PCI (0200) #USBROOT (0) #USB (6) Migration Classification: 0xF000FFFFFFFF0033 Present: false Status: 0xC0000719
USB device \ VID_1234 & PID_9101 \ 0001A0000001 configured.
Driver Name: usb.inf Guid Class: {36FC9E60-C465-11CF-8056-444553540000} Date of the Driver: 06/21/2006 Driver Version: 10.0.15063.674 Driver Provider: Microsoft Driver Section: Composite.Dev.NT Driver Rating: 0xFF2003 Corresponding Device ID: USB \ COMPOSITE Unrated Drivers: Updated Device: false Parent Device: USB \ ROOT_HUB \ 4 & 1d398213 & 0
The USB device \ VID_1234 & PID_9101 \ 0001A0000001 had a problem starting.
Driver Name: usb.inf Guid Class: {36FC9E60-C465-11CF-8056-444553540000} Service: usbccgp Lower Filters: Higher Filters: Problem: 0xA Issue Status: 0xC0000001
One of the descriptors:
extern const uint8_t usbd_hid0_report_descriptor[]; const uint8_t usbd_hid0_report_descriptor[] = { 0x05, 0x01, // USAGE_PAGE (Generic Desktop) 0x09, 0x04, // USAGE (Joystick) 0xa1, 0x01, // COLLECTION (Application) 0x09, 0x01, // USAGE (Pointer) 0xa1, 0x00, // COLLECTION (Physical) 0x09, 0x30, // USAGE (X) 0x09, 0x31, // USAGE (Y) 0x09, 0x32, // USAGE (Z) 0x09, 0x33, // USAGE (Rx) 0x15, 0x81, // LOGICAL_MINIMUM (-127) 0x25, 0x7f, // LOGICAL_MAXIMUM (127) 0x75, 0x08, // REPORT_SIZE (8) 0x95, 0x04, // REPORT_COUNT (4) 0x81, 0x02, // INPUT (Data,Var,Abs) 0xc0, // END_COLLECTION 0x05, 0x09, // USAGE_PAGE (Button) 0x19, 0x01, // USAGE_MINIMUM (Button 1) 0x29, 0x10, // USAGE_MAXIMUM (Button 16) 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x25, 0x01, // LOGICAL_MAXIMUM (1) 0x75, 0x01, // REPORT_SIZE (1) 0x95, 0x10, // REPORT_COUNT (16) 0x81, 0x02, // INPUT (Data,Var,Abs) 0xc0 // END_COLLECTION };
If I remove one HID the project works and one joystick is recognized by windows but if I add the other HID the error occurs. I can make a composite device with two interfaces with different classes as HID + CDC but with same class doesn't work (HID + HID). Can anyone help me ?
http://www.keil.com/forum/63053/
How do I delete the previous thread ? This one got better detailed.
You can't.
Just go and make a post there, advising that the discussion continues here.
Please also follow the instructions for posting source code - look at this picture: www.danlhenry.com/.../keil_code.png
Middleware Composite HID + HID with two interface doesn't work I am trying to make a composite device with two identical HID joystick classes on one device but windows 10 doesn´t recongnize it. I don't want to make a device with one interface and using one HID descriptor with two joystick described as TLC but I want to make a device with two interfaces each one with user defined HID descriptor. The microcontroller is LPC1788 and I am using middleware with usb component. One device (USBD_Config_0.c) and two HID (USBD_Config_HID_0.h and USBD_Config_HID_1.h) with user provide descriptor in USBD_User_HID_0.c and USBD_User_HID_1.c identicals. The error:
http://www.keil.com/forum/21626/
I would like to thank Andrew Neil for the indication of the post. Although the post did not solve my problem, it led me to understand why it was not working. I was trying to use the endpoint number 2 that can only be used as a bulk endpoint. As soon as I used endpoint number 4 everything worked.