-
-
Save tmk/9725596c6726b561ad2bf1f1e07e1523 to your computer and use it in GitHub Desktop.
Nintendo SWITCH Pro Controller: USB 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
Bus 003 Device 120: ID 057e:2009 Nintendo Co., Ltd | |
Device Descriptor: | |
bLength 18 | |
bDescriptorType 1 | |
bcdUSB 2.00 | |
bDeviceClass 0 | |
bDeviceSubClass 0 | |
bDeviceProtocol 0 | |
bMaxPacketSize0 64 | |
idVendor 0x057e Nintendo Co., Ltd | |
idProduct 0x2009 | |
bcdDevice 2.10 | |
iManufacturer 1 Nintendo Co., Ltd. | |
iProduct 2 Pro Controller | |
iSerial 3 000000000001 | |
bNumConfigurations 1 | |
Configuration Descriptor: | |
bLength 9 | |
bDescriptorType 2 | |
wTotalLength 0x0029 | |
bNumInterfaces 1 | |
bConfigurationValue 1 | |
iConfiguration 0 | |
bmAttributes 0xa0 | |
(Bus Powered) | |
Remote Wakeup | |
MaxPower 500mA | |
Interface Descriptor: | |
bLength 9 | |
bDescriptorType 4 | |
bInterfaceNumber 0 | |
bAlternateSetting 0 | |
bNumEndpoints 2 | |
bInterfaceClass 3 Human Interface Device | |
bInterfaceSubClass 0 | |
bInterfaceProtocol 0 | |
iInterface 0 | |
HID Device Descriptor: | |
bLength 9 | |
bDescriptorType 33 | |
bcdHID 1.11 | |
bCountryCode 0 Not supported | |
bNumDescriptors 1 | |
bDescriptorType 34 Report | |
wDescriptorLength 203 | |
Report Descriptor: (length is 203) | |
Item(Global): Usage Page, data= [ 0x01 ] 1 | |
Generic Desktop Controls | |
Item(Global): Logical Minimum, data= [ 0x00 ] 0 | |
Item(Local ): Usage, data= [ 0x04 ] 4 | |
Joystick | |
Item(Main ): Collection, data= [ 0x01 ] 1 | |
Application | |
Item(Global): Report ID, data= [ 0x30 ] 48 | |
Item(Global): Usage Page, data= [ 0x01 ] 1 | |
Generic Desktop Controls | |
Item(Global): Usage Page, data= [ 0x09 ] 9 | |
Buttons | |
Item(Local ): Usage Minimum, data= [ 0x01 ] 1 | |
Button 1 (Primary) | |
Item(Local ): Usage Maximum, data= [ 0x0a ] 10 | |
(null) | |
Item(Global): Logical Minimum, data= [ 0x00 ] 0 | |
Item(Global): Logical Maximum, data= [ 0x01 ] 1 | |
Item(Global): Report Size, data= [ 0x01 ] 1 | |
Item(Global): Report Count, data= [ 0x0a ] 10 | |
Item(Global): Unit Exponent, data= [ 0x00 ] 0 | |
Unit Exponent: 0 | |
Item(Global): Unit, data= [ 0x00 ] 0 | |
System: None, Unit: (None) | |
Item(Main ): Input, data= [ 0x02 ] 2 | |
Data Variable Absolute No_Wrap Linear | |
Preferred_State No_Null_Position Non_Volatile Bitfield | |
Item(Global): Usage Page, data= [ 0x09 ] 9 | |
Buttons | |
Item(Local ): Usage Minimum, data= [ 0x0b ] 11 | |
(null) | |
Item(Local ): Usage Maximum, data= [ 0x0e ] 14 | |
(null) | |
Item(Global): Logical Minimum, data= [ 0x00 ] 0 | |
Item(Global): Logical Maximum, data= [ 0x01 ] 1 | |
Item(Global): Report Size, data= [ 0x01 ] 1 | |
Item(Global): Report Count, data= [ 0x04 ] 4 | |
Item(Main ): Input, data= [ 0x02 ] 2 | |
Data Variable Absolute No_Wrap Linear | |
Preferred_State No_Null_Position Non_Volatile Bitfield | |
Item(Global): Report Size, data= [ 0x01 ] 1 | |
Item(Global): Report Count, data= [ 0x02 ] 2 | |
Item(Main ): Input, data= [ 0x03 ] 3 | |
Constant Variable Absolute No_Wrap Linear | |
Preferred_State No_Null_Position Non_Volatile Bitfield | |
Item(Local ): Usage, data= [ 0x01 0x00 0x01 0x00 ] 65537 | |
Instance 1 | |
Item(Main ): Collection, data= [ 0x00 ] 0 | |
Physical | |
Item(Local ): Usage, data= [ 0x30 0x00 0x01 0x00 ] 65584 | |
(null) | |
Item(Local ): Usage, data= [ 0x31 0x00 0x01 0x00 ] 65585 | |
(null) | |
Item(Local ): Usage, data= [ 0x32 0x00 0x01 0x00 ] 65586 | |
(null) | |
Item(Local ): Usage, data= [ 0x35 0x00 0x01 0x00 ] 65589 | |
(null) | |
Item(Global): Logical Minimum, data= [ 0x00 ] 0 | |
Item(Global): Logical Maximum, data= [ 0xff 0xff 0x00 0x00 ] 65535 | |
Item(Global): Report Size, data= [ 0x10 ] 16 | |
Item(Global): Report Count, data= [ 0x04 ] 4 | |
Item(Main ): Input, data= [ 0x02 ] 2 | |
Data Variable Absolute No_Wrap Linear | |
Preferred_State No_Null_Position Non_Volatile Bitfield | |
Item(Main ): End Collection, data=none | |
Item(Local ): Usage, data= [ 0x39 0x00 0x01 0x00 ] 65593 | |
(null) | |
Item(Global): Logical Minimum, data= [ 0x00 ] 0 | |
Item(Global): Logical Maximum, data= [ 0x07 ] 7 | |
Item(Global): Physical Minimum, data= [ 0x00 ] 0 | |
Item(Global): Physical Maximum, data= [ 0x3b 0x01 ] 315 | |
Item(Global): Unit, data= [ 0x14 ] 20 | |
System: English Rotation, Unit: Degrees | |
Item(Global): Report Size, data= [ 0x04 ] 4 | |
Item(Global): Report Count, data= [ 0x01 ] 1 | |
Item(Main ): Input, data= [ 0x02 ] 2 | |
Data Variable Absolute No_Wrap Linear | |
Preferred_State No_Null_Position Non_Volatile Bitfield | |
Item(Global): Usage Page, data= [ 0x09 ] 9 | |
Buttons | |
Item(Local ): Usage Minimum, data= [ 0x0f ] 15 | |
(null) | |
Item(Local ): Usage Maximum, data= [ 0x12 ] 18 | |
(null) | |
Item(Global): Logical Minimum, data= [ 0x00 ] 0 | |
Item(Global): Logical Maximum, data= [ 0x01 ] 1 | |
Item(Global): Report Size, data= [ 0x01 ] 1 | |
Item(Global): Report Count, data= [ 0x04 ] 4 | |
Item(Main ): Input, data= [ 0x02 ] 2 | |
Data Variable Absolute No_Wrap Linear | |
Preferred_State No_Null_Position Non_Volatile Bitfield | |
Item(Global): Report Size, data= [ 0x08 ] 8 | |
Item(Global): Report Count, data= [ 0x34 ] 52 | |
Item(Main ): Input, data= [ 0x03 ] 3 | |
Constant Variable Absolute No_Wrap Linear | |
Preferred_State No_Null_Position Non_Volatile Bitfield | |
Item(Global): Usage Page, data= [ 0x00 0xff ] 65280 | |
(null) | |
Item(Global): Report ID, data= [ 0x21 ] 33 | |
Item(Local ): Usage, data= [ 0x01 ] 1 | |
(null) | |
Item(Global): Report Size, data= [ 0x08 ] 8 | |
Item(Global): Report Count, data= [ 0x3f ] 63 | |
Item(Main ): Input, data= [ 0x03 ] 3 | |
Constant Variable Absolute No_Wrap Linear | |
Preferred_State No_Null_Position Non_Volatile Bitfield | |
Item(Global): Report ID, data= [ 0x81 ] 129 | |
Item(Local ): Usage, data= [ 0x02 ] 2 | |
(null) | |
Item(Global): Report Size, data= [ 0x08 ] 8 | |
Item(Global): Report Count, data= [ 0x3f ] 63 | |
Item(Main ): Input, data= [ 0x03 ] 3 | |
Constant Variable Absolute No_Wrap Linear | |
Preferred_State No_Null_Position Non_Volatile Bitfield | |
Item(Global): Report ID, data= [ 0x01 ] 1 | |
Item(Local ): Usage, data= [ 0x03 ] 3 | |
(null) | |
Item(Global): Report Size, data= [ 0x08 ] 8 | |
Item(Global): Report Count, data= [ 0x3f ] 63 | |
Item(Main ): Output, data= [ 0x83 ] 131 | |
Constant Variable Absolute No_Wrap Linear | |
Preferred_State No_Null_Position Volatile Bitfield | |
Item(Global): Report ID, data= [ 0x10 ] 16 | |
Item(Local ): Usage, data= [ 0x04 ] 4 | |
(null) | |
Item(Global): Report Size, data= [ 0x08 ] 8 | |
Item(Global): Report Count, data= [ 0x3f ] 63 | |
Item(Main ): Output, data= [ 0x83 ] 131 | |
Constant Variable Absolute No_Wrap Linear | |
Preferred_State No_Null_Position Volatile Bitfield | |
Item(Global): Report ID, data= [ 0x80 ] 128 | |
Item(Local ): Usage, data= [ 0x05 ] 5 | |
(null) | |
Item(Global): Report Size, data= [ 0x08 ] 8 | |
Item(Global): Report Count, data= [ 0x3f ] 63 | |
Item(Main ): Output, data= [ 0x83 ] 131 | |
Constant Variable Absolute No_Wrap Linear | |
Preferred_State No_Null_Position Volatile Bitfield | |
Item(Global): Report ID, data= [ 0x82 ] 130 | |
Item(Local ): Usage, data= [ 0x06 ] 6 | |
(null) | |
Item(Global): Report Size, data= [ 0x08 ] 8 | |
Item(Global): Report Count, data= [ 0x3f ] 63 | |
Item(Main ): Output, data= [ 0x83 ] 131 | |
Constant Variable Absolute No_Wrap Linear | |
Preferred_State No_Null_Position Volatile Bitfield | |
Item(Main ): End Collection, data=none | |
Endpoint Descriptor: | |
bLength 7 | |
bDescriptorType 5 | |
bEndpointAddress 0x81 EP 1 IN | |
bmAttributes 3 | |
Transfer Type Interrupt | |
Synch Type None | |
Usage Type Data | |
wMaxPacketSize 0x0040 1x 64 bytes | |
bInterval 8 | |
Endpoint Descriptor: | |
bLength 7 | |
bDescriptorType 5 | |
bEndpointAddress 0x01 EP 1 OUT | |
bmAttributes 3 | |
Transfer Type Interrupt | |
Synch Type None | |
Usage Type Data | |
wMaxPacketSize 0x0040 1x 64 bytes | |
bInterval 8 | |
Device Status: 0x0001 | |
Self Powered | |
////////////////////////////////////////////////////////////////////// | |
// USB_desc_dump | |
// Address: 01 | |
// Lowspeed: 00 | |
// Devicer dump: | |
12 01 00 02 00 00 00 40 7E 05 09 20 10 02 01 02 | |
03 01 | |
// Device: | |
bLength: 12 | |
bDescriptorType: 01 | |
bcdUSB: 0200 | |
bDeviceClass: 00 | |
bDeviceSubClass: 00 | |
bDeviceProtocol: 00 | |
bMaxPacketSize0: 40 | |
idVendor: 057E | |
idProduct: 2009 | |
bcdDevice: 0210 | |
iManufacturer: 01 | |
iProduct: 02 | |
iSerialNumber: 03 | |
bNumConfigurations: 01 | |
// String Zero: len: 04 | |
// 04 03 09 04 | |
// LangId: 0409 | |
// iManufacturer: String1(0409): len: 26 | |
// 26 03 4E 00 69 00 6E 00 74 00 65 00 6E 00 64 00 | |
// 6F 00 20 00 43 00 6F 00 2E 00 2C 00 20 00 4C 00 | |
// 74 00 64 00 2E 00 | |
// Nintendo Co., Ltd. | |
// iProduct: String2(0409): len: 1E | |
// 1E 03 50 00 72 00 6F 00 20 00 43 00 6F 00 6E 00 | |
// 74 00 72 00 6F 00 6C 00 6C 00 65 00 72 00 | |
// Pro Controller | |
// iSerialNumber: String3(0409): len: 1A | |
// 1A 03 30 00 30 00 30 00 30 00 30 00 30 00 30 00 | |
// 30 00 30 00 30 00 30 00 31 00 | |
// 000000000001 | |
// Config0 dump: len: 0029 | |
09 02 29 00 01 01 00 A0 FA 09 04 00 00 02 03 00 | |
00 00 09 21 11 01 00 01 22 CB 00 07 05 81 03 40 | |
00 08 07 05 01 03 40 00 08 | |
// Config: | |
bLength: 09 | |
bDescriptorType: 02 | |
wTotalLength: 0029 | |
bNumInterfaces: 01 | |
bConfigurationValue: 01 | |
iConfiguration: 00 | |
bmAttributes: A0 | |
bMaxPower: FA | |
// Interface0.0: | |
bLength: 09 | |
bDescriptorType: 04 | |
bInterfaceNumber: 00 | |
bAlternateSetting: 00 | |
bNumEndpoints: 02 | |
bInterfaceClass: 03 | |
bInterfaceSubClass: 00 | |
bInterfaceProtocol: 00 | |
iInterface: 00 | |
// HID: | |
bLength: 09 | |
bDescriptorType: 21 | |
bcdHID: 0111 | |
bCountryCode: 00 | |
bNumDescriptors: 01 | |
bDescrType: 22 | |
wDescriptorLength: 00CB | |
// Report0 dump: len: 00CB | |
05 01 15 00 09 04 A1 01 85 30 05 01 05 09 19 01 | |
29 0A 15 00 25 01 75 01 95 0A 55 00 65 00 81 02 | |
05 09 19 0B 29 0E 15 00 25 01 75 01 95 04 81 02 | |
75 01 95 02 81 03 0B 01 00 01 00 A1 00 0B 30 00 | |
01 00 0B 31 00 01 00 0B 32 00 01 00 0B 35 00 01 | |
00 15 00 27 FF FF 00 00 75 10 95 04 81 02 C0 0B | |
39 00 01 00 15 00 25 07 35 00 46 3B 01 65 14 75 | |
04 95 01 81 02 05 09 19 0F 29 12 15 00 25 01 75 | |
01 95 04 81 02 75 08 95 34 81 03 06 00 FF 85 21 | |
09 01 75 08 95 3F 81 03 85 81 09 02 75 08 95 3F | |
81 03 85 01 09 03 75 08 95 3F 91 83 85 10 09 04 | |
75 08 95 3F 91 83 85 80 09 05 75 08 95 3F 91 83 | |
85 82 09 06 75 08 95 3F 91 83 C0 | |
// Report: | |
Usage Page Gen Desktop Ctrls(01) | |
Logical Min(00) | |
Usage Game Pad | |
Collection Application | |
Report Id(30) | |
Usage Page Gen Desktop Ctrls(01) | |
Usage Page Button(09) | |
Usage Min(01) | |
Usage Max(0A) | |
Logical Min(00) | |
Logical Max(01) | |
Report Size(01) | |
Report Count(0A) | |
Unit Exp(00) | |
Unit(00) | |
Input(00000010) | |
Usage Page Button(09) | |
Usage Min(0B) | |
Usage Max(0E) | |
Logical Min(00) | |
Logical Max(01) | |
Report Size(01) | |
Report Count(04) | |
Input(00000010) | |
Report Size(01) | |
Report Count(02) | |
Input(00000011) | |
Usage Btn0001 | |
Collection Physical | |
Usage Btn0030 | |
Usage Btn0031 | |
Usage Btn0032 | |
Usage Btn0035 | |
Logical Min(00) | |
Logical Max(FFFF0000) | |
Report Size(10) | |
Report Count(04) | |
Input(00000010) | |
End Collection | |
Usage Btn0039 | |
Logical Min(00) | |
Logical Max(07) | |
Physical Min(00) | |
Physical Max(3B01) | |
Unit(14) | |
Report Size(04) | |
Report Count(01) | |
Input(00000010) | |
Usage Page Button(09) | |
Usage Min(0F) | |
Usage Max(12) | |
Logical Min(00) | |
Logical Max(01) | |
Report Size(01) | |
Report Count(04) | |
Input(00000010) | |
Report Size(08) | |
Report Count(34) | |
Input(00000011) | |
Usage Page Undef(00) | |
Report Id(21) | |
Usage | |
Report Size(08) | |
Report Count(3F) | |
Input(00000011) | |
Report Id(81) | |
Usage | |
Report Size(08) | |
Report Count(3F) | |
Input(00000011) | |
Report Id(01) | |
Usage | |
Report Size(08) | |
Report Count(3F) | |
Output(10000011) | |
Report Id(10) | |
Usage | |
Report Size(08) | |
Report Count(3F) | |
Output(10000011) | |
Report Id(80) | |
Usage | |
Report Size(08) | |
Report Count(3F) | |
Output(10000011) | |
Report Id(82) | |
Usage | |
Report Size(08) | |
Report Count(3F) | |
Output(10000011) | |
End Collection | |
// Endpoint: | |
bLength: 07 | |
bDescriptorType: 05 | |
bEndpointAddress: 81 | |
bmAttributes: 03 | |
wMaxPacketSize: 0040 | |
bInterval: 08 | |
// Endpoint: | |
bLength: 07 | |
bDescriptorType: 05 | |
bEndpointAddress: 01 | |
bmAttributes: 03 | |
wMaxPacketSize: 0040 | |
bInterval: 08 | |
// Parse data here: http://eleccelerator.com/usbdescreqparser/ | |
0x05, 0x01, // Usage Page (Generic Desktop Ctrls) | |
0x15, 0x00, // Logical Minimum (0) | |
0x09, 0x04, // Usage (Joystick) | |
0xA1, 0x01, // Collection (Application) | |
0x85, 0x30, // Report ID (48) | |
0x05, 0x01, // Usage Page (Generic Desktop Ctrls) | |
0x05, 0x09, // Usage Page (Button) | |
0x19, 0x01, // Usage Minimum (0x01) | |
0x29, 0x0A, // Usage Maximum (0x0A) | |
0x15, 0x00, // Logical Minimum (0) | |
0x25, 0x01, // Logical Maximum (1) | |
0x75, 0x01, // Report Size (1) | |
0x95, 0x0A, // Report Count (10) | |
0x55, 0x00, // Unit Exponent (0) | |
0x65, 0x00, // Unit (None) | |
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x05, 0x09, // Usage Page (Button) | |
0x19, 0x0B, // Usage Minimum (0x0B) | |
0x29, 0x0E, // Usage Maximum (0x0E) | |
0x15, 0x00, // Logical Minimum (0) | |
0x25, 0x01, // Logical Maximum (1) | |
0x75, 0x01, // Report Size (1) | |
0x95, 0x04, // Report Count (4) | |
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) | |
0x0B, 0x01, 0x00, 0x01, 0x00, // Usage (0x010001) | |
0xA1, 0x00, // Collection (Physical) | |
0x0B, 0x30, 0x00, 0x01, 0x00, // Usage (0x010030) | |
0x0B, 0x31, 0x00, 0x01, 0x00, // Usage (0x010031) | |
0x0B, 0x32, 0x00, 0x01, 0x00, // Usage (0x010032) | |
0x0B, 0x35, 0x00, 0x01, 0x00, // Usage (0x010035) | |
0x15, 0x00, // Logical Minimum (0) | |
0x27, 0xFF, 0xFF, 0x00, 0x00, // Logical Maximum (65534) | |
0x75, 0x10, // Report Size (16) | |
0x95, 0x04, // Report Count (4) | |
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0xC0, // End Collection | |
0x0B, 0x39, 0x00, 0x01, 0x00, // Usage (0x010039) | |
0x15, 0x00, // Logical Minimum (0) | |
0x25, 0x07, // Logical Maximum (7) | |
0x35, 0x00, // Physical Minimum (0) | |
0x46, 0x3B, 0x01, // Physical Maximum (315) | |
0x65, 0x14, // Unit (System: English Rotation, Length: Centimeter) | |
0x75, 0x04, // Report Size (4) | |
0x95, 0x01, // Report Count (1) | |
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x05, 0x09, // Usage Page (Button) | |
0x19, 0x0F, // Usage Minimum (0x0F) | |
0x29, 0x12, // Usage Maximum (0x12) | |
0x15, 0x00, // Logical Minimum (0) | |
0x25, 0x01, // Logical Maximum (1) | |
0x75, 0x01, // Report Size (1) | |
0x95, 0x04, // Report Count (4) | |
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x75, 0x08, // Report Size (8) | |
0x95, 0x34, // Report Count (52) | |
0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) | |
0x85, 0x21, // Report ID (33) | |
0x09, 0x01, // Usage (0x01) | |
0x75, 0x08, // Report Size (8) | |
0x95, 0x3F, // Report Count (63) | |
0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x85, 0x81, // Report ID (-127) | |
0x09, 0x02, // Usage (0x02) | |
0x75, 0x08, // Report Size (8) | |
0x95, 0x3F, // Report Count (63) | |
0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x85, 0x01, // Report ID (1) | |
0x09, 0x03, // Usage (0x03) | |
0x75, 0x08, // Report Size (8) | |
0x95, 0x3F, // Report Count (63) | |
0x91, 0x83, // Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Volatile) | |
0x85, 0x10, // Report ID (16) | |
0x09, 0x04, // Usage (0x04) | |
0x75, 0x08, // Report Size (8) | |
0x95, 0x3F, // Report Count (63) | |
0x91, 0x83, // Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Volatile) | |
0x85, 0x80, // Report ID (-128) | |
0x09, 0x05, // Usage (0x05) | |
0x75, 0x08, // Report Size (8) | |
0x95, 0x3F, // Report Count (63) | |
0x91, 0x83, // Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Volatile) | |
0x85, 0x82, // Report ID (-126) | |
0x09, 0x06, // Usage (0x06) | |
0x75, 0x08, // Report Size (8) | |
0x95, 0x3F, // Report Count (63) | |
0x91, 0x83, // Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Volatile) | |
0xC0, // End Collection | |
// 203 bytes | |
// /sys/bus/usb/drivers/usbhid/3-4:1.0/0003:057E:2009.0BD4/report_descriptor: | |
Usage Page (Desktop), ; Generic desktop controls (01h) | |
Logical Minimum (0), | |
Usage (Joystick), ; Joystick (04h, application collection) | |
Collection (Application), | |
Report ID (48), | |
Usage Page (Desktop), ; Generic desktop controls (01h) | |
Usage Page (Button), ; Button (09h) | |
Usage Minimum (01h), | |
Usage Maximum (0Ah), | |
Logical Minimum (0), | |
Logical Maximum (1), | |
Report Size (1), | |
Report Count (10), | |
Unit Exponent (0), | |
Unit, | |
Input (Variable), | |
Usage Page (Button), ; Button (09h) | |
Usage Minimum (0Bh), | |
Usage Maximum (0Eh), | |
Logical Minimum (0), | |
Logical Maximum (1), | |
Report Size (1), | |
Report Count (4), | |
Input (Variable), | |
Report Size (1), | |
Report Count (2), | |
Input (Constant, Variable), | |
Usage (Desktop Pointer), ; Pointer (01h, physical collection) - generic desktop controls (01h) | |
Collection (Physical), | |
Usage (Desktop X), ; X (30h, dynamic value) - generic desktop controls (01h) | |
Usage (Desktop Y), ; Y (31h, dynamic value) - generic desktop controls (01h) | |
Usage (Desktop Z), ; Z (32h, dynamic value) - generic desktop controls (01h) | |
Usage (Desktop Rz), ; Rz (35h, dynamic value) - generic desktop controls (01h) | |
Logical Minimum (0), | |
Logical Maximum (65535), | |
Report Size (16), | |
Report Count (4), | |
Input (Variable), | |
End Collection, | |
Usage (Desktop Hat Switch), ; Hat switch (39h, dynamic value) - generic desktop controls (01h) | |
Logical Minimum (0), | |
Logical Maximum (7), | |
Physical Minimum (0), | |
Physical Maximum (315), | |
Unit (Degrees), | |
Report Size (4), | |
Report Count (1), | |
Input (Variable), | |
Usage Page (Button), ; Button (09h) | |
Usage Minimum (0Fh), | |
Usage Maximum (12h), | |
Logical Minimum (0), | |
Logical Maximum (1), | |
Report Size (1), | |
Report Count (4), | |
Input (Variable), | |
Report Size (8), | |
Report Count (52), | |
Input (Constant, Variable), | |
Usage Page (FF00h), ; FF00h, vendor-defined | |
Report ID (33), | |
Usage (01h), | |
Report Size (8), | |
Report Count (63), | |
Input (Constant, Variable), | |
Report ID (129), | |
Usage (02h), | |
Report Size (8), | |
Report Count (63), | |
Input (Constant, Variable), | |
Report ID (1), | |
Usage (03h), | |
Report Size (8), | |
Report Count (63), | |
Output (Constant, Variable, Volatile), | |
Report ID (16), | |
Usage (04h), | |
Report Size (8), | |
Report Count (63), | |
Output (Constant, Variable, Volatile), | |
Report ID (128), | |
Usage (05h), | |
Report Size (8), | |
Report Count (63), | |
Output (Constant, Variable, Volatile), | |
Report ID (130), | |
Usage (06h), | |
Report Size (8), | |
Report Count (63), | |
Output (Constant, Variable, Volatile), | |
End Collection | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment