-
-
Save tmk/68d50a2c3d3e3803d5df294bff79a4ab to your computer and use it in GitHub Desktop.
COOLER MASTER CK352 Mechanlcal Keyboard
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
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 08 16 25 7F 01 09 00 01 02 | |
00 01 | |
// Device: | |
bLength: 12 | |
bDescriptorType: 01 | |
bcdUSB: 0200 | |
bDeviceClass: 00 | |
bDeviceSubClass: 00 | |
bDeviceProtocol: 00 | |
bMaxPacketSize0: 08 | |
idVendor: 2516 | |
idProduct: 017F | |
bcdDevice: 0009 | |
iManufacturer: 01 | |
iProduct: 02 | |
iSerialNumber: 00 | |
bNumConfigurations: 01 | |
// String Zero: len: 04 | |
// 04 03 09 04 | |
// LangId: 0409 | |
// iManufacturer: String1(0409): len: 1C | |
// 1C 03 43 00 4F 00 4F 00 4C 00 45 00 52 00 20 00 | |
// 4D 00 41 00 53 00 54 00 45 00 52 00 | |
// COOLER MASTER | |
// iProduct: String2(0409): len: 34 | |
// 34 03 43 00 4B 00 33 00 35 00 32 00 20 00 4D 00 | |
// 65 00 63 00 68 00 61 00 6E 00 6C 00 63 00 61 00 | |
// 6C 00 20 00 4B 00 65 00 79 00 62 00 6F 00 61 00 | |
// 72 00 64 00 | |
// CK352 Mechanlcal Keyboard | |
// Config0 dump: len: 005B | |
09 02 5B 00 03 01 00 A0 32 09 04 00 00 01 03 01 | |
01 00 09 21 10 01 00 01 22 40 00 07 05 81 03 40 | |
00 01 09 04 01 00 01 03 01 01 00 09 21 10 01 00 | |
01 22 B4 00 07 05 82 03 40 00 01 09 04 02 00 02 | |
03 01 01 00 09 21 10 01 00 01 22 1C 00 07 05 83 | |
03 40 00 01 07 05 04 03 40 00 01 | |
// Config: | |
bLength: 09 | |
bDescriptorType: 02 | |
wTotalLength: 005B | |
bNumInterfaces: 03 | |
bConfigurationValue: 01 | |
iConfiguration: 00 | |
bmAttributes: A0 | |
bMaxPower: 32 | |
// 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: 0110 | |
bCountryCode: 00 | |
bNumDescriptors: 01 | |
bDescrType: 22 | |
wDescriptorLength: 0040 | |
// Report0 dump: len: 0040 | |
05 01 09 06 A1 01 05 07 19 E0 29 E7 15 00 25 01 | |
75 01 95 08 81 02 95 01 75 08 81 03 95 05 75 01 | |
05 08 19 01 29 05 91 02 95 01 75 03 91 03 95 3E | |
75 08 15 00 26 98 00 05 07 19 00 29 98 81 00 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: 01 | |
bInterfaceClass: 03 | |
bInterfaceSubClass: 01 | |
bInterfaceProtocol: 01 | |
iInterface: 00 | |
// HID: | |
bLength: 09 | |
bDescriptorType: 21 | |
bcdHID: 0110 | |
bCountryCode: 00 | |
bNumDescriptors: 01 | |
bDescrType: 22 | |
wDescriptorLength: 00B4 | |
// Report0 dump: len: 00B4 | |
05 01 09 06 A1 01 85 01 05 07 19 E0 29 E7 15 00 | |
25 01 75 01 95 08 81 02 95 01 75 08 81 03 95 05 | |
75 01 05 08 19 01 29 05 91 02 95 01 75 03 91 03 | |
95 3D 75 08 15 00 26 98 00 05 07 19 00 29 98 81 | |
00 C0 05 0C 09 01 A1 01 85 02 09 E9 09 EA 09 E2 | |
0A 92 01 0A 94 01 0A 23 02 0A 8A 01 0A 21 02 0A | |
83 01 09 B6 09 CD 09 B5 09 B7 0A 2A 02 0A 24 02 | |
0A 25 02 15 00 25 01 95 10 75 01 81 02 C0 05 01 | |
09 02 A1 01 85 07 09 01 A1 00 05 09 19 01 29 05 | |
15 00 25 01 75 01 95 05 81 02 75 03 95 01 81 01 | |
05 01 09 30 09 31 09 38 15 81 25 7F 75 08 95 03 | |
81 06 C0 C0 | |
// Endpoint: | |
bLength: 07 | |
bDescriptorType: 05 | |
bEndpointAddress: 82 | |
bmAttributes: 03 | |
wMaxPacketSize: 0040 | |
bInterval: 01 | |
// Interface2.0: | |
bLength: 09 | |
bDescriptorType: 04 | |
bInterfaceNumber: 02 | |
bAlternateSetting: 00 | |
bNumEndpoints: 02 | |
bInterfaceClass: 03 | |
bInterfaceSubClass: 01 | |
bInterfaceProtocol: 01 | |
iInterface: 00 | |
// HID: | |
bLength: 09 | |
bDescriptorType: 21 | |
bcdHID: 0110 | |
bCountryCode: 00 | |
bNumDescriptors: 01 | |
bDescrType: 22 | |
wDescriptorLength: 001C | |
// Report0 dump: len: 001C | |
05 01 09 00 A1 01 15 00 26 FF 00 19 01 29 40 95 | |
40 75 08 81 00 19 01 29 08 91 00 C0 | |
// Endpoint: | |
bLength: 07 | |
bDescriptorType: 05 | |
bEndpointAddress: 83 | |
bmAttributes: 03 | |
wMaxPacketSize: 0040 | |
bInterval: 01 | |
// Endpoint: | |
bLength: 07 | |
bDescriptorType: 05 | |
bEndpointAddress: 04 | |
bmAttributes: 03 | |
wMaxPacketSize: 0040 | |
bInterval: 01 | |
// Parse data here: http://eleccelerator.com/usbdescreqparser/ | |
-------------- | |
0x12, // bLength | |
0x01, // bDescriptorType (Device) | |
0x00, 0x02, // bcdUSB 2.00 | |
0x00, // bDeviceClass (Use class information in the Interface Descriptors) | |
0x00, // bDeviceSubClass | |
0x00, // bDeviceProtocol | |
0x08, // bMaxPacketSize0 8 | |
0x16, 0x25, // idVendor 0x2516 | |
0x7F, 0x01, // idProduct 0x017F | |
0x09, 0x00, // bcdDevice 0.09 | |
0x01, // iManufacturer (String Index) | |
0x02, // iProduct (String Index) | |
0x00, // iSerialNumber (String Index) | |
0x01, // bNumConfigurations 1 | |
// 18 bytes | |
0x09, // bLength | |
0x02, // bDescriptorType (Configuration) | |
0x5B, 0x00, // wTotalLength 91 | |
0x03, // bNumInterfaces 3 | |
0x01, // bConfigurationValue | |
0x00, // iConfiguration (String Index) | |
0xA0, // bmAttributes Remote Wakeup | |
0x32, // bMaxPower 100mA | |
0x09, // bLength | |
0x04, // bDescriptorType (Interface) | |
0x00, // bInterfaceNumber 0 | |
0x00, // bAlternateSetting | |
0x01, // bNumEndpoints 1 | |
0x03, // bInterfaceClass | |
0x01, // bInterfaceSubClass | |
0x01, // bInterfaceProtocol | |
0x00, // iInterface (String Index) | |
0x09, // bLength | |
0x21, // bDescriptorType (HID) | |
0x10, 0x01, // bcdHID 1.10 | |
0x00, // bCountryCode | |
0x01, // bNumDescriptors | |
0x22, // bDescriptorType[0] (HID) | |
0x40, 0x00, // wDescriptorLength[0] 64 | |
0x07, // bLength | |
0x05, // bDescriptorType (Endpoint) | |
0x81, // bEndpointAddress (IN/D2H) | |
0x03, // bmAttributes (Interrupt) | |
0x40, 0x00, // wMaxPacketSize 64 | |
0x01, // bInterval 1 (unit depends on device speed) | |
0x09, // bLength | |
0x04, // bDescriptorType (Interface) | |
0x01, // bInterfaceNumber 1 | |
0x00, // bAlternateSetting | |
0x01, // bNumEndpoints 1 | |
0x03, // bInterfaceClass | |
0x01, // bInterfaceSubClass | |
0x01, // bInterfaceProtocol | |
0x00, // iInterface (String Index) | |
0x09, // bLength | |
0x21, // bDescriptorType (HID) | |
0x10, 0x01, // bcdHID 1.10 | |
0x00, // bCountryCode | |
0x01, // bNumDescriptors | |
0x22, // bDescriptorType[0] (HID) | |
0xB4, 0x00, // wDescriptorLength[0] 180 | |
0x07, // bLength | |
0x05, // bDescriptorType (Endpoint) | |
0x82, // bEndpointAddress (IN/D2H) | |
0x03, // bmAttributes (Interrupt) | |
0x40, 0x00, // wMaxPacketSize 64 | |
0x01, // bInterval 1 (unit depends on device speed) | |
0x09, // bLength | |
0x04, // bDescriptorType (Interface) | |
0x02, // bInterfaceNumber 2 | |
0x00, // bAlternateSetting | |
0x02, // bNumEndpoints 2 | |
0x03, // bInterfaceClass | |
0x01, // bInterfaceSubClass | |
0x01, // bInterfaceProtocol | |
0x00, // iInterface (String Index) | |
0x09, // bLength | |
0x21, // bDescriptorType (HID) | |
0x10, 0x01, // bcdHID 1.10 | |
0x00, // bCountryCode | |
0x01, // bNumDescriptors | |
0x22, // bDescriptorType[0] (HID) | |
0x1C, 0x00, // wDescriptorLength[0] 28 | |
0x07, // bLength | |
0x05, // bDescriptorType (Endpoint) | |
0x83, // bEndpointAddress (IN/D2H) | |
0x03, // bmAttributes (Interrupt) | |
0x40, 0x00, // wMaxPacketSize 64 | |
0x01, // bInterval 1 (unit depends on device speed) | |
0x07, // bLength | |
0x05, // bDescriptorType (Endpoint) | |
0x04, // bEndpointAddress (OUT/H2D) | |
0x03, // bmAttributes (Interrupt) | |
0x40, 0x00, // wMaxPacketSize 64 | |
0x01, // bInterval 1 (unit depends on device speed) | |
// 91 bytes | |
--- | |
0x05, 0x01, // Usage Page (Generic Desktop Ctrls) | |
0x09, 0x06, // Usage (Keyboard) | |
0xA1, 0x01, // Collection (Application) | |
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) | |
0x95, 0x01, // Report Count (1) | |
0x75, 0x08, // Report Size (8) | |
0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x95, 0x05, // Report Count (5) | |
0x75, 0x01, // Report Size (1) | |
0x05, 0x08, // Usage Page (LEDs) | |
0x19, 0x01, // Usage Minimum (Num Lock) | |
0x29, 0x05, // Usage Maximum (Kana) | |
0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) | |
0x95, 0x01, // Report Count (1) | |
0x75, 0x03, // Report Size (3) | |
0x91, 0x03, // Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) | |
0x95, 0x3E, // Report Count (62) | |
0x75, 0x08, // Report Size (8) | |
0x15, 0x00, // Logical Minimum (0) | |
0x26, 0x98, 0x00, // Logical Maximum (152) | |
0x05, 0x07, // Usage Page (Kbrd/Keypad) | |
0x19, 0x00, // Usage Minimum (0x00) | |
0x29, 0x98, // Usage Maximum (0x98) | |
0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0xC0, // End Collection | |
// 64 bytes | |
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) | |
0x95, 0x01, // Report Count (1) | |
0x75, 0x08, // Report Size (8) | |
0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x95, 0x05, // Report Count (5) | |
0x75, 0x01, // Report Size (1) | |
0x05, 0x08, // Usage Page (LEDs) | |
0x19, 0x01, // Usage Minimum (Num Lock) | |
0x29, 0x05, // Usage Maximum (Kana) | |
0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) | |
0x95, 0x01, // Report Count (1) | |
0x75, 0x03, // Report Size (3) | |
0x91, 0x03, // Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) | |
0x95, 0x3D, // Report Count (61) | |
0x75, 0x08, // Report Size (8) | |
0x15, 0x00, // Logical Minimum (0) | |
0x26, 0x98, 0x00, // Logical Maximum (152) | |
0x05, 0x07, // Usage Page (Kbrd/Keypad) | |
0x19, 0x00, // Usage Minimum (0x00) | |
0x29, 0x98, // Usage Maximum (0x98) | |
0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0xC0, // End Collection | |
0x05, 0x0C, // Usage Page (Consumer) | |
0x09, 0x01, // Usage (Consumer Control) | |
0xA1, 0x01, // Collection (Application) | |
0x85, 0x02, // Report ID (2) | |
0x09, 0xE9, // Usage (Volume Increment) | |
0x09, 0xEA, // Usage (Volume Decrement) | |
0x09, 0xE2, // Usage (Mute) | |
0x0A, 0x92, 0x01, // Usage (AL Calculator) | |
0x0A, 0x94, 0x01, // Usage (AL Local Machine Browser) | |
0x0A, 0x23, 0x02, // Usage (AC Home) | |
0x0A, 0x8A, 0x01, // Usage (AL Email Reader) | |
0x0A, 0x21, 0x02, // Usage (AC Search) | |
0x0A, 0x83, 0x01, // Usage (AL Consumer Control Configuration) | |
0x09, 0xB6, // Usage (Scan Previous Track) | |
0x09, 0xCD, // Usage (Play/Pause) | |
0x09, 0xB5, // Usage (Scan Next Track) | |
0x09, 0xB7, // Usage (Stop) | |
0x0A, 0x2A, 0x02, // Usage (AC Bookmarks) | |
0x0A, 0x24, 0x02, // Usage (AC Back) | |
0x0A, 0x25, 0x02, // Usage (AC Forward) | |
0x15, 0x00, // Logical Minimum (0) | |
0x25, 0x01, // Logical Maximum (1) | |
0x95, 0x10, // Report Count (16) | |
0x75, 0x01, // Report Size (1) | |
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, 0x07, // Report ID (7) | |
0x09, 0x01, // Usage (Pointer) | |
0xA1, 0x00, // Collection (Physical) | |
0x05, 0x09, // Usage Page (Button) | |
0x19, 0x01, // Usage Minimum (0x01) | |
0x29, 0x05, // Usage Maximum (0x05) | |
0x15, 0x00, // Logical Minimum (0) | |
0x25, 0x01, // Logical Maximum (1) | |
0x75, 0x01, // Report Size (1) | |
0x95, 0x05, // Report Count (5) | |
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x75, 0x03, // Report Size (3) | |
0x95, 0x01, // Report Count (1) | |
0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x05, 0x01, // Usage Page (Generic Desktop Ctrls) | |
0x09, 0x30, // Usage (X) | |
0x09, 0x31, // Usage (Y) | |
0x09, 0x38, // Usage (Wheel) | |
0x15, 0x81, // Logical Minimum (-127) | |
0x25, 0x7F, // Logical Maximum (127) | |
0x75, 0x08, // Report Size (8) | |
0x95, 0x03, // Report Count (3) | |
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) | |
0xC0, // End Collection | |
0xC0, // End Collection | |
// 180 bytes | |
0x05, 0x01, // Usage Page (Generic Desktop Ctrls) | |
0x09, 0x00, // Usage (Undefined) | |
0xA1, 0x01, // Collection (Application) | |
0x15, 0x00, // Logical Minimum (0) | |
0x26, 0xFF, 0x00, // Logical Maximum (255) | |
0x19, 0x01, // Usage Minimum (Pointer) | |
0x29, 0x40, // Usage Maximum (Vx) | |
0x95, 0x40, // Report Count (64) | |
0x75, 0x08, // Report Size (8) | |
0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) | |
0x19, 0x01, // Usage Minimum (Pointer) | |
0x29, 0x08, // Usage Maximum (Multi-axis Controller) | |
0x91, 0x00, // Output (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) | |
0xC0, // End Collection | |
// 28 bytes | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment