BLE Input/Output Maximum HID Report Size

Hi, I'm trying to send 64-byte reports for INPUT and OUTPUT: 1 byte for report ID and 63 bytes of data. However, the HID service code doesn't seem to handle incoming OUTPUT reports or send out outbound INPUT reports when attempting 64-byte reports (or larger). On the other hand, 63-byte reports (and smaller) do work. Any ideas why this may be and if there's a fix?

Parents
  • Here's the relevant portion of the report descriptor:

        0x85, 0x02, /* Report ID */
        0x95, 0x3f,  /*   REPORT COUNT (63) */
        0x75, 0x08,        /*   REPORT_SIZE (8) */
        0x15, 0x00,        /*   LOGICAL_MINIMUM (0) */
        0x26, 0xff, 0x00,  /*   LOGICAL_MAXIMUM (255) */
    	0x09, 0x01,        /*   USAGE (Vendor Usage 1) */
        0x81, 0x02,        /*   INPUT (Data,Var,Abs) */
    
        0x85, 0x02, /* Report ID */
        0x95, 0x3f,   /*   REPORT COUNT (63) */
        0x75, 0x08,        /*   REPORT_SIZE (8) */
        0x15, 0x00,        /*   LOGICAL_MINIMUM (0) */
        0x26, 0xff, 0x00,  /*   LOGICAL_MAXIMUM (255) */
    	0x09, 0x01,        /*   USAGE (Vendor Usage 1) */
        0x91, 0x02,        /*   OUTPUT (Data,Var,Abs) */

Reply
  • Here's the relevant portion of the report descriptor:

        0x85, 0x02, /* Report ID */
        0x95, 0x3f,  /*   REPORT COUNT (63) */
        0x75, 0x08,        /*   REPORT_SIZE (8) */
        0x15, 0x00,        /*   LOGICAL_MINIMUM (0) */
        0x26, 0xff, 0x00,  /*   LOGICAL_MAXIMUM (255) */
    	0x09, 0x01,        /*   USAGE (Vendor Usage 1) */
        0x81, 0x02,        /*   INPUT (Data,Var,Abs) */
    
        0x85, 0x02, /* Report ID */
        0x95, 0x3f,   /*   REPORT COUNT (63) */
        0x75, 0x08,        /*   REPORT_SIZE (8) */
        0x15, 0x00,        /*   LOGICAL_MINIMUM (0) */
        0x26, 0xff, 0x00,  /*   LOGICAL_MAXIMUM (255) */
    	0x09, 0x01,        /*   USAGE (Vendor Usage 1) */
        0x91, 0x02,        /*   OUTPUT (Data,Var,Abs) */

Children
No Data
Related