vJoy HID Report Descriptor



  • Just a dump of the full descriptor for future reference.

    0x05, 0x01,        // Usage Page (Generic Desktop Ctrls)
    0x15, 0x00,        // Logical Minimum (0)
    0x09, 0x04,        // Usage (Joystick)
    0xA1, 0x01,        // Collection (Application)
    0x05, 0x01,        //   Usage Page (Generic Desktop Ctrls)
    0x85, 0x01,        //   Report ID (1)
    0x09, 0x01,        //   Usage (Pointer)
    0x15, 0x00,        //   Logical Minimum (0)
    0x26, 0xFF, 0x7F,  //   Logical Maximum (32767)
    0x75, 0x20,        //   Report Size (32)
    0x95, 0x01,        //   Report Count (1)
    0xA1, 0x00,        //   Collection (Physical)
    0x09, 0x30,        //     Usage (X)
    0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x09, 0x31,        //     Usage (Y)
    0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x09, 0x32,        //     Usage (Z)
    0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x09, 0x33,        //     Usage (Rx)
    0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x09, 0x34,        //     Usage (Ry)
    0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x09, 0x35,        //     Usage (Rz)
    0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x09, 0x36,        //     Usage (Slider)
    0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x09, 0x37,        //     Usage (Dial)
    0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0xC0,              //   End Collection
    0x75, 0x20,        //   Report Size (32)
    0x95, 0x04,        //   Report Count (4)
    0x81, 0x01,        //   Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x05, 0x09,        //   Usage Page (Button)
    0x15, 0x00,        //   Logical Minimum (0)
    0x25, 0x01,        //   Logical Maximum (1)
    0x55, 0x00,        //   Unit Exponent (0)
    0x65, 0x00,        //   Unit (None)
    0x19, 0x00,        //   Usage Minimum (0x00)
    0x29, 0x00,        //   Usage Maximum (0x00)
    0x75, 0x01,        //   Report Size (1)
    0x95, 0x00,        //   Report Count (0)
    0x81, 0x02,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x75, 0x80,        //   Report Size (-128)
    0x95, 0x01,        //   Report Count (1)
    0x81, 0x01,        //   Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x05, 0x0F,        //   Usage Page (PID Page)
    0x09, 0x92,        //   Usage (0x92)
    0xA1, 0x02,        //   Collection (Logical)
    0x85, 0x12,        //     Report ID (18)
    0x09, 0x9F,        //     Usage (0x9F)
    0x09, 0xA0,        //     Usage (0xA0)
    0x09, 0xA4,        //     Usage (0xA4)
    0x09, 0xA5,        //     Usage (0xA5)
    0x09, 0xA6,        //     Usage (0xA6)
    0x15, 0x00,        //     Logical Minimum (0)
    0x25, 0x01,        //     Logical Maximum (1)
    0x35, 0x00,        //     Physical Minimum (0)
    0x45, 0x01,        //     Physical Maximum (1)
    0x75, 0x01,        //     Report Size (1)
    0x95, 0x05,        //     Report Count (5)
    0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x95, 0x03,        //     Report Count (3)
    0x81, 0x03,        //     Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x09, 0x94,        //     Usage (0x94)
    0x15, 0x00,        //     Logical Minimum (0)
    0x25, 0x01,        //     Logical Maximum (1)
    0x35, 0x00,        //     Physical Minimum (0)
    0x45, 0x01,        //     Physical Maximum (1)
    0x75, 0x01,        //     Report Size (1)
    0x95, 0x01,        //     Report Count (1)
    0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x09, 0x22,        //     Usage (0x22)
    0x15, 0x01,        //     Logical Minimum (1)
    0x25, 0x28,        //     Logical Maximum (40)
    0x35, 0x01,        //     Physical Minimum (1)
    0x45, 0x28,        //     Physical Maximum (40)
    0x75, 0x07,        //     Report Size (7)
    0x95, 0x01,        //     Report Count (1)
    0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0xC0,              //   End Collection
    0x09, 0x21,        //   Usage (0x21)
    0xA1, 0x02,        //   Collection (Logical)
    0x85, 0x11,        //     Report ID (17)
    0x09, 0x22,        //     Usage (0x22)
    0x15, 0x01,        //     Logical Minimum (1)
    0x25, 0x28,        //     Logical Maximum (40)
    0x35, 0x01,        //     Physical Minimum (1)
    0x45, 0x28,        //     Physical Maximum (40)
    0x75, 0x08,        //     Report Size (8)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x25,        //     Usage (0x25)
    0xA1, 0x02,        //     Collection (Logical)
    0x09, 0x26,        //       Usage (0x26)
    0x09, 0x27,        //       Usage (0x27)
    0x09, 0x30,        //       Usage (0x30)
    0x09, 0x31,        //       Usage (0x31)
    0x09, 0x32,        //       Usage (0x32)
    0x09, 0x33,        //       Usage (0x33)
    0x09, 0x34,        //       Usage (0x34)
    0x09, 0x40,        //       Usage (0x40)
    0x09, 0x41,        //       Usage (0x41)
    0x09, 0x42,        //       Usage (0x42)
    0x09, 0x43,        //       Usage (0x43)
    0x09, 0x29,        //       Usage (0x29)
    0x25, 0x0C,        //       Logical Maximum (12)
    0x15, 0x01,        //       Logical Minimum (1)
    0x35, 0x01,        //       Physical Minimum (1)
    0x45, 0x0C,        //       Physical Maximum (12)
    0x75, 0x08,        //       Report Size (8)
    0x95, 0x01,        //       Report Count (1)
    0x91, 0x00,        //       Output (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0xC0,              //     End Collection
    0x09, 0x50,        //     Usage (0x50)
    0x09, 0x54,        //     Usage (0x54)
    0x09, 0x51,        //     Usage (0x51)
    0x15, 0x00,        //     Logical Minimum (0)
    0x26, 0xFF, 0x7F,  //     Logical Maximum (32767)
    0x35, 0x00,        //     Physical Minimum (0)
    0x46, 0xFF, 0x7F,  //     Physical Maximum (32767)
    0x66, 0x03, 0x10,  //     Unit (System: English Linear, Time: Seconds)
    0x55, 0xFD,        //     Unit Exponent
    0x75, 0x10,        //     Report Size (16)
    0x95, 0x03,        //     Report Count (3)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x55, 0x00,        //     Unit Exponent (0)
    0x66, 0x00, 0x00,  //     Unit (None)
    0x09, 0x52,        //     Usage (0x52)
    0x15, 0x00,        //     Logical Minimum (0)
    0x26, 0xFF, 0x00,  //     Logical Maximum (255)
    0x35, 0x00,        //     Physical Minimum (0)
    0x46, 0x10, 0x27,  //     Physical Maximum (10000)
    0x75, 0x08,        //     Report Size (8)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x53,        //     Usage (0x53)
    0x15, 0x01,        //     Logical Minimum (1)
    0x25, 0x08,        //     Logical Maximum (8)
    0x35, 0x01,        //     Physical Minimum (1)
    0x45, 0x08,        //     Physical Maximum (8)
    0x75, 0x08,        //     Report Size (8)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x55,        //     Usage (0x55)
    0xA1, 0x02,        //     Collection (Logical)
    0x05, 0x01,        //       Usage Page (Generic Desktop Ctrls)
    0x09, 0x30,        //       Usage (X)
    0x09, 0x31,        //       Usage (Y)
    0x15, 0x00,        //       Logical Minimum (0)
    0x25, 0x01,        //       Logical Maximum (1)
    0x75, 0x01,        //       Report Size (1)
    0x95, 0x02,        //       Report Count (2)
    0x91, 0x02,        //       Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0xC0,              //     End Collection
    0x05, 0x0F,        //     Usage Page (PID Page)
    0x09, 0x56,        //     Usage (0x56)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x95, 0x05,        //     Report Count (5)
    0x91, 0x03,        //     Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x57,        //     Usage (0x57)
    0xA1, 0x02,        //     Collection (Logical)
    0x0B, 0x01, 0x00, 0x0A, 0x00,  //       Usage (0x0A0001)
    0x0B, 0x02, 0x00, 0x0A, 0x00,  //       Usage (0x0A0002)
    0x66, 0x14, 0x00,  //       Unit (System: English Rotation, Length: Centimeter)
    0x55, 0xFE,        //       Unit Exponent
    0x15, 0x00,        //       Logical Minimum (0)
    0x26, 0xFF, 0x00,  //       Logical Maximum (255)
    0x35, 0x00,        //       Physical Minimum (0)
    0x47, 0xA0, 0x8C, 0x00, 0x00,  //       Physical Maximum (35999)
    0x66, 0x00, 0x00,  //       Unit (None)
    0x75, 0x08,        //       Report Size (8)
    0x95, 0x02,        //       Report Count (2)
    0x91, 0x02,        //       Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x55, 0x00,        //       Unit Exponent (0)
    0x66, 0x00, 0x00,  //       Unit (None)
    0xC0,              //     End Collection
    0x05, 0x0F,        //     Usage Page (PID Page)
    0x09, 0x58,        //     Usage (0x58)
    0xA1, 0x02,        //     Collection (Logical)
    0x0B, 0x01, 0x00, 0x0A, 0x00,  //       Usage (0x0A0001)
    0x0B, 0x02, 0x00, 0x0A, 0x00,  //       Usage (0x0A0002)
    0x26, 0xFD, 0x7F,  //       Logical Maximum (32765)
    0x75, 0x10,        //       Report Size (16)
    0x95, 0x02,        //       Report Count (2)
    0x91, 0x02,        //       Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0xC0,              //     End Collection
    0xC0,              //   End Collection
    0x09, 0x5A,        //   Usage (0x5A)
    0xA1, 0x02,        //   Collection (Logical)
    0x85, 0x12,        //     Report ID (18)
    0x09, 0x22,        //     Usage (0x22)
    0x15, 0x01,        //     Logical Minimum (1)
    0x25, 0x28,        //     Logical Maximum (40)
    0x35, 0x01,        //     Physical Minimum (1)
    0x45, 0x28,        //     Physical Maximum (40)
    0x75, 0x08,        //     Report Size (8)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x5B,        //     Usage (0x5B)
    0x09, 0x5D,        //     Usage (0x5D)
    0x16, 0x00, 0x00,  //     Logical Minimum (0)
    0x26, 0x10, 0x27,  //     Logical Maximum (10000)
    0x36, 0x00, 0x00,  //     Physical Minimum (0)
    0x46, 0x10, 0x27,  //     Physical Maximum (10000)
    0x75, 0x10,        //     Report Size (16)
    0x95, 0x02,        //     Report Count (2)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x5C,        //     Usage (0x5C)
    0x09, 0x5E,        //     Usage (0x5E)
    0x66, 0x03, 0x10,  //     Unit (System: English Linear, Time: Seconds)
    0x55, 0xFD,        //     Unit Exponent
    0x27, 0xFF, 0x7F, 0x00, 0x00,  //     Logical Maximum (32766)
    0x47, 0xFF, 0x7F, 0x00, 0x00,  //     Physical Maximum (32766)
    0x75, 0x20,        //     Report Size (32)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x45, 0x00,        //     Physical Maximum (0)
    0x66, 0x00, 0x00,  //     Unit (None)
    0x55, 0x00,        //     Unit Exponent (0)
    0xC0,              //   End Collection
    0x09, 0x5F,        //   Usage (0x5F)
    0xA1, 0x02,        //   Collection (Logical)
    0x85, 0x13,        //     Report ID (19)
    0x09, 0x22,        //     Usage (0x22)
    0x15, 0x01,        //     Logical Minimum (1)
    0x25, 0x28,        //     Logical Maximum (40)
    0x35, 0x01,        //     Physical Minimum (1)
    0x45, 0x28,        //     Physical Maximum (40)
    0x75, 0x08,        //     Report Size (8)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x23,        //     Usage (0x23)
    0x15, 0x00,        //     Logical Minimum (0)
    0x25, 0x03,        //     Logical Maximum (3)
    0x35, 0x00,        //     Physical Minimum (0)
    0x45, 0x03,        //     Physical Maximum (3)
    0x75, 0x04,        //     Report Size (4)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x58,        //     Usage (0x58)
    0xA1, 0x02,        //     Collection (Logical)
    0x0B, 0x01, 0x00, 0x0A, 0x00,  //       Usage (0x0A0001)
    0x0B, 0x02, 0x00, 0x0A, 0x00,  //       Usage (0x0A0002)
    0x75, 0x02,        //       Report Size (2)
    0x95, 0x02,        //       Report Count (2)
    0x91, 0x02,        //       Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0xC0,              //     End Collection
    0x16, 0xF0, 0xD8,  //     Logical Minimum (-10000)
    0x26, 0x10, 0x27,  //     Logical Maximum (10000)
    0x36, 0xF0, 0xD8,  //     Physical Minimum (-10000)
    0x46, 0x10, 0x27,  //     Physical Maximum (10000)
    0x09, 0x60,        //     Usage (0x60)
    0x75, 0x10,        //     Report Size (16)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x36, 0xF0, 0xD8,  //     Physical Minimum (-10000)
    0x46, 0x10, 0x27,  //     Physical Maximum (10000)
    0x09, 0x61,        //     Usage (0x61)
    0x09, 0x62,        //     Usage (0x62)
    0x95, 0x02,        //     Report Count (2)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x16, 0x00, 0x00,  //     Logical Minimum (0)
    0x26, 0x10, 0x27,  //     Logical Maximum (10000)
    0x36, 0x00, 0x00,  //     Physical Minimum (0)
    0x46, 0x10, 0x27,  //     Physical Maximum (10000)
    0x09, 0x63,        //     Usage (0x63)
    0x09, 0x64,        //     Usage (0x64)
    0x75, 0x10,        //     Report Size (16)
    0x95, 0x02,        //     Report Count (2)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x65,        //     Usage (0x65)
    0x16, 0x00, 0x00,  //     Logical Minimum (0)
    0x26, 0x10, 0x27,  //     Logical Maximum (10000)
    0x36, 0x00, 0x00,  //     Physical Minimum (0)
    0x46, 0x10, 0x27,  //     Physical Maximum (10000)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0xC0,              //   End Collection
    0x09, 0x6E,        //   Usage (0x6E)
    0xA1, 0x02,        //   Collection (Logical)
    0x85, 0x14,        //     Report ID (20)
    0x09, 0x22,        //     Usage (0x22)
    0x15, 0x01,        //     Logical Minimum (1)
    0x25, 0x28,        //     Logical Maximum (40)
    0x35, 0x01,        //     Physical Minimum (1)
    0x45, 0x28,        //     Physical Maximum (40)
    0x75, 0x08,        //     Report Size (8)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x70,        //     Usage (0x70)
    0x16, 0x00, 0x00,  //     Logical Minimum (0)
    0x26, 0x10, 0x27,  //     Logical Maximum (10000)
    0x36, 0x00, 0x00,  //     Physical Minimum (0)
    0x46, 0x10, 0x27,  //     Physical Maximum (10000)
    0x75, 0x10,        //     Report Size (16)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x6F,        //     Usage (0x6F)
    0x16, 0xF0, 0xD8,  //     Logical Minimum (-10000)
    0x26, 0x10, 0x27,  //     Logical Maximum (10000)
    0x36, 0xF0, 0xD8,  //     Physical Minimum (-10000)
    0x46, 0x10, 0x27,  //     Physical Maximum (10000)
    0x95, 0x01,        //     Report Count (1)
    0x75, 0x10,        //     Report Size (16)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x71,        //     Usage (0x71)
    0x66, 0x14, 0x00,  //     Unit (System: English Rotation, Length: Centimeter)
    0x55, 0xFE,        //     Unit Exponent
    0x15, 0x00,        //     Logical Minimum (0)
    0x27, 0x9F, 0x8C, 0x00, 0x00,  //     Logical Maximum (35998)
    0x35, 0x00,        //     Physical Minimum (0)
    0x47, 0x9F, 0x8C, 0x00, 0x00,  //     Physical Maximum (35998)
    0x75, 0x10,        //     Report Size (16)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x72,        //     Usage (0x72)
    0x15, 0x00,        //     Logical Minimum (0)
    0x27, 0xFF, 0x7F, 0x00, 0x00,  //     Logical Maximum (32766)
    0x35, 0x00,        //     Physical Minimum (0)
    0x47, 0xFF, 0x7F, 0x00, 0x00,  //     Physical Maximum (32766)
    0x66, 0x03, 0x10,  //     Unit (System: English Linear, Time: Seconds)
    0x55, 0xFD,        //     Unit Exponent
    0x75, 0x20,        //     Report Size (32)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x66, 0x00, 0x00,  //     Unit (None)
    0x55, 0x00,        //     Unit Exponent (0)
    0xC0,              //   End Collection
    0x09, 0x73,        //   Usage (0x73)
    0xA1, 0x02,        //   Collection (Logical)
    0x85, 0x15,        //     Report ID (21)
    0x09, 0x22,        //     Usage (0x22)
    0x15, 0x01,        //     Logical Minimum (1)
    0x25, 0x28,        //     Logical Maximum (40)
    0x35, 0x01,        //     Physical Minimum (1)
    0x45, 0x28,        //     Physical Maximum (40)
    0x75, 0x08,        //     Report Size (8)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x70,        //     Usage (0x70)
    0x16, 0xF0, 0xD8,  //     Logical Minimum (-10000)
    0x26, 0x10, 0x27,  //     Logical Maximum (10000)
    0x36, 0xF0, 0xD8,  //     Physical Minimum (-10000)
    0x46, 0x10, 0x27,  //     Physical Maximum (10000)
    0x75, 0x10,        //     Report Size (16)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0xC0,              //   End Collection
    0x09, 0x74,        //   Usage (0x74)
    0xA1, 0x02,        //   Collection (Logical)
    0x85, 0x16,        //     Report ID (22)
    0x09, 0x22,        //     Usage (0x22)
    0x15, 0x01,        //     Logical Minimum (1)
    0x25, 0x28,        //     Logical Maximum (40)
    0x35, 0x01,        //     Physical Minimum (1)
    0x45, 0x28,        //     Physical Maximum (40)
    0x75, 0x08,        //     Report Size (8)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x75,        //     Usage (0x75)
    0x09, 0x76,        //     Usage (0x76)
    0x16, 0xF0, 0xD8,  //     Logical Minimum (-10000)
    0x26, 0x10, 0x27,  //     Logical Maximum (10000)
    0x36, 0xF0, 0xD8,  //     Physical Minimum (-10000)
    0x46, 0x10, 0x27,  //     Physical Maximum (10000)
    0x75, 0x10,        //     Report Size (16)
    0x95, 0x02,        //     Report Count (2)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0xC0,              //   End Collection
    0x09, 0x68,        //   Usage (0x68)
    0xA1, 0x02,        //   Collection (Logical)
    0x85, 0x17,        //     Report ID (23)
    0x09, 0x22,        //     Usage (0x22)
    0x15, 0x01,        //     Logical Minimum (1)
    0x25, 0x28,        //     Logical Maximum (40)
    0x35, 0x01,        //     Physical Minimum (1)
    0x45, 0x28,        //     Physical Maximum (40)
    0x75, 0x08,        //     Report Size (8)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x6C,        //     Usage (0x6C)
    0x15, 0x00,        //     Logical Minimum (0)
    0x26, 0x10, 0x27,  //     Logical Maximum (10000)
    0x35, 0x00,        //     Physical Minimum (0)
    0x46, 0x10, 0x27,  //     Physical Maximum (10000)
    0x75, 0x10,        //     Report Size (16)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x69,        //     Usage (0x69)
    0x15, 0x81,        //     Logical Minimum (-127)
    0x25, 0x7F,        //     Logical Maximum (127)
    0x35, 0x00,        //     Physical Minimum (0)
    0x46, 0xFF, 0x00,  //     Physical Maximum (255)
    0x75, 0x08,        //     Report Size (8)
    0x95, 0x0C,        //     Report Count (12)
    0x92, 0x02, 0x01,  //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile,Buffered Bytes)
    0xC0,              //   End Collection
    0x09, 0x66,        //   Usage (0x66)
    0xA1, 0x02,        //   Collection (Logical)
    0x85, 0x18,        //     Report ID (24)
    0x05, 0x01,        //     Usage Page (Generic Desktop Ctrls)
    0x09, 0x30,        //     Usage (X)
    0x09, 0x31,        //     Usage (Y)
    0x15, 0x81,        //     Logical Minimum (-127)
    0x25, 0x7F,        //     Logical Maximum (127)
    0x35, 0x00,        //     Physical Minimum (0)
    0x46, 0xFF, 0x00,  //     Physical Maximum (255)
    0x75, 0x08,        //     Report Size (8)
    0x95, 0x02,        //     Report Count (2)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0xC0,              //   End Collection
    0x05, 0x0F,        //   Usage Page (PID Page)
    0x09, 0x77,        //   Usage (0x77)
    0xA1, 0x02,        //   Collection (Logical)
    0x85, 0x1A,        //     Report ID (26)
    0x09, 0x22,        //     Usage (0x22)
    0x15, 0x01,        //     Logical Minimum (1)
    0x25, 0x28,        //     Logical Maximum (40)
    0x35, 0x01,        //     Physical Minimum (1)
    0x45, 0x28,        //     Physical Maximum (40)
    0x75, 0x08,        //     Report Size (8)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x78,        //     Usage (0x78)
    0xA1, 0x02,        //     Collection (Logical)
    0x09, 0x79,        //       Usage (0x79)
    0x09, 0x7A,        //       Usage (0x7A)
    0x09, 0x7B,        //       Usage (0x7B)
    0x15, 0x01,        //       Logical Minimum (1)
    0x25, 0x03,        //       Logical Maximum (3)
    0x75, 0x08,        //       Report Size (8)
    0x95, 0x01,        //       Report Count (1)
    0x91, 0x00,        //       Output (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0xC0,              //     End Collection
    0x09, 0x7C,        //     Usage (0x7C)
    0x15, 0x00,        //     Logical Minimum (0)
    0x26, 0xFF, 0x00,  //     Logical Maximum (255)
    0x35, 0x00,        //     Physical Minimum (0)
    0x46, 0xFF, 0x00,  //     Physical Maximum (255)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0xC0,              //   End Collection
    0x09, 0x90,        //   Usage (0x90)
    0xA1, 0x02,        //   Collection (Logical)
    0x85, 0x1B,        //     Report ID (27)
    0x09, 0x22,        //     Usage (0x22)
    0x25, 0x28,        //     Logical Maximum (40)
    0x15, 0x01,        //     Logical Minimum (1)
    0x35, 0x01,        //     Physical Minimum (1)
    0x45, 0x28,        //     Physical Maximum (40)
    0x75, 0x08,        //     Report Size (8)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0xC0,              //   End Collection
    0x09, 0x96,        //   Usage (0x96)
    0xA1, 0x02,        //   Collection (Logical)
    0x85, 0x1C,        //     Report ID (28)
    0x09, 0x97,        //     Usage (0x97)
    0x09, 0x98,        //     Usage (0x98)
    0x09, 0x99,        //     Usage (0x99)
    0x09, 0x9A,        //     Usage (0x9A)
    0x09, 0x9B,        //     Usage (0x9B)
    0x09, 0x9C,        //     Usage (0x9C)
    0x15, 0x01,        //     Logical Minimum (1)
    0x25, 0x06,        //     Logical Maximum (6)
    0x75, 0x08,        //     Report Size (8)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x00,        //     Output (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0xC0,              //   End Collection
    0x09, 0x7D,        //   Usage (0x7D)
    0xA1, 0x02,        //   Collection (Logical)
    0x85, 0x1D,        //     Report ID (29)
    0x09, 0x7E,        //     Usage (0x7E)
    0x15, 0x00,        //     Logical Minimum (0)
    0x26, 0xFF, 0x00,  //     Logical Maximum (255)
    0x35, 0x00,        //     Physical Minimum (0)
    0x46, 0x10, 0x27,  //     Physical Maximum (10000)
    0x75, 0x08,        //     Report Size (8)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0xC0,              //   End Collection
    0x09, 0x6B,        //   Usage (0x6B)
    0xA1, 0x02,        //   Collection (Logical)
    0x85, 0x1E,        //     Report ID (30)
    0x09, 0x22,        //     Usage (0x22)
    0x15, 0x01,        //     Logical Minimum (1)
    0x25, 0x28,        //     Logical Maximum (40)
    0x35, 0x01,        //     Physical Minimum (1)
    0x45, 0x28,        //     Physical Maximum (40)
    0x75, 0x08,        //     Report Size (8)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x6D,        //     Usage (0x6D)
    0x15, 0x00,        //     Logical Minimum (0)
    0x26, 0xFF, 0x00,  //     Logical Maximum (255)
    0x35, 0x00,        //     Physical Minimum (0)
    0x46, 0xFF, 0x00,  //     Physical Maximum (255)
    0x75, 0x08,        //     Report Size (8)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x51,        //     Usage (0x51)
    0x66, 0x03, 0x10,  //     Unit (System: English Linear, Time: Seconds)
    0x55, 0xFD,        //     Unit Exponent
    0x15, 0x00,        //     Logical Minimum (0)
    0x26, 0xFF, 0x7F,  //     Logical Maximum (32767)
    0x35, 0x00,        //     Physical Minimum (0)
    0x46, 0xFF, 0x7F,  //     Physical Maximum (32767)
    0x75, 0x10,        //     Report Size (16)
    0x95, 0x01,        //     Report Count (1)
    0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x55, 0x00,        //     Unit Exponent (0)
    0x66, 0x00, 0x00,  //     Unit (None)
    0xC0,              //   End Collection
    0x09, 0xAB,        //   Usage (0xAB)
    0xA1, 0x02,        //   Collection (Logical)
    0x85, 0x11,        //     Report ID (17)
    0x09, 0x25,        //     Usage (0x25)
    0xA1, 0x02,        //     Collection (Logical)
    0x09, 0x26,        //       Usage (0x26)
    0x09, 0x27,        //       Usage (0x27)
    0x09, 0x30,        //       Usage (0x30)
    0x09, 0x31,        //       Usage (0x31)
    0x09, 0x32,        //       Usage (0x32)
    0x09, 0x33,        //       Usage (0x33)
    0x09, 0x34,        //       Usage (0x34)
    0x09, 0x40,        //       Usage (0x40)
    0x09, 0x41,        //       Usage (0x41)
    0x09, 0x42,        //       Usage (0x42)
    0x09, 0x43,        //       Usage (0x43)
    0x09, 0x29,        //       Usage (0x29)
    0x25, 0x0C,        //       Logical Maximum (12)
    0x15, 0x01,        //       Logical Minimum (1)
    0x35, 0x01,        //       Physical Minimum (1)
    0x45, 0x0C,        //       Physical Maximum (12)
    0x75, 0x08,        //       Report Size (8)
    0x95, 0x01,        //       Report Count (1)
    0xB1, 0x00,        //       Feature (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0xC0,              //     End Collection
    0x05, 0x01,        //     Usage Page (Generic Desktop Ctrls)
    0x09, 0x3B,        //     Usage (Byte Count)
    0x15, 0x00,        //     Logical Minimum (0)
    0x26, 0xFF, 0x01,  //     Logical Maximum (511)
    0x35, 0x00,        //     Physical Minimum (0)
    0x46, 0xFF, 0x01,  //     Physical Maximum (511)
    0x75, 0x0A,        //     Report Size (10)
    0x95, 0x01,        //     Report Count (1)
    0xB1, 0x02,        //     Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x75, 0x06,        //     Report Size (6)
    0xB1, 0x01,        //     Feature (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0xC0,              //   End Collection
    0x05, 0x0F,        //   Usage Page (PID Page)
    0x09, 0x89,        //   Usage (0x89)
    0xA1, 0x02,        //   Collection (Logical)
    0x85, 0x12,        //     Report ID (18)
    0x09, 0x22,        //     Usage (0x22)
    0x25, 0x28,        //     Logical Maximum (40)
    0x15, 0x01,        //     Logical Minimum (1)
    0x35, 0x01,        //     Physical Minimum (1)
    0x45, 0x28,        //     Physical Maximum (40)
    0x75, 0x08,        //     Report Size (8)
    0x95, 0x01,        //     Report Count (1)
    0xB1, 0x02,        //     Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x8B,        //     Usage (0x8B)
    0xA1, 0x02,        //     Collection (Logical)
    0x09, 0x8C,        //       Usage (0x8C)
    0x09, 0x8D,        //       Usage (0x8D)
    0x09, 0x8E,        //       Usage (0x8E)
    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 (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0xC0,              //     End Collection
    0x09, 0xAC,        //     Usage (0xAC)
    0x15, 0x00,        //     Logical Minimum (0)
    0x27, 0xFF, 0xFF, 0x00, 0x00,  //     Logical Maximum (65534)
    0x35, 0x00,        //     Physical Minimum (0)
    0x47, 0xFF, 0xFF, 0x00, 0x00,  //     Physical Maximum (65534)
    0x75, 0x10,        //     Report Size (16)
    0x95, 0x01,        //     Report Count (1)
    0xB1, 0x00,        //     Feature (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0xC0,              //   End Collection
    0x09, 0x7F,        //   Usage (0x7F)
    0xA1, 0x02,        //   Collection (Logical)
    0x85, 0x13,        //     Report ID (19)
    0x09, 0x80,        //     Usage (0x80)
    0x75, 0x10,        //     Report Size (16)
    0x95, 0x01,        //     Report Count (1)
    0x15, 0x00,        //     Logical Minimum (0)
    0x35, 0x00,        //     Physical Minimum (0)
    0x27, 0xFF, 0xFF, 0x00, 0x00,  //     Logical Maximum (65534)
    0x47, 0xFF, 0xFF, 0x00, 0x00,  //     Physical Maximum (65534)
    0xB1, 0x02,        //     Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0x83,        //     Usage (0x83)
    0x26, 0xFF, 0x00,  //     Logical Maximum (255)
    0x46, 0xFF, 0x00,  //     Physical Maximum (255)
    0x75, 0x08,        //     Report Size (8)
    0x95, 0x01,        //     Report Count (1)
    0xB1, 0x02,        //     Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x09, 0xA9,        //     Usage (0xA9)
    0x09, 0xAA,        //     Usage (0xAA)
    0x75, 0x01,        //     Report Size (1)
    0x95, 0x02,        //     Report Count (2)
    0x15, 0x00,        //     Logical Minimum (0)
    0x25, 0x01,        //     Logical Maximum (1)
    0x35, 0x00,        //     Physical Minimum (0)
    0x45, 0x01,        //     Physical Maximum (1)
    0xB1, 0x02,        //     Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x75, 0x06,        //     Report Size (6)
    0x95, 0x01,        //     Report Count (1)
    0xB1, 0x03,        //     Feature (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0xC0,              //   End Collection
    0xC0,              // End Collection
    
    // 1322 bytes
    
    

Log in to reply