Created
March 4, 2025 14:31
Elan Touchpad Report Descriptor
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//This is the HID Report Descriptor of an Elan Touchpad from a Lenovo Thinkbook 16p. (ELAN 33370A-3JD0) | |
0x05, 0x01, // Usage Page (Generic Desktop Ctrls) | |
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 (0x01) | |
0x29, 0x02, // Usage Maximum (0x02) | |
0x15, 0x00, // Logical Minimum (0) | |
0x25, 0x01, // Logical Maximum (1) | |
0x75, 0x01, // Report Size (1) | |
0x95, 0x02, // Report Count (2) | |
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) | |
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) | |
0x75, 0x08, // Report Size (8) | |
0x95, 0x02, // Report Count (2) | |
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) | |
0x75, 0x08, // Report Size (8) | |
0x95, 0x05, // Report Count (5) | |
0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0xC0, // End Collection | |
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) | |
0x09, 0x01, // Usage (0x01) | |
0x85, 0x0E, // Report ID (14) | |
0x09, 0xC5, // Usage (0xC5) | |
0x15, 0x00, // Logical Minimum (0) | |
0x26, 0xFF, 0x00, // Logical Maximum (255) | |
0x75, 0x08, // Report Size (8) | |
0x95, 0x04, // Report Count (4) | |
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) | |
0xC0, // End Collection | |
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) | |
0x09, 0x01, // Usage (0x01) | |
0xA1, 0x01, // Collection (Application) | |
0x85, 0x5C, // Report ID (92) | |
0x09, 0x01, // Usage (0x01) | |
0x95, 0x0B, // Report Count (11) | |
0x75, 0x08, // Report Size (8) | |
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) | |
0x85, 0x0D, // Report ID (13) | |
0x09, 0xC5, // Usage (0xC5) | |
0x15, 0x00, // Logical Minimum (0) | |
0x26, 0xFF, 0x00, // Logical Maximum (255) | |
0x75, 0x08, // Report Size (8) | |
0x95, 0x04, // Report Count (4) | |
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) | |
0x85, 0x0C, // Report ID (12) | |
0x09, 0xC6, // Usage (0xC6) | |
0x96, 0x88, 0x04, // Report Count (1160) | |
0x75, 0x08, // Report Size (8) | |
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) | |
0x85, 0x0B, // Report ID (11) | |
0x09, 0xC7, // Usage (0xC7) | |
0x95, 0x82, // Report Count (-126) | |
0x75, 0x08, // Report Size (8) | |
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) | |
0xC0, // End Collection | |
0x05, 0x0D, // Usage Page (Digitizer) | |
0x09, 0x05, // Usage (Touch Pad) | |
0xA1, 0x01, // Collection (Application) | |
0x85, 0x04, // Report ID (4) | |
0x09, 0x22, // Usage (Finger) | |
0xA1, 0x02, // Collection (Logical) | |
0x15, 0x00, // Logical Minimum (0) | |
0x25, 0x01, // Logical Maximum (1) | |
0x09, 0x47, // Usage (0x47) | |
0x09, 0x42, // Usage (Tip Switch) | |
0x95, 0x02, // Report Count (2) | |
0x75, 0x01, // Report Size (1) | |
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x75, 0x01, // Report Size (1) | |
0x95, 0x02, // Report Count (2) | |
0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x95, 0x01, // Report Count (1) | |
0x75, 0x04, // Report Size (4) | |
0x25, 0x0F, // Logical Maximum (15) | |
0x09, 0x51, // Usage (0x51) | |
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x05, 0x01, // Usage Page (Generic Desktop Ctrls) | |
0x15, 0x00, // Logical Minimum (0) | |
0x26, 0x5F, 0x0E, // Logical Maximum (3679) | |
0x75, 0x10, // Report Size (16) | |
0x55, 0x0D, // Unit Exponent (-3) | |
0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) | |
0x09, 0x30, // Usage (X) | |
0x35, 0x00, // Physical Minimum (0) | |
0x46, 0xB4, 0x2D, // Physical Maximum (11700) | |
0x95, 0x01, // Report Count (1) | |
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x46, 0x20, 0x1C, // Physical Maximum (7200) | |
0x26, 0xD5, 0x08, // Logical Maximum (2261) | |
0x26, 0xD5, 0x08, // Logical Maximum (2261) | |
0x09, 0x31, // Usage (Y) | |
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x05, 0x0D, // Usage Page (Digitizer) | |
0x15, 0x00, // Logical Minimum (0) | |
0x25, 0x64, // Logical Maximum (100) | |
0x95, 0x03, // Report Count (3) | |
0xC0, // End Collection | |
0x55, 0x0C, // Unit Exponent (-4) | |
0x66, 0x01, 0x10, // Unit (System: SI Linear, Time: Seconds) | |
0x47, 0xFF, 0xFF, 0x00, 0x00, // Physical Maximum (65534) | |
0x27, 0xFF, 0xFF, 0x00, 0x00, // Logical Maximum (65534) | |
0x75, 0x10, // Report Size (16) | |
0x95, 0x01, // Report Count (1) | |
0x09, 0x56, // Usage (0x56) | |
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x09, 0x54, // Usage (0x54) | |
0x25, 0x7F, // Logical Maximum (127) | |
0x95, 0x01, // Report Count (1) | |
0x75, 0x08, // Report Size (8) | |
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x05, 0x09, // Usage Page (Button) | |
0x09, 0x01, // Usage (0x01) | |
0x25, 0x01, // Logical 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) | |
0x95, 0x07, // Report Count (7) | |
0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x09, 0xC5, // Usage (0xC5) | |
0x75, 0x08, // Report Size (8) | |
0x95, 0x02, // Report Count (2) | |
0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x05, 0x0D, // Usage Page (Digitizer) | |
0x85, 0x02, // Report ID (2) | |
0x09, 0x55, // Usage (0x55) | |
0x09, 0x59, // Usage (0x59) | |
0x75, 0x04, // Report Size (4) | |
0x95, 0x02, // Report Count (2) | |
0x25, 0x0F, // Logical Maximum (15) | |
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) | |
0x85, 0x07, // Report ID (7) | |
0x09, 0x60, // Usage (0x60) | |
0x75, 0x01, // Report Size (1) | |
0x95, 0x01, // Report Count (1) | |
0x15, 0x00, // Logical Minimum (0) | |
0x25, 0x01, // Logical Maximum (1) | |
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) | |
0x95, 0x0F, // Report Count (15) | |
0xB1, 0x03, // Feature (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) | |
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) | |
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) | |
0x85, 0x06, // Report ID (6) | |
0x09, 0xC5, // Usage (0xC5) | |
0x15, 0x00, // Logical Minimum (0) | |
0x26, 0xFF, 0x00, // Logical Maximum (255) | |
0x75, 0x08, // Report Size (8) | |
0x96, 0x00, 0x01, // Report Count (256) | |
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) | |
0xC0, // End Collection | |
0x05, 0x00, // Usage Page (Undefined) | |
0x0D, 0x09, // Unknown (bTag: 0x00, bType: 0x03) | |
0x0E, 0xA1, 0x01, // Unknown (bTag: 0x00, bType: 0x03) | |
0x85, 0x03, // Report ID (3) | |
0x09, 0x22, // Usage (0x22) | |
0xA1, 0x00, // Collection (Physical) | |
0x09, 0x52, // Usage (0x52) | |
0x15, 0x00, // Logical Minimum (0) | |
0x25, 0x0A, // Logical Maximum (10) | |
0x75, 0x10, // Report Size (16) | |
0x95, 0x01, // Report Count (1) | |
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) | |
0xC0, // End Collection | |
0x09, 0x22, // Usage (0x22) | |
0xA1, 0x00, // Collection (Physical) | |
0x85, 0x05, // Report ID (5) | |
0x09, 0x57, // Usage (0x57) | |
0x09, 0x58, // Usage (0x58) | |
0x75, 0x01, // Report Size (1) | |
0x95, 0x02, // Report Count (2) | |
0x25, 0x01, // Logical Maximum (1) | |
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) | |
0x95, 0x0E, // Report Count (14) | |
0xB1, 0x03, // Feature (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) | |
0xC0, // End Collection | |
0xC0, // End Collection | |
// 382 bytes |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment