Thanks for all the tips.
The problem was with the descriptor bitmap.
Here is the current bitmap:
const hcc_u8 geh_report_descriptor[] = {
0x06, 0x00, 0xff, // USAGE_PAGE (Vendor Defined Page 1)
0x09, 0x01, // USAGE (Vendor Usage 1)
0xa1, 0x01, // COLLECTION (Application)
0x05, 0x08, // USAGE_PAGE (LEDs)
0x09, 0x4b, // USAGE (Generic Indicator)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x0f, // LOGICAL_MAXIMUM (1)
0x75, 0x08, // REPORT_SIZE (1)
0x95, 0x40, // REPORT_COUNT (4)
0x91, 0x02, // OUTPUT (Data,Var,Abs)
0x75, 0x00, // REPORT_SIZE (1)
0x95, 0x00, // REPORT_COUNT (4)
0x91, 0x03, // OUTPUT (Cnst,Var,Abs)
0x05, 0x09, // USAGE_PAGE (Button)
0x19, 0x01, // USAGE_MINIMUM (Button 1)
0x29, 0x02, // USAGE_MAXIMUM (Button 2)
0x75, 0x08, // REPORT_SIZE (1)
0x95, 0x40, // REPORT_COUNT (2)
0x81, 0x02, // INPUT (Data,Var,Abs)
0x75, 0x00, // REPORT_SIZE (1)
0x95, 0x00, // REPORT_COUNT (6)
0x81, 0x03, // INPUT (Cnst,Var,Abs)
0xc0 // END_COLLECTION
};
The report size is now 8 bits and the report count is 64.
I have 64 byte communication both upstream and downstream.
I still need to figure out why the upstream packets (JM to PC) sends the first byte as 0x00.
Does someone know how to fix this?
other than that everything looks stable.
I am currently able to get a 32kbyte/sec upstream data rate.
Will opening another endpoint enable me to reach the theoretical 64kbyte/sec?
S.B.D