# extracted using hid-example.c + https://eleccelerator.com/usbdescreqparser/ 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 0x09, 0x0E, // Usage (0x0E) 0xA1, 0x01, // Collection (Application) 0x85, 0x01, // Report ID (1) 0x05, 0x0D, // Usage Page (Digitizer) 0x09, 0x21, // Usage (Puck) 0xA1, 0x02, // Collection (Logical) 0x15, 0x00, // Logical Minimum (0) 0x25, 0x01, // Logical Maximum (1) 0x75, 0x01, // Report Size (1) 0x95, 0x01, // Report Count (1) 0xA1, 0x00, // Collection (Physical) 0x05, 0x09, // Usage Page (Button) 0x09, 0x01, // Usage (0x01) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x05, 0x0D, // Usage Page (Digitizer) 0x09, 0x33, // Usage (Touch) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x95, 0x06, // Report Count (6) 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0xA1, 0x02, // Collection (Logical) 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 0x09, 0x37, // Usage (Dial) 0x16, 0x01, 0x80, // Logical Minimum (-32767) 0x26, 0xFF, 0x7F, // Logical Maximum (32767) 0x75, 0x10, // Report Size (16) 0x95, 0x01, // Report Count (1) 0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) 0x35, 0x00, // Physical Minimum (0) 0x46, 0x10, 0x0E, // Physical Maximum (3600) 0x15, 0x00, // Logical Minimum (0) 0x26, 0x10, 0x0E, // Logical Maximum (3600) 0x09, 0x48, // Usage (0x48) 0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0x45, 0x00, // Physical Maximum (0) 0xC0, // End Collection 0x55, 0x0E, // Unit Exponent (-2) 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 0x46, 0x00, 0x00, // Physical Maximum (0) 0x26, 0x00, 0x00, // Logical Maximum (0) 0x09, 0x30, // Usage (X) 0x81, 0x42, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,Null State) 0x09, 0x31, // Usage (Y) 0x46, 0x00, 0x00, // Physical Maximum (0) 0x26, 0x00, 0x00, // Logical Maximum (0) 0x81, 0x42, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,Null State) 0x05, 0x0D, // Usage Page (Digitizer) 0x09, 0x48, // Usage (0x48) 0x15, 0x3A, // Logical Minimum (58) 0x25, 0x3A, // Logical Maximum (58) 0x75, 0x08, // Report Size (8) 0x55, 0x0F, // Unit Exponent (-1) 0x35, 0x3A, // Physical Minimum (58) 0x45, 0x3A, // Physical Maximum (58) 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x55, 0x00, // Unit Exponent (0) 0x65, 0x00, // Unit (None) 0x35, 0x00, // Physical Minimum (0) 0x45, 0x00, // Physical Maximum (0) 0x05, 0x0E, // Usage Page (Reserved 0x0E) 0x09, 0x01, // Usage (0x01) 0xA1, 0x02, // Collection (Logical) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x09, 0x24, // Usage (0x24) 0xB1, 0x42, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,Null State,Non-volatile) 0x09, 0x24, // Usage (0x24) 0x91, 0x42, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,Null State,Non-volatile) 0x15, 0x01, // Logical Minimum (1) 0x25, 0x07, // Logical Maximum (7) 0x09, 0x20, // Usage (0x20) 0xB1, 0x42, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,Null State,Non-volatile) 0x09, 0x21, // Usage (0x21) 0x91, 0x42, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,Null State,Non-volatile) 0x25, 0x0A, // Logical Maximum (10) 0x09, 0x28, // Usage (0x28) 0xB1, 0x42, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,Null State,Non-volatile) 0x75, 0x10, // Report Size (16) 0x26, 0xD0, 0x07, // Logical Maximum (2000) 0x09, 0x25, // Usage (0x25) 0xB1, 0x42, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,Null State,Non-volatile) 0x09, 0x25, // Usage (0x25) 0x91, 0x42, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,Null State,Non-volatile) 0x85, 0x02, // Report ID (2) 0x75, 0x20, // Report Size (32) 0x17, 0x37, 0x00, 0x01, 0x00, // Logical Minimum (65590) 0x27, 0x37, 0x00, 0x01, 0x00, // Logical Maximum (65590) 0x09, 0x22, // Usage (0x22) 0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0x09, 0x11, // Usage (0x11) 0xA1, 0x02, // Collection (Logical) 0x05, 0x0A, // Usage Page (Ordinal) 0x95, 0x03, // Report Count (3) 0x09, 0x03, // Usage (0x03) 0x09, 0x04, // Usage (0x04) 0x09, 0x05, // Usage (0x05) 0x75, 0x08, // Report Size (8) 0x15, 0x00, // Logical Minimum (0) 0x25, 0xFF, // Logical Maximum (-1) 0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0xC0, // End Collection 0x05, 0x0E, // Usage Page (Reserved 0x0E) 0x09, 0x10, // Usage (0x10) 0xA1, 0x02, // Collection (Logical) 0x05, 0x0A, // Usage Page (Ordinal) 0x95, 0x01, // Report Count (1) 0x15, 0x03, // Logical Minimum (3) 0x25, 0x03, // Logical Maximum (3) 0x36, 0x03, 0x10, // Physical Minimum (4099) 0x46, 0x03, 0x10, // Physical Maximum (4099) 0x09, 0x03, // Usage (0x03) 0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0x15, 0x04, // Logical Minimum (4) 0x25, 0x04, // Logical Maximum (4) 0x36, 0x04, 0x10, // Physical Minimum (4100) 0x46, 0x04, 0x10, // Physical Maximum (4100) 0x09, 0x04, // Usage (0x04) 0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0x15, 0x05, // Logical Minimum (5) 0x25, 0x05, // Logical Maximum (5) 0x36, 0x04, 0x10, // Physical Minimum (4100) 0x46, 0x04, 0x10, // Physical Maximum (4100) 0x09, 0x05, // Usage (0x05) 0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0x35, 0x00, // Physical Minimum (0) 0x45, 0x00, // Physical Maximum (0) 0xC0, // End Collection 0xC0, // End Collection 0xC0, // End Collection 0xC0, // End Collection 0xC0, // End Collection 0x06, 0x07, 0xFF, // Usage Page (Vendor Defined 0xFF07) 0x09, 0x70, // Usage (0x70) 0xA1, 0x01, // Collection (Application) 0x85, 0x30, // Report ID (48) 0x15, 0x00, // Logical Minimum (0) 0x25, 0xFF, // Logical Maximum (-1) 0x95, 0x01, // Report Count (1) 0x75, 0x08, // Report Size (8) 0x09, 0x00, // Usage (0x00) 0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0xC0, // End Collection 0x09, 0x71, // Usage (0x71) 0xA1, 0x01, // Collection (Application) 0x15, 0x00, // Logical Minimum (0) 0x25, 0xFF, // Logical Maximum (-1) 0x75, 0x08, // Report Size (8) 0x95, 0x48, // Report Count (72) 0x85, 0x2A, // Report ID (42) 0x09, 0xC6, // Usage (0xC6) 0x82, 0x02, 0x01, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Buffered Bytes) 0x09, 0xC7, // Usage (0xC7) 0x92, 0x02, 0x01, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile,Buffered Bytes) 0x95, 0x34, // Report Count (52) 0x09, 0xC8, // Usage (0xC8) 0xB2, 0x03, 0x01, // Feature (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile,Buffered Bytes) 0x85, 0x2B, // Report ID (43) 0x09, 0xC9, // Usage (0xC9) 0x82, 0x02, 0x01, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Buffered Bytes) 0x09, 0xCA, // Usage (0xCA) 0x92, 0x02, 0x01, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile,Buffered Bytes) 0x09, 0xCB, // Usage (0xCB) 0xB2, 0x02, 0x01, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile,Buffered Bytes) 0x17, 0x00, 0x00, 0x00, 0x80, // Logical Minimum (-2147483649) 0x27, 0xFF, 0xFF, 0xFF, 0x7F, // Logical Maximum (2147483646) 0x75, 0x20, // Report Size (32) 0x95, 0x04, // Report Count (4) 0x85, 0x2C, // Report ID (44) 0x19, 0xCC, // Usage Minimum (0xCC) 0x29, 0xCF, // Usage Maximum (0xCF) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x95, 0x04, // Report Count (4) 0x85, 0x2D, // Report ID (45) 0x19, 0xD8, // Usage Minimum (0xD8) 0x29, 0xDB, // Usage Maximum (0xDB) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x95, 0x04, // Report Count (4) 0x19, 0xDC, // Usage Minimum (0xDC) 0x29, 0xDF, // Usage Maximum (0xDF) 0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0x19, 0xE0, // Usage Minimum (0xE0) 0x29, 0xE3, // Usage Maximum (0xE3) 0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0x85, 0x2E, // Report ID (46) 0x19, 0xE4, // Usage Minimum (0xE4) 0x29, 0xE7, // Usage Maximum (0xE7) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x19, 0xE8, // Usage Minimum (0xE8) 0x29, 0xEB, // Usage Maximum (0xEB) 0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0x95, 0x0B, // Report Count (11) 0x19, 0xEC, // Usage Minimum (0xEC) 0x29, 0xEF, // Usage Maximum (0xEF) 0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0x95, 0x04, // Report Count (4) 0x85, 0x2F, // Report ID (47) 0x19, 0xF0, // Usage Minimum (0xF0) 0x29, 0xF3, // Usage Maximum (0xF3) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x19, 0xF4, // Usage Minimum (0xF4) 0x29, 0xF7, // Usage Maximum (0xF7) 0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0x19, 0xF8, // Usage Minimum (0xF8) 0x29, 0xFB, // Usage Maximum (0xFB) 0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0xC0, // End Collection 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 0x09, 0x80, // Usage (Sys Control) 0xA1, 0x01, // Collection (Application) 0x85, 0x32, // Report ID (50) 0x09, 0x82, // Usage (Sys Sleep) 0x09, 0x83, // Usage (Sys Wake Up) 0x15, 0x00, // Logical Minimum (0) 0x25, 0x01, // Logical Maximum (1) 0x95, 0x02, // Report Count (2) 0x75, 0x01, // Report Size (1) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x95, 0x06, // Report Count (6) 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0xC0, // End Collection 0x09, 0x72, // Usage (0x72) 0xA1, 0x01, // Collection (Application) 0x85, 0x31, // Report ID (49) 0x95, 0x0A, // Report Count (10) 0x75, 0x08, // Report Size (8) 0x15, 0x00, // Logical Minimum (0) 0x25, 0xFF, // Logical Maximum (-1) 0x09, 0xC6, // Usage (0xC6) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x09, 0xC7, // Usage (0xC7) 0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0xC0, // End Collection