ok after a lot of researching I found these two are the cause of my size issue
the get (feature rID:2 len132)
has the wrong size and it is getting the size from the report id 18
at first I though the 18 was rolling over 15 making it a 2 but changing the report ID didnt fix that. So I'm not sure how these two are conflicting.
The reason I know this is the problem is because setting the report 17 size to another number changes report id 2.
0xa1, 0x01, // COLLECTION (Application)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)
0x75, 0x08, // REPORT_SIZE (
0x85, 0x11, // REPORT_ID (17)
0x95, 0x79, // REPORT_COUNT (127) -- the max
0x09, 0x00, // USAGE (Undefined)
0xb2, 0x02, 0x01, // FEATURE (Data,Var,Abs,Buf)
0x85, 0x12, // REPORT_ID (18)
0x95, 0x80, // REPORT_COUNT (131) -- the max
0x09, 0x00, // USAGE (Undefined)
0xb2, 0x02, 0x01, // FEATURE (Data,Var,Abs,Buf)
0xc0, // END_COLLECTION
0x05,0x0F, // Usage Page Physical Interface
0x09,0x89, // Usage Block Load Status
0xA1,0x02, // Collection Datalink
0x85,0x02, // Report ID 2
0x09,0x22, // Usage Effect Block Index
0x25,0x28, // Logical Maximum 28h (40d)
0x15,0x01, // Logical Minimum 1
0x35,0x01, // Physical Minimum 1
0x45,0x28, // Physical Maximum 28h (40d)
0x75,0x08, // Report Size 8
0x95,0x01, // Report Count 1
0xB1,0x02, // Feature (Variable)
0x09,0x8B, // Usage Block Load Full
0xA1,0x02, // Collection Datalink
0x09,0x8C, // Usage Block Load Error
0x09,0x8D, // Usage Block Handle
0x09,0x8E, // Usage PID Block Free Report
0x25,0x03, // Logical Maximum 3
0x15,0x01, // Logical Minimum 1
0x35,0x01, // Physical Minimum 1
0x45,0x03, // Physical Maximum 3
0x75,0x08, // Report Size 8
0x95,0x01, // Report Count 1
0xB1,0x00, // Feature
0xC0 , // End Collection
0x09,0xAC, // Usage Undefined
0x15,0x00, // Logical Minimum 0
0x27,0xFF,0xFF,0x00,0x00, // Logical Maximum FFFFh (65535d)
0x35,0x00, // Physical Minimum 0
0x47,0xFF,0xFF,0x00,0x00, // Physical Maximum FFFFh (65535d)
0x75,0x10, // Report Size 10h (16d)
0x95,0x01, // Report Count 1
0xB1,0x00, // Feature
0xC0 , // End Collection
if I remove this conflicting portion it claims 9 bytes but really should be 5.
the entire descriptor itself has too many lines for this form.
***update on the first issue, I was in fact correct. No wonder I was so confused. ****
Using Interrupt- and Bulk-Out endpoints
Interrupt- and Bulk-Out endpoints are used to send stream type data to the device. When the host sends a chunk of data on the endpoint, the function usbFunctionWriteOut() is called. If you use more than one interrupt- or bulk-out endpoint, the endpoint number is passed in the global variable usbRxToken. You must define USB_CFG_IMPLEMENT_FN_WRITEOUT to 1 in usbconfig.h when you use this feature.