# SPDX-License-Identifier: GPL-2.0 # fmt: off wacom_pth660_v145 = [ 0x05, 0x01, # . Usage Page (Desktop), 0x09, 0x02, # . Usage (Mouse), 0xA1, 0x01, # . Collection (Application), 0x85, 0x01, # . Report ID (1), 0x09, 0x01, # . Usage (Pointer), 0xA1, 0x00, # . Collection (Physical), 0x05, 0x09, # . Usage Page (Button), 0x19, 0x01, # . Usage Minimum (01h), 0x29, 0x03, # . Usage Maximum (03h), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x01, # . Logical Maximum (1), 0x75, 0x01, # . Report Size (1), 0x95, 0x03, # . Report Count (3), 0x81, 0x02, # . Input (Variable), 0x75, 0x01, # . Report Size (1), 0x95, 0x05, # . Report Count (5), 0x81, 0x03, # . Input (Constant, Variable), 0x05, 0x01, # . Usage Page (Desktop), 0x09, 0x30, # . Usage (X), 0x09, 0x31, # . Usage (Y), 0x15, 0x81, # . Logical Minimum (-127), 0x25, 0x7F, # . Logical Maximum (127), 0x75, 0x08, # . Report Size (8), 0x95, 0x02, # . Report Count (2), 0x81, 0x06, # . Input (Variable, Relative), 0xC0, # . End Collection, 0xC0, # . End Collection, 0x06, 0x0D, 0xFF, # . Usage Page (FF0Dh), 0x09, 0x01, # . Usage (01h), 0xA1, 0x01, # . Collection (Application), 0x85, 0x10, # . Report ID (16), 0x09, 0x20, # . Usage (20h), 0xA1, 0x00, # . Collection (Physical), 0x09, 0x42, # . Usage (42h), 0x09, 0x44, # . Usage (44h), 0x09, 0x5A, # . Usage (5Ah), 0x09, 0x45, # . Usage (45h), 0x09, 0x3C, # . Usage (3Ch), 0x09, 0x32, # . Usage (32h), 0x09, 0x36, # . Usage (36h), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x01, # . Logical Maximum (1), 0x75, 0x01, # . Report Size (1), 0x95, 0x07, # . Report Count (7), 0x81, 0x02, # . Input (Variable), 0x95, 0x01, # . Report Count (1), 0x81, 0x03, # . Input (Constant, Variable), 0x0A, 0x30, 0x01, # . Usage (0130h), 0x65, 0x11, # . Unit (Centimeter), 0x55, 0x0D, # . Unit Exponent (13), 0x35, 0x00, # . Physical Minimum (0), 0x47, 0x80, 0x57, 0x00, 0x00, # . Physical Maximum (22400), 0x15, 0x00, # . Logical Minimum (0), 0x27, 0x00, 0xAF, 0x00, 0x00, # . Logical Maximum (44800), 0x75, 0x18, # . Report Size (24), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x0A, 0x31, 0x01, # . Usage (0131h), 0x47, 0xD0, 0x39, 0x00, 0x00, # . Physical Maximum (14800), 0x27, 0xA0, 0x73, 0x00, 0x00, # . Logical Maximum (29600), 0x81, 0x02, # . Input (Variable), 0x09, 0x30, # . Usage (30h), 0x55, 0x00, # . Unit Exponent (0), 0x65, 0x00, # . Unit, 0x15, 0x00, # . Logical Minimum (0), 0x26, 0xFF, 0x1F, # . Logical Maximum (8191), # !!! Errata: Missing Physical Max = 0 0x75, 0x10, # . Report Size (16), 0x81, 0x02, # . Input (Variable), 0x09, 0x3D, # . Usage (3Dh), 0x09, 0x3E, # . Usage (3Eh), 0x65, 0x14, # . Unit (Degrees), 0x55, 0x00, # . Unit Exponent (0), 0x35, 0xC0, # . Physical Minimum (-64), 0x45, 0x3F, # . Physical Maximum (63), 0x15, 0xC0, # . Logical Minimum (-64), 0x25, 0x3F, # . Logical Maximum (63), 0x75, 0x08, # . Report Size (8), 0x95, 0x02, # . Report Count (2), 0x81, 0x02, # . Input (Variable), 0x09, 0x41, # . Usage (41h), 0x65, 0x14, # . Unit (Degrees), 0x55, 0x00, # . Unit Exponent (0), 0x36, 0x4C, 0xFF, # . Physical Minimum (-180), 0x46, 0xB3, 0x00, # . Physical Maximum (179), 0x16, 0x7C, 0xFC, # . Logical Minimum (-900), 0x26, 0x83, 0x03, # . Logical Maximum (899), 0x75, 0x10, # . Report Size (16), 0x95, 0x01, # . Report Count (1), 0x81, 0x0A, # . Input (Variable, Wrap), 0x0A, 0x03, 0x0D, # . Usage (0D03h), 0x65, 0x00, # . Unit, 0x55, 0x00, # . Unit Exponent (0), 0x15, 0x00, # . Logical Minimum (0), 0x26, 0xFF, 0x07, # . Logical Maximum (2047), # !!! Errata: Missing Physical Min/Max = 0 0x75, 0x10, # . Report Size (16), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x0A, 0x32, 0x01, # . Usage (0132h), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x3F, # . Logical Maximum (63), 0x75, 0x08, # . Report Size (8), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x09, 0x5B, # . Usage (5Bh), 0x09, 0x5C, # . Usage (5Ch), 0x17, 0x00, 0x00, 0x00, 0x80, # . Logical Minimum (-2147483648), 0x27, 0xFF, 0xFF, 0xFF, 0x7F, # . Logical Maximum (2147483647), 0x75, 0x20, # . Report Size (32), 0x95, 0x02, # . Report Count (2), 0x81, 0x02, # . Input (Variable), 0x09, 0x77, # . Usage (77h), 0x15, 0x00, # . Logical Minimum (0), 0x26, 0xFF, 0x0F, # . Logical Maximum (4095), 0x75, 0x10, # . Report Size (16), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0xC0, # . End Collection, 0x85, 0x11, # . Report ID (17), 0x09, 0x39, # . Usage (39h), 0xA1, 0x00, # . Collection (Physical), 0x1A, 0x10, 0x09, # . Usage Minimum (0910h), 0x2A, 0x17, 0x09, # . Usage Maximum (0917h), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x01, # . Logical Maximum (1), 0x75, 0x01, # . Report Size (1), 0x95, 0x08, # . Report Count (8), 0x81, 0x02, # . Input (Variable), 0x1A, 0x40, 0x09, # . Usage Minimum (0940h), 0x2A, 0x47, 0x09, # . Usage Maximum (0947h), 0x81, 0x02, # . Input (Variable), 0x0A, 0x95, 0x09, # . Usage (0995h), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x95, 0x07, # . Report Count (7), 0x81, 0x03, # . Input (Constant, Variable), 0x0A, 0x38, 0x01, # . Usage (0138h), 0x65, 0x14, # . Unit (Degrees), 0x55, 0x00, # . Unit Exponent (0), 0x35, 0x00, # . Physical Minimum (0), 0x46, 0x67, 0x01, # . Physical Maximum (359), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x47, # . Logical Maximum (71), 0x75, 0x07, # . Report Size (7), 0x95, 0x01, # . Report Count (1), 0x81, 0x0A, # . Input (Variable, Wrap), 0x0A, 0x39, 0x01, # . Usage (0139h), 0x65, 0x00, # . Unit, 0x55, 0x00, # . Unit Exponent (0), 0x25, 0x01, # . Logical Maximum (1), # !!! Errata: Missing Physical Max = 0 0x75, 0x01, # . Report Size (1), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x75, 0x08, # . Report Size (8), 0x95, 0x04, # . Report Count (4), 0x81, 0x03, # . Input (Constant, Variable), 0xC0, # . End Collection, 0x85, 0x13, # . Report ID (19), 0x0A, 0x13, 0x10, # . Usage (1013h), 0xA1, 0x00, # . Collection (Physical), 0x0A, 0x3B, 0x04, # . Usage (043Bh), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x64, # . Logical Maximum (100), 0x75, 0x07, # . Report Size (7), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x0A, 0x04, 0x04, # . Usage (0404h), 0x25, 0x01, # . Logical Maximum (1), 0x75, 0x01, # . Report Size (1), 0x81, 0x02, # . Input (Variable), 0x0A, 0x52, 0x04, # . Usage (0452h), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x01, # . Logical Maximum (1), 0x75, 0x01, # . Report Size (1), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x95, 0x06, # . Report Count (6), 0x81, 0x03, # . Input (Constant, Variable), 0x0A, 0x54, 0x04, # . Usage (0454h), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x75, 0x08, # . Report Size (8), 0x95, 0x06, # . Report Count (6), 0x81, 0x03, # . Input (Constant, Variable), 0xC0, # . End Collection, 0x09, 0x0E, # . Usage (0Eh), 0xA1, 0x02, # . Collection (Logical), 0x15, 0x00, # . Logical Minimum (0), 0x85, 0x02, # . Report ID (2), 0x09, 0x01, # . Usage (01h), 0x75, 0x08, # . Report Size (8), 0x25, 0x01, # . Logical Maximum (1), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x03, # . Report ID (3), 0x0A, 0x03, 0x10, # . Usage (1003h), 0x26, 0xFF, 0x00, # . Logical Maximum (255), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x04, # . Report ID (4), 0x0A, 0x04, 0x10, # . Usage (1004h), 0x25, 0x01, # . Logical Maximum (1), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x07, # . Report ID (7), 0x0A, 0x09, 0x10, # . Usage (1009h), 0x25, 0x02, # . Logical Maximum (2), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x95, 0x01, # . Report Count (1), 0xB1, 0x03, # . Feature (Constant, Variable), 0x0A, 0x07, 0x10, # . Usage (1007h), 0x09, 0x00, # . Usage (00h), 0x0A, 0x08, 0x10, # . Usage (1008h), 0x09, 0x00, # . Usage (00h), 0x09, 0x00, # . Usage (00h), 0x09, 0x00, # . Usage (00h), 0x27, 0xFF, 0xFF, 0x00, 0x00, # . Logical Maximum (65535), 0x75, 0x10, # . Report Size (16), 0x95, 0x06, # . Report Count (6), 0xB1, 0x02, # . Feature (Variable), 0x75, 0x08, # . Report Size (8), 0x95, 0x01, # . Report Count (1), 0xB1, 0x03, # . Feature (Constant, Variable), 0x85, 0x0C, # . Report ID (12), 0x0A, 0x30, 0x0D, # . Usage (0D30h), 0x0A, 0x31, 0x0D, # . Usage (0D31h), 0x0A, 0x32, 0x0D, # . Usage (0D32h), 0x0A, 0x33, 0x0D, # . Usage (0D33h), # !!! Errata: Missing Non-zero Physical Max 0x65, 0x11, # . Unit (Centimeter), 0x55, 0x0D, # . Unit Exponent (13), 0x75, 0x10, # . Report Size (16), 0x95, 0x04, # . Report Count (4), 0xB1, 0x03, # . Feature (Constant, Variable), 0x85, 0x0D, # . Report ID (13), 0x65, 0x00, # . Unit, 0x55, 0x00, # . Unit Exponent (0), 0x0A, 0x0D, 0x10, # . Usage (100Dh), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x01, # . Logical Maximum (1), 0x75, 0x08, # . Report Size (8), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x14, # . Report ID (20), 0x0A, 0x14, 0x10, # . Usage (1014h), 0x26, 0xFF, 0x00, # . Logical Maximum (255), 0x95, 0x0D, # . Report Count (13), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x31, # . Report ID (49), 0x0A, 0x31, 0x10, # . Usage (1031h), 0x25, 0x64, # . Logical Maximum (100), 0x95, 0x05, # . Report Count (5), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x32, # . Report ID (50), 0x0A, 0x31, 0x10, # . Usage (1031h), 0x25, 0x64, # . Logical Maximum (100), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x0A, 0x32, 0x10, # . Usage (1032h), 0x25, 0x03, # . Logical Maximum (3), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x34, # . Report ID (52), 0x0A, 0x34, 0x10, # . Usage (1034h), 0x25, 0x01, # . Logical Maximum (1), 0x95, 0x04, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x35, # . Report ID (53), 0x0A, 0x35, 0x10, # . Usage (1035h), 0x26, 0xFF, 0x00, # . Logical Maximum (255), 0x95, 0x0A, # . Report Count (10), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x36, # . Report ID (54), 0x0A, 0x35, 0x10, # . Usage (1035h), 0x26, 0xFF, 0x00, # . Logical Maximum (255), 0x96, 0x01, 0x01, # . Report Count (257), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xCC, # . Report ID (204), 0x0A, 0xCC, 0x10, # . Usage (10CCh), 0x26, 0xFF, 0x00, # . Logical Maximum (255), 0x95, 0x02, # . Report Count (2), 0xB1, 0x02, # . Feature (Variable), 0xC0, # . End Collection, 0x0A, 0xAC, 0x10, # . Usage (10ACh), 0xA1, 0x02, # . Collection (Logical), 0x15, 0x00, # . Logical Minimum (0), 0x26, 0xFF, 0x00, # . Logical Maximum (255), 0x75, 0x08, # . Report Size (8), 0x85, 0xAC, # . Report ID (172), 0x09, 0x00, # . Usage (00h), 0x95, 0xBF, # . Report Count (191), 0x81, 0x02, # . Input (Variable), 0x85, 0x33, # . Report ID (51), 0x09, 0x00, # . Usage (00h), 0x95, 0x12, # . Report Count (18), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x64, # . Report ID (100), 0x09, 0x00, # . Usage (00h), 0x95, 0x0C, # . Report Count (12), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x15, # . Report ID (21), 0x09, 0x00, # . Usage (00h), 0x95, 0x0E, # . Report Count (14), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x12, # . Report ID (18), 0x09, 0x00, # . Usage (00h), 0x95, 0x04, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x16, # . Report ID (22), 0x09, 0x00, # . Usage (00h), 0x95, 0x0E, # . Report Count (14), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x40, # . Report ID (64), 0x09, 0x00, # . Usage (00h), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x41, # . Report ID (65), 0x09, 0x00, # . Usage (00h), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x42, # . Report ID (66), 0x09, 0x00, # . Usage (00h), 0x95, 0x04, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x43, # . Report ID (67), 0x09, 0x00, # . Usage (00h), 0x95, 0x0D, # . Report Count (13), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x44, # . Report ID (68), 0x09, 0x00, # . Usage (00h), 0x95, 0x3F, # . Report Count (63), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x45, # . Report ID (69), 0x09, 0x00, # . Usage (00h), 0x95, 0x20, # . Report Count (32), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x60, # . Report ID (96), 0x09, 0x00, # . Usage (00h), 0x95, 0x3F, # . Report Count (63), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x61, # . Report ID (97), 0x09, 0x00, # . Usage (00h), 0x95, 0x3E, # . Report Count (62), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x62, # . Report ID (98), 0x09, 0x00, # . Usage (00h), 0x95, 0x3E, # . Report Count (62), 0xB1, 0x02, # . Feature (Variable), 0xC0, # . End Collection, 0x85, 0xD0, # . Report ID (208), 0x09, 0x01, # . Usage (01h), 0x96, 0x08, 0x00, # . Report Count (8), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD1, # . Report ID (209), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x01, # . Report Count (260), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD2, # . Report ID (210), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x01, # . Report Count (260), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD3, # . Report ID (211), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x00, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD4, # . Report ID (212), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x00, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD5, # . Report ID (213), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x00, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD6, # . Report ID (214), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x00, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD7, # . Report ID (215), 0x09, 0x01, # . Usage (01h), 0x96, 0x08, 0x00, # . Report Count (8), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD8, # . Report ID (216), 0x09, 0x01, # . Usage (01h), 0x96, 0x0C, 0x00, # . Report Count (12), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD9, # . Report ID (217), 0x09, 0x01, # . Usage (01h), 0x96, 0x00, 0x0A, # . Report Count (2560), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xDA, # . Report ID (218), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x04, # . Report Count (1028), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xDB, # . Report ID (219), 0x09, 0x01, # . Usage (01h), 0x96, 0x06, 0x00, # . Report Count (6), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xDC, # . Report ID (220), 0x09, 0x01, # . Usage (01h), 0x96, 0x02, 0x00, # . Report Count (2), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xDD, # . Report ID (221), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x00, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xDE, # . Report ID (222), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x00, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xDF, # . Report ID (223), 0x09, 0x01, # . Usage (01h), 0x96, 0x22, 0x00, # . Report Count (34), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xE0, # . Report ID (224), 0x09, 0x01, # . Usage (01h), 0x96, 0x01, 0x00, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xE1, # . Report ID (225), 0x09, 0x01, # . Usage (01h), 0x96, 0x02, 0x00, # . Report Count (2), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xE2, # . Report ID (226), 0x09, 0x01, # . Usage (01h), 0x96, 0x02, 0x00, # . Report Count (2), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xE3, # . Report ID (227), 0x09, 0x01, # . Usage (01h), 0x96, 0x02, 0x00, # . Report Count (2), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xE4, # . Report ID (228), 0x09, 0x01, # . Usage (01h), 0x96, 0xFF, 0x01, # . Report Count (511), 0xB1, 0x02, # . Feature (Variable), 0xC0 # . End Collection ] # fmt: on # Report ID (20), Usage (1014h), Report Count (13) -> 15 wacom_pth660_v150 = wacom_pth660_v145.copy() wacom_pth660_v150[0x2CB] = 0x0F # fmt: off wacom_pth860_v145 = [ 0x05, 0x01, # . Usage Page (Desktop), 0x09, 0x02, # . Usage (Mouse), 0xA1, 0x01, # . Collection (Application), 0x85, 0x01, # . Report ID (1), 0x09, 0x01, # . Usage (Pointer), 0xA1, 0x00, # . Collection (Physical), 0x05, 0x09, # . Usage Page (Button), 0x19, 0x01, # . Usage Minimum (01h), 0x29, 0x03, # . Usage Maximum (03h), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x01, # . Logical Maximum (1), 0x75, 0x01, # . Report Size (1), 0x95, 0x03, # . Report Count (3), 0x81, 0x02, # . Input (Variable), 0x95, 0x05, # . Report Count (5), 0x81, 0x03, # . Input (Constant, Variable), 0x05, 0x01, # . Usage Page (Desktop), 0x09, 0x30, # . Usage (X), 0x09, 0x31, # . Usage (Y), 0x15, 0x80, # . Logical Minimum (-128), 0x25, 0x7F, # . Logical Maximum (127), 0x75, 0x08, # . Report Size (8), 0x95, 0x02, # . Report Count (2), 0x81, 0x06, # . Input (Variable, Relative), 0xC0, # . End Collection, 0xC0, # . End Collection, 0x06, 0x0D, 0xFF, # . Usage Page (FF0Dh), 0x09, 0x01, # . Usage (01h), 0xA1, 0x01, # . Collection (Application), 0x85, 0x10, # . Report ID (16), 0x09, 0x20, # . Usage (20h), 0xA1, 0x00, # . Collection (Physical), 0x09, 0x42, # . Usage (42h), 0x09, 0x44, # . Usage (44h), 0x09, 0x5A, # . Usage (5Ah), 0x09, 0x45, # . Usage (45h), 0x09, 0x3C, # . Usage (3Ch), 0x09, 0x32, # . Usage (32h), 0x09, 0x36, # . Usage (36h), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x01, # . Logical Maximum (1), 0x75, 0x01, # . Report Size (1), 0x95, 0x07, # . Report Count (7), 0x81, 0x02, # . Input (Variable), 0x95, 0x01, # . Report Count (1), 0x81, 0x03, # . Input (Constant, Variable), 0x0A, 0x30, 0x01, # . Usage (0130h), 0x65, 0x11, # . Unit (Centimeter), 0x55, 0x0D, # . Unit Exponent (13), 0x35, 0x00, # . Physical Minimum (0), 0x47, 0x7C, 0x79, 0x00, 0x00, # . Physical Maximum (31100), 0x15, 0x00, # . Logical Minimum (0), 0x27, 0xF8, 0xF2, 0x00, 0x00, # . Logical Maximum (62200), 0x75, 0x18, # . Report Size (24), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x0A, 0x31, 0x01, # . Usage (0131h), 0x47, 0x60, 0x54, 0x00, 0x00, # . Physical Maximum (21600), 0x27, 0xC0, 0xA8, 0x00, 0x00, # . Logical Maximum (43200), 0x81, 0x02, # . Input (Variable), 0x09, 0x30, # . Usage (30h), # !!! Errata: Missing Physical Max = 0 0x55, 0x00, # . Unit Exponent (0), 0x65, 0x00, # . Unit, 0x15, 0x00, # . Logical Minimum (0), 0x26, 0xFF, 0x1F, # . Logical Maximum (8191), 0x75, 0x10, # . Report Size (16), 0x81, 0x02, # . Input (Variable), 0x09, 0x3D, # . Usage (3Dh), 0x09, 0x3E, # . Usage (3Eh), 0x65, 0x14, # . Unit (Degrees), 0x55, 0x00, # . Unit Exponent (0), 0x35, 0xC0, # . Physical Minimum (-64), 0x45, 0x3F, # . Physical Maximum (63), 0x15, 0xC0, # . Logical Minimum (-64), 0x25, 0x3F, # . Logical Maximum (63), 0x75, 0x08, # . Report Size (8), 0x95, 0x02, # . Report Count (2), 0x81, 0x02, # . Input (Variable), 0x09, 0x41, # . Usage (41h), 0x65, 0x14, # . Unit (Degrees), 0x55, 0x00, # . Unit Exponent (0), 0x36, 0x4C, 0xFF, # . Physical Minimum (-180), 0x46, 0xB3, 0x00, # . Physical Maximum (179), 0x16, 0x7C, 0xFC, # . Logical Minimum (-900), 0x26, 0x83, 0x03, # . Logical Maximum (899), 0x75, 0x10, # . Report Size (16), 0x95, 0x01, # . Report Count (1), 0x81, 0x0A, # . Input (Variable, Wrap), 0x0A, 0x03, 0x0D, # . Usage (0D03h), 0x65, 0x00, # . Unit, 0x55, 0x00, # . Unit Exponent (0), 0x15, 0x00, # . Logical Minimum (0), 0x26, 0xFF, 0x07, # . Logical Maximum (2047), # !!! Errata: Missing Physical Min/Max = 0 0x75, 0x10, # . Report Size (16), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x0A, 0x32, 0x01, # . Usage (0132h), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x3F, # . Logical Maximum (63), 0x75, 0x08, # . Report Size (8), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x09, 0x5B, # . Usage (5Bh), 0x09, 0x5C, # . Usage (5Ch), 0x17, 0x00, 0x00, 0x00, 0x80, # . Logical Minimum (-2147483648), 0x27, 0xFF, 0xFF, 0xFF, 0x7F, # . Logical Maximum (2147483647), 0x75, 0x20, # . Report Size (32), 0x95, 0x02, # . Report Count (2), 0x81, 0x02, # . Input (Variable), 0x09, 0x77, # . Usage (77h), 0x16, 0x00, 0x00, # . Logical Minimum (0), 0x26, 0xFF, 0x0F, # . Logical Maximum (4095), 0x75, 0x10, # . Report Size (16), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0xC0, # . End Collection, 0x85, 0x11, # . Report ID (17), 0x09, 0x39, # . Usage (39h), 0xA1, 0x00, # . Collection (Physical), 0x1A, 0x10, 0x09, # . Usage Minimum (0910h), 0x2A, 0x17, 0x09, # . Usage Maximum (0917h), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x01, # . Logical Maximum (1), 0x75, 0x01, # . Report Size (1), 0x95, 0x08, # . Report Count (8), 0x81, 0x02, # . Input (Variable), 0x1A, 0x40, 0x09, # . Usage Minimum (0940h), 0x2A, 0x47, 0x09, # . Usage Maximum (0947h), 0x81, 0x02, # . Input (Variable), 0x0A, 0x95, 0x09, # . Usage (0995h), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x95, 0x07, # . Report Count (7), 0x81, 0x03, # . Input (Constant, Variable), 0x0A, 0x38, 0x01, # . Usage (0138h), 0x65, 0x14, # . Unit (Degrees), 0x55, 0x00, # . Unit Exponent (0), 0x35, 0x00, # . Physical Minimum (0), 0x46, 0x67, 0x01, # . Physical Maximum (359), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x47, # . Logical Maximum (71), 0x75, 0x07, # . Report Size (7), 0x95, 0x01, # . Report Count (1), 0x81, 0x0A, # . Input (Variable, Wrap), 0x0A, 0x39, 0x01, # . Usage (0139h), 0x65, 0x00, # . Unit, 0x55, 0x00, # . Unit Exponent (0), 0x25, 0x01, # . Logical Maximum (1), # !!! Errata: Missing Physical Max = 0 0x75, 0x01, # . Report Size (1), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x75, 0x08, # . Report Size (8), 0x95, 0x04, # . Report Count (4), 0x81, 0x03, # . Input (Constant, Variable), 0xC0, # . End Collection, 0x85, 0x13, # . Report ID (19), 0x0A, 0x13, 0x10, # . Usage (1013h), 0xA1, 0x00, # . Collection (Physical), 0x0A, 0x3B, 0x04, # . Usage (043Bh), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x64, # . Logical Maximum (100), 0x75, 0x07, # . Report Size (7), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x0A, 0x04, 0x04, # . Usage (0404h), 0x25, 0x01, # . Logical Maximum (1), 0x75, 0x01, # . Report Size (1), 0x81, 0x02, # . Input (Variable), 0x0A, 0x52, 0x04, # . Usage (0452h), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x01, # . Logical Maximum (1), 0x75, 0x01, # . Report Size (1), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x95, 0x06, # . Report Count (6), 0x81, 0x03, # . Input (Constant, Variable), 0x0A, 0x54, 0x04, # . Usage (0454h), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x75, 0x08, # . Report Size (8), 0x95, 0x06, # . Report Count (6), 0x81, 0x03, # . Input (Constant, Variable), 0xC0, # . End Collection, 0x09, 0x0E, # . Usage (0Eh), 0xA1, 0x02, # . Collection (Logical), 0x15, 0x00, # . Logical Minimum (0), 0x85, 0x02, # . Report ID (2), 0x09, 0x01, # . Usage (01h), 0x75, 0x08, # . Report Size (8), 0x25, 0x01, # . Logical Maximum (1), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x03, # . Report ID (3), 0x0A, 0x03, 0x10, # . Usage (1003h), 0x26, 0xFF, 0x00, # . Logical Maximum (255), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x04, # . Report ID (4), 0x0A, 0x04, 0x10, # . Usage (1004h), 0x25, 0x01, # . Logical Maximum (1), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x07, # . Report ID (7), 0x0A, 0x09, 0x10, # . Usage (1009h), 0x25, 0x02, # . Logical Maximum (2), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x95, 0x01, # . Report Count (1), 0xB1, 0x03, # . Feature (Constant, Variable), 0x0A, 0x07, 0x10, # . Usage (1007h), 0x09, 0x00, # . Usage (00h), 0x0A, 0x08, 0x10, # . Usage (1008h), 0x09, 0x00, # . Usage (00h), 0x09, 0x00, # . Usage (00h), 0x09, 0x00, # . Usage (00h), 0x27, 0xFF, 0xFF, 0x00, 0x00, # . Logical Maximum (65535), 0x75, 0x10, # . Report Size (16), 0x95, 0x06, # . Report Count (6), 0xB1, 0x02, # . Feature (Variable), 0x75, 0x08, # . Report Size (8), 0x95, 0x01, # . Report Count (1), 0xB1, 0x03, # . Feature (Constant, Variable), 0x85, 0x0C, # . Report ID (12), 0x0A, 0x30, 0x0D, # . Usage (0D30h), 0x0A, 0x31, 0x0D, # . Usage (0D31h), 0x0A, 0x32, 0x0D, # . Usage (0D32h), 0x0A, 0x33, 0x0D, # . Usage (0D33h), # !!! Errata: Missing Non-zero Physical Max 0x65, 0x11, # . Unit (Centimeter), 0x55, 0x0D, # . Unit Exponent (13), 0x75, 0x10, # . Report Size (16), 0x95, 0x04, # . Report Count (4), 0xB1, 0x03, # . Feature (Constant, Variable), 0x85, 0x0D, # . Report ID (13), 0x65, 0x00, # . Unit, 0x55, 0x00, # . Unit Exponent (0), 0x0A, 0x0D, 0x10, # . Usage (100Dh), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x01, # . Logical Maximum (1), 0x75, 0x08, # . Report Size (8), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x14, # . Report ID (20), 0x0A, 0x14, 0x10, # . Usage (1014h), 0x26, 0xFF, 0x00, # . Logical Maximum (255), 0x95, 0x0D, # . Report Count (13), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x31, # . Report ID (49), 0x0A, 0x31, 0x10, # . Usage (1031h), 0x25, 0x64, # . Logical Maximum (100), 0x95, 0x05, # . Report Count (5), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x32, # . Report ID (50), 0x0A, 0x31, 0x10, # . Usage (1031h), 0x25, 0x64, # . Logical Maximum (100), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x0A, 0x32, 0x10, # . Usage (1032h), 0x25, 0x03, # . Logical Maximum (3), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x34, # . Report ID (52), 0x0A, 0x34, 0x10, # . Usage (1034h), 0x25, 0x01, # . Logical Maximum (1), 0x95, 0x04, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x35, # . Report ID (53), 0x0A, 0x35, 0x10, # . Usage (1035h), 0x26, 0xFF, 0x00, # . Logical Maximum (255), 0x95, 0x0A, # . Report Count (10), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x36, # . Report ID (54), 0x0A, 0x35, 0x10, # . Usage (1035h), 0x26, 0xFF, 0x00, # . Logical Maximum (255), 0x96, 0x01, 0x01, # . Report Count (257), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xCC, # . Report ID (204), 0x0A, 0xCC, 0x10, # . Usage (10CCh), 0x26, 0xFF, 0x00, # . Logical Maximum (255), 0x95, 0x02, # . Report Count (2), 0xB1, 0x02, # . Feature (Variable), 0xC0, # . End Collection, 0x0A, 0xAC, 0x10, # . Usage (10ACh), 0xA1, 0x02, # . Collection (Logical), 0x15, 0x00, # . Logical Minimum (0), 0x26, 0xFF, 0x00, # . Logical Maximum (255), 0x75, 0x08, # . Report Size (8), 0x85, 0xAC, # . Report ID (172), 0x09, 0x00, # . Usage (00h), 0x95, 0xBF, # . Report Count (191), 0x81, 0x02, # . Input (Variable), 0x85, 0x33, # . Report ID (51), 0x09, 0x00, # . Usage (00h), 0x95, 0x12, # . Report Count (18), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x64, # . Report ID (100), 0x09, 0x00, # . Usage (00h), 0x95, 0x0C, # . Report Count (12), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x15, # . Report ID (21), 0x09, 0x00, # . Usage (00h), 0x95, 0x0E, # . Report Count (14), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x12, # . Report ID (18), 0x09, 0x00, # . Usage (00h), 0x95, 0x04, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x16, # . Report ID (22), 0x09, 0x00, # . Usage (00h), 0x95, 0x0E, # . Report Count (14), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x40, # . Report ID (64), 0x09, 0x00, # . Usage (00h), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x41, # . Report ID (65), 0x09, 0x00, # . Usage (00h), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x42, # . Report ID (66), 0x09, 0x00, # . Usage (00h), 0x95, 0x04, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x43, # . Report ID (67), 0x09, 0x00, # . Usage (00h), 0x95, 0x0D, # . Report Count (13), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x44, # . Report ID (68), 0x09, 0x00, # . Usage (00h), 0x95, 0x3F, # . Report Count (63), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x45, # . Report ID (69), 0x09, 0x00, # . Usage (00h), 0x95, 0x20, # . Report Count (32), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x60, # . Report ID (96), 0x09, 0x00, # . Usage (00h), 0x95, 0x3F, # . Report Count (63), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x61, # . Report ID (97), 0x09, 0x00, # . Usage (00h), 0x95, 0x3E, # . Report Count (62), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x62, # . Report ID (98), 0x09, 0x00, # . Usage (00h), 0x95, 0x3E, # . Report Count (62), 0xB1, 0x02, # . Feature (Variable), 0xC0, # . End Collection, 0x85, 0xD0, # . Report ID (208), 0x09, 0x01, # . Usage (01h), 0x96, 0x08, 0x00, # . Report Count (8), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD1, # . Report ID (209), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x01, # . Report Count (260), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD2, # . Report ID (210), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x01, # . Report Count (260), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD3, # . Report ID (211), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x00, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD4, # . Report ID (212), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x00, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD5, # . Report ID (213), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x00, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD6, # . Report ID (214), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x00, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD7, # . Report ID (215), 0x09, 0x01, # . Usage (01h), 0x96, 0x08, 0x00, # . Report Count (8), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD8, # . Report ID (216), 0x09, 0x01, # . Usage (01h), 0x96, 0x0C, 0x00, # . Report Count (12), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD9, # . Report ID (217), 0x09, 0x01, # . Usage (01h), 0x96, 0x00, 0x0A, # . Report Count (2560), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xDA, # . Report ID (218), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x04, # . Report Count (1028), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xDB, # . Report ID (219), 0x09, 0x01, # . Usage (01h), 0x96, 0x06, 0x00, # . Report Count (6), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xDC, # . Report ID (220), 0x09, 0x01, # . Usage (01h), 0x96, 0x02, 0x00, # . Report Count (2), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xDD, # . Report ID (221), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x00, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xDE, # . Report ID (222), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x00, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xDF, # . Report ID (223), 0x09, 0x01, # . Usage (01h), 0x96, 0x22, 0x00, # . Report Count (34), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xE0, # . Report ID (224), 0x09, 0x01, # . Usage (01h), 0x96, 0x01, 0x00, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xE1, # . Report ID (225), 0x09, 0x01, # . Usage (01h), 0x96, 0x02, 0x00, # . Report Count (2), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xE2, # . Report ID (226), 0x09, 0x01, # . Usage (01h), 0x96, 0x02, 0x00, # . Report Count (2), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xE3, # . Report ID (227), 0x09, 0x01, # . Usage (01h), 0x96, 0x02, 0x00, # . Report Count (2), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xE4, # . Report ID (228), 0x09, 0x01, # . Usage (01h), 0x96, 0xFF, 0x01, # . Report Count (511), 0xB1, 0x02, # . Feature (Variable), 0xC0 # . End Collection ] # fmt: on # Report ID (20), Usage (1014h), Report Count (13) -> 15 wacom_pth860_v150 = wacom_pth860_v145.copy() wacom_pth860_v150[0x2CA] = 0x0F # fmt: off wacom_pth460_v105 = [ 0x06, 0x0D, 0xFF, # . Usage Page (FF0Dh), 0x09, 0x01, # . Usage (01h), 0xA1, 0x01, # . Collection (Application), 0x85, 0x10, # . Report ID (16), 0x09, 0x20, # . Usage (20h), 0x35, 0x00, # . Physical Minimum (0), 0x45, 0x00, # . Physical Maximum (0), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x01, # . Logical Maximum (1), 0xA1, 0x00, # . Collection (Physical), 0x09, 0x42, # . Usage (42h), 0x09, 0x44, # . Usage (44h), 0x09, 0x5A, # . Usage (5Ah), 0x09, 0x45, # . Usage (45h), 0x09, 0x3C, # . Usage (3Ch), 0x09, 0x32, # . Usage (32h), 0x09, 0x36, # . Usage (36h), 0x25, 0x01, # . Logical Maximum (1), 0x75, 0x01, # . Report Size (1), 0x95, 0x07, # . Report Count (7), 0x81, 0x02, # . Input (Variable), 0x95, 0x01, # . Report Count (1), 0x81, 0x03, # . Input (Constant, Variable), 0x0A, 0x30, 0x01, # . Usage (0130h), 0x65, 0x11, # . Unit (Centimeter), 0x55, 0x0D, # . Unit Exponent (13), 0x47, 0x58, 0x3E, 0x00, 0x00, # . Physical Maximum (15960), 0x27, 0xB0, 0x7C, 0x00, 0x00, # . Logical Maximum (31920), 0x75, 0x18, # . Report Size (24), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x0A, 0x31, 0x01, # . Usage (0131h), 0x47, 0xF7, 0x26, 0x00, 0x00, # . Physical Maximum (9975), 0x27, 0xEE, 0x4D, 0x00, 0x00, # . Logical Maximum (19950), 0x81, 0x02, # . Input (Variable), 0x09, 0x30, # . Usage (30h), 0x55, 0x00, # . Unit Exponent (0), 0x65, 0x00, # . Unit, 0x26, 0xFF, 0x1F, # . Logical Maximum (8191), # !!! Errata: Missing Physical Max = 0 0x75, 0x10, # . Report Size (16), 0x81, 0x02, # . Input (Variable), 0x09, 0x3D, # . Usage (3Dh), 0x09, 0x3E, # . Usage (3Eh), 0x65, 0x14, # . Unit (Degrees), 0x55, 0x00, # . Unit Exponent (0), 0x35, 0xC0, # . Physical Minimum (-64), 0x45, 0x3F, # . Physical Maximum (63), 0x15, 0xC0, # . Logical Minimum (-64), 0x25, 0x3F, # . Logical Maximum (63), 0x75, 0x08, # . Report Size (8), 0x95, 0x02, # . Report Count (2), 0x81, 0x02, # . Input (Variable), 0x09, 0x41, # . Usage (41h), 0x65, 0x14, # . Unit (Degrees), 0x55, 0x00, # . Unit Exponent (0), 0x36, 0x4C, 0xFF, # . Physical Minimum (-180), 0x46, 0xB3, 0x00, # . Physical Maximum (179), 0x16, 0x7C, 0xFC, # . Logical Minimum (-900), 0x26, 0x83, 0x03, # . Logical Maximum (899), 0x75, 0x10, # . Report Size (16), 0x95, 0x01, # . Report Count (1), 0x81, 0x0A, # . Input (Variable, Wrap), 0x0A, 0x03, 0x0D, # . Usage (0D03h), 0x65, 0x00, # . Unit, 0x55, 0x00, # . Unit Exponent (0), 0x35, 0x00, # . Physical Minimum (0), 0x45, 0x00, # . Physical Maximum (0), 0x15, 0x00, # . Logical Minimum (0), 0x26, 0xFF, 0x07, # . Logical Maximum (2047), 0x81, 0x02, # . Input (Variable), 0x0A, 0x32, 0x01, # . Usage (0132h), 0x25, 0x3F, # . Logical Maximum (63), 0x75, 0x08, # . Report Size (8), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x09, 0x5B, # . Usage (5Bh), 0x09, 0x5C, # . Usage (5Ch), 0x17, 0x00, 0x00, 0x00, 0x80, # . Logical Minimum (-2147483648), 0x27, 0xFF, 0xFF, 0xFF, 0x7F, # . Logical Maximum (2147483647), 0x75, 0x20, # . Report Size (32), 0x95, 0x02, # . Report Count (2), 0x81, 0x02, # . Input (Variable), 0x09, 0x77, # . Usage (77h), 0x15, 0x00, # . Logical Minimum (0), 0x26, 0xFF, 0x0F, # . Logical Maximum (4095), 0x75, 0x10, # . Report Size (16), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0xC0, # . End Collection, 0x85, 0x11, # . Report ID (17), 0x65, 0x00, # . Unit, 0x55, 0x00, # . Unit Exponent (0), 0x35, 0x00, # . Physical Minimum (0), 0x45, 0x00, # . Physical Maximum (0), 0x09, 0x39, # . Usage (39h), 0xA1, 0x00, # . Collection (Physical), 0x09, 0x39, # . Usage (39h), 0xA1, 0x00, # . Collection (Physical), 0x35, 0x00, # . Physical Minimum (0), 0x45, 0x00, # . Physical Maximum (0), 0x15, 0x00, # . Logical Minimum (0), 0x1A, 0x10, 0x09, # . Usage Minimum (0910h), 0x2A, 0x15, 0x09, # . Usage Maximum (0915h), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x01, # . Logical Maximum (1), 0x75, 0x01, # . Report Size (1), 0x95, 0x06, # . Report Count (6), 0x81, 0x02, # . Input (Variable), 0x95, 0x02, # . Report Count (2), 0x81, 0x03, # . Input (Constant, Variable), 0xC0, # . End Collection, 0x75, 0x08, # . Report Size (8), 0x95, 0x01, # . Report Count (1), 0x81, 0x03, # . Input (Constant, Variable), 0x09, 0x39, # . Usage (39h), 0xA1, 0x00, # . Collection (Physical), 0x35, 0x00, # . Physical Minimum (0), 0x45, 0x00, # . Physical Maximum (0), 0x0A, 0x95, 0x09, # . Usage (0995h), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x01, # . Logical Maximum (1), 0x75, 0x01, # . Report Size (1), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x95, 0x07, # . Report Count (7), 0x81, 0x03, # . Input (Constant, Variable), 0xC0, # . End Collection, 0x09, 0x39, # . Usage (39h), 0xA1, 0x00, # . Collection (Physical), 0x35, 0x00, # . Physical Minimum (0), 0x15, 0x00, # . Logical Minimum (0), 0x0A, 0x38, 0x01, # . Usage (0138h), 0x65, 0x14, # . Unit (Degrees), 0x55, 0x00, # . Unit Exponent (0), 0x35, 0x00, # . Physical Minimum (0), 0x46, 0x67, 0x01, # . Physical Maximum (359), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x47, # . Logical Maximum (71), 0x75, 0x07, # . Report Size (7), 0x95, 0x01, # . Report Count (1), 0x81, 0x4A, # . Input (Variable, Wrap, Null State), 0x0A, 0x39, 0x01, # . Usage (0139h), 0x65, 0x00, # . Unit, 0x55, 0x00, # . Unit Exponent (0), 0x45, 0x00, # . Physical Maximum (0), 0x25, 0x01, # . Logical Maximum (1), 0x75, 0x01, # . Report Size (1), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0xC0, # . End Collection, 0x75, 0x08, # . Report Size (8), 0x95, 0x04, # . Report Count (4), 0x81, 0x03, # . Input (Constant, Variable), 0xC0, # . End Collection, 0x85, 0x13, # . Report ID (19), 0x65, 0x00, # . Unit, 0x55, 0x00, # . Unit Exponent (0), 0x35, 0x00, # . Physical Minimum (0), 0x45, 0x00, # . Physical Maximum (0), 0x0A, 0x13, 0x10, # . Usage (1013h), 0xA1, 0x00, # . Collection (Physical), 0x0A, 0x13, 0x10, # . Usage (1013h), 0xA1, 0x00, # . Collection (Physical), 0x35, 0x00, # . Physical Minimum (0), 0x45, 0x00, # . Physical Maximum (0), 0x15, 0x00, # . Logical Minimum (0), 0x0A, 0x3B, 0x04, # . Usage (043Bh), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x64, # . Logical Maximum (100), 0x75, 0x07, # . Report Size (7), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x0A, 0x04, 0x04, # . Usage (0404h), 0x25, 0x01, # . Logical Maximum (1), 0x75, 0x01, # . Report Size (1), 0x81, 0x02, # . Input (Variable), 0xC0, # . End Collection, 0x0A, 0x13, 0x10, # . Usage (1013h), 0xA1, 0x00, # . Collection (Physical), 0x35, 0x00, # . Physical Minimum (0), 0x45, 0x00, # . Physical Maximum (0), 0x0A, 0x52, 0x04, # . Usage (0452h), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x01, # . Logical Maximum (1), 0x75, 0x01, # . Report Size (1), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0x0A, 0x41, 0x04, # . Usage (0441h), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x07, # . Logical Maximum (7), 0x75, 0x03, # . Report Size (3), 0x95, 0x02, # . Report Count (2), 0x81, 0x02, # . Input (Variable), 0x0A, 0x54, 0x04, # . Usage (0454h), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x01, # . Logical Maximum (1), 0x75, 0x01, # . Report Size (1), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0xC0, # . End Collection, 0x0A, 0x13, 0x10, # . Usage (1013h), 0xA1, 0x00, # . Collection (Physical), 0x35, 0x00, # . Physical Minimum (0), 0x45, 0x00, # . Physical Maximum (0), 0x15, 0x00, # . Logical Minimum (0), 0x0A, 0x3C, 0x04, # . Usage (043Ch), 0x55, 0x00, # . Unit Exponent (0), 0x65, 0x00, # . Unit, 0x15, 0xFB, # . Logical Minimum (-5), 0x25, 0x32, # . Logical Maximum (50), 0x75, 0x08, # . Report Size (8), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0xC0, # . End Collection, 0x0A, 0x13, 0x10, # . Usage (1013h), 0xA1, 0x00, # . Collection (Physical), 0x35, 0x00, # . Physical Minimum (0), 0x45, 0x00, # . Physical Maximum (0), 0x15, 0x00, # . Logical Minimum (0), 0x0A, 0x3D, 0x04, # . Usage (043Dh), 0x55, 0x00, # . Unit Exponent (0), 0x65, 0x00, # . Unit, 0x15, 0x00, # . Logical Minimum (0), 0x26, 0xFF, 0x0F, # . Logical Maximum (4095), 0x75, 0x10, # . Report Size (16), 0x95, 0x01, # . Report Count (1), 0x81, 0x02, # . Input (Variable), 0xC0, # . End Collection, 0x75, 0x08, # . Report Size (8), 0x95, 0x03, # . Report Count (3), 0x81, 0x03, # . Input (Constant, Variable), 0xC0, # . End Collection, 0x09, 0x0E, # . Usage (0Eh), 0xA1, 0x02, # . Collection (Logical), 0x85, 0x02, # . Report ID (2), 0x0A, 0x02, 0x10, # . Usage (1002h), 0x15, 0x02, # . Logical Minimum (2), 0x25, 0x02, # . Logical Maximum (2), 0x75, 0x08, # . Report Size (8), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x03, # . Report ID (3), 0x0A, 0x03, 0x10, # . Usage (1003h), 0x15, 0x00, # . Logical Minimum (0), 0x26, 0xFF, 0x00, # . Logical Maximum (255), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x04, # . Report ID (4), 0x0A, 0x04, 0x10, # . Usage (1004h), 0x15, 0x00, # . Logical Minimum (0), 0x25, 0x01, # . Logical Maximum (1), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x07, # . Report ID (7), 0x0A, 0x09, 0x10, # . Usage (1009h), 0x15, 0x00, # . Logical Minimum (0), 0x26, 0xFF, 0x00, # . Logical Maximum (255), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0xB1, 0x03, # . Feature (Constant, Variable), 0x0A, 0x07, 0x10, # . Usage (1007h), 0x09, 0x00, # . Usage (00h), 0x0A, 0x08, 0x10, # . Usage (1008h), 0x09, 0x00, # . Usage (00h), 0x09, 0x00, # . Usage (00h), 0x09, 0x00, # . Usage (00h), 0x27, 0xFF, 0xFF, 0x00, 0x00, # . Logical Maximum (65535), 0x75, 0x10, # . Report Size (16), 0x95, 0x06, # . Report Count (6), 0xB1, 0x02, # . Feature (Variable), 0x09, 0x00, # . Usage (00h), 0x25, 0x00, # . Logical Maximum (0), 0x75, 0x08, # . Report Size (8), 0x95, 0x01, # . Report Count (1), 0xB1, 0x03, # . Feature (Constant, Variable), 0x85, 0x0C, # . Report ID (12), 0x0A, 0x30, 0x0D, # . Usage (0D30h), 0x0A, 0x31, 0x0D, # . Usage (0D31h), 0x0A, 0x32, 0x0D, # . Usage (0D32h), 0x0A, 0x33, 0x0D, # . Usage (0D33h), 0x65, 0x11, # . Unit (Centimeter), 0x55, 0x0D, # . Unit Exponent (13), 0x35, 0x00, # . Physical Minimum (0), 0x46, 0xC8, 0x00, # . Physical Maximum (200), 0x15, 0x00, # . Logical Minimum (0), 0x26, 0x90, 0x01, # . Logical Maximum (400), 0x75, 0x10, # . Report Size (16), 0x95, 0x04, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x0D, # . Report ID (13), 0x0A, 0x0D, 0x10, # . Usage (100Dh), 0x65, 0x00, # . Unit, 0x55, 0x00, # . Unit Exponent (0), 0x45, 0x00, # . Physical Maximum (0), 0x25, 0x01, # . Logical Maximum (1), 0x75, 0x08, # . Report Size (8), 0x95, 0x01, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x14, # . Report ID (20), 0x0A, 0x14, 0x10, # . Usage (1014h), 0x26, 0xFF, 0x00, # . Logical Maximum (255), 0x95, 0x0D, # . Report Count (13), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xCC, # . Report ID (204), 0x0A, 0xCC, 0x10, # . Usage (10CCh), 0x95, 0x02, # . Report Count (2), 0xB1, 0x02, # . Feature (Variable), 0xC0, # . End Collection, 0x09, 0x0E, # . Usage (0Eh), 0xA1, 0x02, # . Collection (Logical), 0x85, 0x31, # . Report ID (49), 0x0A, 0x31, 0x10, # . Usage (1031h), 0x25, 0x64, # . Logical Maximum (100), 0x95, 0x03, # . Report Count (3), 0xB1, 0x02, # . Feature (Variable), 0x95, 0x02, # . Report Count (2), 0xB1, 0x03, # . Feature (Constant, Variable), 0xC0, # . End Collection, 0x0A, 0xAC, 0x10, # . Usage (10ACh), 0xA1, 0x02, # . Collection (Logical), 0x15, 0x00, # . Logical Minimum (0), 0x26, 0xFF, 0x00, # . Logical Maximum (255), 0x75, 0x08, # . Report Size (8), 0x85, 0xAC, # . Report ID (172), 0x09, 0x00, # . Usage (00h), 0x96, 0xBF, 0x00, # . Report Count (191), 0x81, 0x02, # . Input (Variable), 0x85, 0x15, # . Report ID (21), 0x09, 0x00, # . Usage (00h), 0x95, 0x0E, # . Report Count (14), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x33, # . Report ID (51), 0x09, 0x00, # . Usage (00h), 0x95, 0x12, # . Report Count (18), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x44, # . Report ID (68), 0x09, 0x00, # . Usage (00h), 0x95, 0x04, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x45, # . Report ID (69), 0x09, 0x00, # . Usage (00h), 0x95, 0x20, # . Report Count (32), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x60, # . Report ID (96), 0x09, 0x00, # . Usage (00h), 0x95, 0x3F, # . Report Count (63), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x61, # . Report ID (97), 0x09, 0x00, # . Usage (00h), 0x95, 0x3E, # . Report Count (62), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x62, # . Report ID (98), 0x09, 0x00, # . Usage (00h), 0x95, 0x3E, # . Report Count (62), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x65, # . Report ID (101), 0x09, 0x00, # . Usage (00h), 0x95, 0x04, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x66, # . Report ID (102), 0x09, 0x00, # . Usage (00h), 0x95, 0x04, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x67, # . Report ID (103), 0x09, 0x00, # . Usage (00h), 0x95, 0x04, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x68, # . Report ID (104), 0x09, 0x00, # . Usage (00h), 0x95, 0x11, # . Report Count (17), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x6F, # . Report ID (111), 0x09, 0x00, # . Usage (00h), 0x95, 0x3E, # . Report Count (62), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xCD, # . Report ID (205), 0x09, 0x00, # . Usage (00h), 0x95, 0x02, # . Report Count (2), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x16, # . Report ID (22), 0x09, 0x00, # . Usage (00h), 0x95, 0x0E, # . Report Count (14), 0xB1, 0x02, # . Feature (Variable), 0x85, 0x35, # . Report ID (53), 0x09, 0x00, # . Usage (00h), 0x95, 0x0A, # . Report Count (10), 0xB1, 0x02, # . Feature (Variable), 0xC0, # . End Collection, 0x85, 0xD1, # . Report ID (209), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x01, # . Report Count (260), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD2, # . Report ID (210), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x01, # . Report Count (260), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD3, # . Report ID (211), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x00, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD4, # . Report ID (212), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x00, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD5, # . Report ID (213), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x00, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD6, # . Report ID (214), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x00, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD7, # . Report ID (215), 0x09, 0x01, # . Usage (01h), 0x96, 0x08, 0x00, # . Report Count (8), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD8, # . Report ID (216), 0x09, 0x01, # . Usage (01h), 0x96, 0x0C, 0x00, # . Report Count (12), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xD9, # . Report ID (217), 0x09, 0x01, # . Usage (01h), 0x96, 0x00, 0x0A, # . Report Count (2560), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xDA, # . Report ID (218), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x04, # . Report Count (1028), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xDB, # . Report ID (219), 0x09, 0x01, # . Usage (01h), 0x96, 0x06, 0x00, # . Report Count (6), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xDC, # . Report ID (220), 0x09, 0x01, # . Usage (01h), 0x96, 0x02, 0x00, # . Report Count (2), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xDD, # . Report ID (221), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x00, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xDE, # . Report ID (222), 0x09, 0x01, # . Usage (01h), 0x96, 0x04, 0x00, # . Report Count (4), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xDF, # . Report ID (223), 0x09, 0x01, # . Usage (01h), 0x96, 0x22, 0x00, # . Report Count (34), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xE0, # . Report ID (224), 0x09, 0x01, # . Usage (01h), 0x96, 0x01, 0x00, # . Report Count (1), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xE1, # . Report ID (225), 0x09, 0x01, # . Usage (01h), 0x96, 0x02, 0x00, # . Report Count (2), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xE2, # . Report ID (226), 0x09, 0x01, # . Usage (01h), 0x96, 0x02, 0x00, # . Report Count (2), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xE3, # . Report ID (227), 0x09, 0x01, # . Usage (01h), 0x96, 0x02, 0x00, # . Report Count (2), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xE4, # . Report ID (228), 0x09, 0x01, # . Usage (01h), 0x96, 0xFF, 0x01, # . Report Count (511), 0xB1, 0x02, # . Feature (Variable), 0x85, 0xCB, # . Report ID (203), 0x09, 0x01, # . Usage (01h), 0x96, 0x1F, 0x00, # . Report Count (31), 0xB1, 0x02, # . Feature (Variable), 0xC0 # . End Collection ] # fmt: on