Created
October 7, 2021 05:36
-
-
Save tmk/fb0d3f35271596b4771495a837205859 to your computer and use it in GitHub Desktop.
CORSAIR K70 RGB MK.2 LOW PROFILE - 1B1C:1B55
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
https://geekhack.org/index.php?topic=69169.msg3086804#msg3086804 | |
https://www.corsair.com/ww/en/Categories/Products/Certified-Refurbished/Gaming-Keyboards/K70-RGB-MK-2-Low-Profile/p/CH-9109018-NA/RF | |
TMK:7b2827/LUFA:d6a7df/UHS2:96112d | |
Start | |
USB configured. | |
Loop start. | |
usb_state: 12 | |
usb_state: 20 | |
usb_state: 40 | |
usb_state: 50 | |
usb_state: 51 | |
usb_state: 90 | |
////////////////////////////////////////////////////////////////////// | |
// USB_desc_dump | |
// Address: 01 | |
// Lowspeed: 00 | |
// Devicer dump: | |
12 01 00 02 00 00 00 40 1C 1B 55 1B 19 03 01 02 | |
03 01 | |
// Device: | |
bLength: 12 | |
bDescriptorType: 01 | |
bcdUSB: 0200 | |
bDeviceClass: 00 | |
bDeviceSubClass: 00 | |
bDeviceProtocol: 00 | |
bMaxPacketSize0: 40 | |
idVendor: 1B1C | |
idProduct: 1B55 | |
bcdDevice: 0319 | |
iManufacturer: 01 | |
iProduct: 02 | |
iSerialNumber: 03 | |
bNumConfigurations: 01 | |
// String Zero: len: 04 | |
// 04 03 09 04 | |
// LangId: 0409 | |
// iManufacturer: String1(0409): len: 10 | |
// 10 03 43 00 6F 00 72 00 73 00 61 00 69 00 72 00 | |
// Corsair | |
// iProduct: String2(0409): len: 78 | |
// 78 03 43 00 4F 00 52 00 53 00 41 00 49 00 52 00 | |
// 20 00 4B 00 37 00 30 00 20 00 52 00 47 00 42 00 | |
// 20 00 4D 00 4B 00 2E 00 32 00 20 00 4C 00 4F 00 | |
// 57 00 20 00 50 00 52 00 4F 00 46 00 49 00 4C 00 | |
// 45 00 20 00 4D 00 65 00 63 00 68 00 61 00 6E 00 | |
// 69 00 63 00 61 00 6C 00 20 00 47 00 61 00 6D 00 | |
// 69 00 6E 00 67 00 20 00 4B 00 65 00 79 00 62 00 | |
// 6F 00 61 00 72 00 64 00 | |
// CORSAIR K70 RGB MK.2 LOW PROFILE Mechanical Gaming Keyboard | |
// iSerialNumber: String3(0409): len: 5A | |
// 5A 03 31 00 35 00 30 00 32 00 46 00 30 00 30 00 | |
// 43 00 41 00 46 00 32 00 39 00 41 00 35 00 32 00 | |
// 39 00 35 00 41 00 39 00 42 00 33 00 46 00 46 00 | |
// 35 00 46 00 35 00 30 00 30 00 31 00 42 00 43 00 | |
// 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
// 00 00 00 00 00 00 00 00 00 00 | |
// 1502F00CAF29A5295A9B3FF5F5001BC0............ | |
// Config0 dump: len: 0042 | |
09 02 42 00 02 01 00 A0 FA 09 04 00 00 01 03 01 | |
01 00 09 21 11 01 00 01 22 C0 00 07 05 81 03 40 | |
00 01 09 04 01 00 02 03 00 00 00 09 21 11 01 00 | |
01 22 1D 00 07 05 82 03 40 00 01 07 05 02 03 40 | |
00 01 | |
// Config: | |
bLength: 09 | |
bDescriptorType: 02 | |
wTotalLength: 0042 | |
bNumInterfaces: 02 | |
bConfigurationValue: 01 | |
iConfiguration: 00 | |
bmAttributes: A0 | |
bMaxPower: FA | |
// Interface0.0: | |
bLength: 09 | |
bDescriptorType: 04 | |
bInterfaceNumber: 00 | |
bAlternateSetting: 00 | |
bNumEndpoints: 01 | |
bInterfaceClass: 03 | |
bInterfaceSubClass: 01 | |
bInterfaceProtocol: 01 | |
iInterface: 00 | |
// HID: | |
bLength: 09 | |
bDescriptorType: 21 | |
bcdHID: 0111 | |
bCountryCode: 00 | |
bNumDescriptors: 01 | |
bDescrType: 22 | |
wDescriptorLength: 00C0 | |
// Report0 dump: len: 00C0 | |
05 01 09 06 A1 01 85 01 05 07 19 E0 29 E7 15 00 | |
25 01 75 01 95 08 81 02 19 00 29 97 15 00 25 01 | |
75 01 95 98 81 02 05 08 19 01 29 03 25 01 75 01 | |
95 03 91 02 75 05 95 01 91 01 C0 05 0C 09 01 A1 | |
01 85 02 05 0C 19 00 2A FF 0F 15 00 26 FF 0F 75 | |
10 95 02 81 00 C0 06 C0 FF 09 02 A1 01 85 03 15 | |
00 26 FF 00 95 3F 75 08 09 02 81 02 C0 06 C2 FF | |
09 03 A1 01 85 0E 15 00 26 FF 00 95 3F 75 08 09 | |
03 81 02 C0 05 01 09 02 A1 01 85 05 09 01 A1 00 | |
05 09 19 01 29 20 15 00 25 01 95 20 75 01 81 02 | |
05 01 09 30 09 31 16 01 00 26 FF 7F 75 10 95 02 | |
81 06 09 38 15 81 25 7F 75 08 95 01 81 06 C0 C0 | |
// Endpoint: | |
bLength: 07 | |
bDescriptorType: 05 | |
bEndpointAddress: 81 | |
bmAttributes: 03 | |
wMaxPacketSize: 0040 | |
bInterval: 01 | |
// Interface1.0: | |
bLength: 09 | |
bDescriptorType: 04 | |
bInterfaceNumber: 01 | |
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: 001D | |
// Report0 dump: len: 001D | |
06 C2 FF 09 04 A1 01 15 00 26 FF 00 95 40 75 08 | |
09 02 B1 02 09 02 81 02 09 04 91 02 C0 | |
// Endpoint: | |
bLength: 07 | |
bDescriptorType: 05 | |
bEndpointAddress: 82 | |
bmAttributes: 03 | |
wMaxPacketSize: 0040 | |
bInterval: 01 | |
// Endpoint: | |
bLength: 07 | |
bDescriptorType: 05 | |
bEndpointAddress: 02 | |
bmAttributes: 03 | |
wMaxPacketSize: 0040 | |
bInterval: 01 | |
// Parse data here: http://eleccelerator.com/usbdescreqparser/ | |
Interface0.0:Report0 | |
0x05, 0x01, // Usage Page (Generic Desktop Ctrls) | |
0x09, 0x06, // Usage (Keyboard) | |
0xA1, 0x01, // Collection (Application) | |
0x85, 0x01, // Report ID (1) | |
0x05, 0x07, // Usage Page (Kbrd/Keypad) | |
0x19, 0xE0, // Usage Minimum (0xE0) | |
0x29, 0xE7, // Usage Maximum (0xE7) | |
0x15, 0x00, // Logical Minimum (0) | |
0x25, 0x01, // Logical Maximum (1) | |
0x75, 0x01, // Report Size (1) | |
0x95, 0x08, // Report Count (8) | |
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x19, 0x00, // Usage Minimum (0x00) | |
0x29, 0x97, // Usage Maximum (0x97) | |
0x15, 0x00, // Logical Minimum (0) | |
0x25, 0x01, // Logical Maximum (1) | |
0x75, 0x01, // Report Size (1) | |
0x95, 0x98, // Report Count (-104) | |
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x05, 0x08, // Usage Page (LEDs) | |
0x19, 0x01, // Usage Minimum (Num Lock) | |
0x29, 0x03, // Usage Maximum (Scroll Lock) | |
0x25, 0x01, // Logical Maximum (1) | |
0x75, 0x01, // Report Size (1) | |
0x95, 0x03, // Report Count (3) | |
0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) | |
0x75, 0x05, // Report Size (5) | |
0x95, 0x01, // Report Count (1) | |
0x91, 0x01, // Output (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) | |
0xC0, // End Collection | |
0x05, 0x0C, // Usage Page (Consumer) | |
0x09, 0x01, // Usage (Consumer Control) | |
0xA1, 0x01, // Collection (Application) | |
0x85, 0x02, // Report ID (2) | |
0x05, 0x0C, // Usage Page (Consumer) | |
0x19, 0x00, // Usage Minimum (Unassigned) | |
0x2A, 0xFF, 0x0F, // Usage Maximum (0x0FFF) | |
0x15, 0x00, // Logical Minimum (0) | |
0x26, 0xFF, 0x0F, // Logical Maximum (4095) | |
0x75, 0x10, // Report Size (16) | |
0x95, 0x02, // Report Count (2) | |
0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0xC0, // End Collection | |
0x06, 0xC0, 0xFF, // Usage Page (Vendor Defined 0xFFC0) | |
0x09, 0x02, // Usage (0x02) | |
0xA1, 0x01, // Collection (Application) | |
0x85, 0x03, // Report ID (3) | |
0x15, 0x00, // Logical Minimum (0) | |
0x26, 0xFF, 0x00, // Logical Maximum (255) | |
0x95, 0x3F, // Report Count (63) | |
0x75, 0x08, // Report Size (8) | |
0x09, 0x02, // Usage (0x02) | |
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0xC0, // End Collection | |
0x06, 0xC2, 0xFF, // Usage Page (Vendor Defined 0xFFC2) | |
0x09, 0x03, // Usage (0x03) | |
0xA1, 0x01, // Collection (Application) | |
0x85, 0x0E, // Report ID (14) | |
0x15, 0x00, // Logical Minimum (0) | |
0x26, 0xFF, 0x00, // Logical Maximum (255) | |
0x95, 0x3F, // Report Count (63) | |
0x75, 0x08, // Report Size (8) | |
0x09, 0x03, // Usage (0x03) | |
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0xC0, // End Collection | |
0x05, 0x01, // Usage Page (Generic Desktop Ctrls) | |
0x09, 0x02, // Usage (Mouse) | |
0xA1, 0x01, // Collection (Application) | |
0x85, 0x05, // Report ID (5) | |
0x09, 0x01, // Usage (Pointer) | |
0xA1, 0x00, // Collection (Physical) | |
0x05, 0x09, // Usage Page (Button) | |
0x19, 0x01, // Usage Minimum (0x01) | |
0x29, 0x20, // Usage Maximum (0x20) | |
0x15, 0x00, // Logical Minimum (0) | |
0x25, 0x01, // Logical Maximum (1) | |
0x95, 0x20, // Report Count (32) | |
0x75, 0x01, // Report Size (1) | |
0x81, 0x02, // Input (Data,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) | |
0x16, 0x01, 0x00, // Logical Minimum (1) | |
0x26, 0xFF, 0x7F, // Logical Maximum (32767) | |
0x75, 0x10, // Report Size (16) | |
0x95, 0x02, // Report Count (2) | |
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) | |
0x09, 0x38, // Usage (Wheel) | |
0x15, 0x81, // Logical Minimum (-127) | |
0x25, 0x7F, // Logical Maximum (127) | |
0x75, 0x08, // Report Size (8) | |
0x95, 0x01, // Report Count (1) | |
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) | |
0xC0, // End Collection | |
0xC0, // End Collection | |
// 192 bytes | |
Interface1.0:Report0 | |
0x06, 0xC2, 0xFF, // Usage Page (Vendor Defined 0xFFC2) | |
0x09, 0x04, // Usage (0x04) | |
0xA1, 0x01, // Collection (Application) | |
0x15, 0x00, // Logical Minimum (0) | |
0x26, 0xFF, 0x00, // Logical Maximum (255) | |
0x95, 0x40, // Report Count (64) | |
0x75, 0x08, // Report Size (8) | |
0x09, 0x02, // Usage (0x02) | |
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) | |
0x09, 0x02, // Usage (0x02) | |
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x09, 0x04, // Usage (0x04) | |
0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) | |
0xC0, // End Collection | |
// 29 bytes |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment