Custom hid input report descriptor
Hi folks,
I have a stm32f411 with custom hid running smoothly. But if i change a value in the report descriptor data transmission stops working.
I want to change the descriptor cause i want to send more data to the host.
Here is the descriptor which works
char ReportDescriptor[58] = {
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x09, 0x04, // USAGE (Joystick)
0xa1, 0x01, // COLLECTION (Application)
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x09, 0x30, // USAGE (X)
0x09, 0x31, // USAGE (Y)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x27, 0xff, 0xff, 0x00, 0x00, // LOGICAL_MAXIMUM (65535)
0x75, 0x10, // REPORT_SIZE (16)
0x95, 0x02, // REPORT_COUNT (2)
0x81, 0x02, // INPUT (Data,Var,Abs)
0x05, 0x09, // USAGE_PAGE (Button)
0x19, 0x01, // USAGE_MINIMUM (Button 1)
0x29, 0x20, // USAGE_MAXIMUM (Button 32)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x01, // LOGICAL_MAXIMUM (1)
0x75, 0x01, // REPORT_SIZE (1)
0x95, 0x20, // REPORT_COUNT (32)
0x81, 0x02, // INPUT (Data,Var,Abs)
0x09, 0x00, // USAGE (Undefined)
0x75, 0x08, // REPORT_SIZE (8)
0x95, 0x14, // REPORT_COUNT (20)
0x81, 0x02, // INPUT (Data,Var,Abs)
0x09, 0x00, // USAGE (Undefined)
0x75, 0x08, // REPORT_SIZE (8)
0x95, 0x40, // REPORT_COUNT (64)
0x91, 0x02, // OUTPUT (Data,Var,Abs)
0xc0 // END_COLLECTIONUsing the USB demo tool tells me the input report byte length is 29
Now i want to crank this to the maximum which according to my knowledge is 64 bytes.
If i change the report count in the following line to 35 that should make a input report byte length of 64 in total.
0x09, 0x00, // USAGE (Undefined)
0x75, 0x08, // REPORT_SIZE (8)
0x95, 0x14, // REPORT_COUNT (20)
0x81, 0x02, // INPUT (Data,Var,Abs)
Unfortunately a report count of 35 hangs the data transmission.
I sure can need some advice on what i am doing wrong or where it goes wrong.
Thanks in advance
Martijn
