Using N-Key rollover with USBHost_t36 library

Augs

New member
My project:

So I'm making a project which involves having my teensy 4.1 as usb host, with a single keyboard plugged into the USB pins.

My code: https://github.com/AugsEU/KeySynth/tree/master/KSFrontEnd

See main.cpp in particular.

I've downloaded the lastest commit of the USBHost_t36 library from https://github.com/PaulStoffregen/USBHost_t36

I'm using this keyboard: SOLIDEE Wired Full Size Mechanical Keyboard

The problem:

So the keyboard is being detected properly and I can see when inputs are being made. The issue is that if I press 6 keys at the same time they work, but pressing a 7th key doesn't register anything. I have verified that the n-key rollover does indeed work on my PC, I can press as many keys as I want and they all get detected. I believe the 6 key limit is common if the keyboard is in "boot mode", so that could be the cause.

The example given in the code states that n-key rollover is supported by this library, at least in theory.

I've done some digging through the library to try and debug this, but I'm having a hard time working out what's going on. For some reason my key presses are going through Bluetooth related code is being called despite the fact that no bluetooth is involved in this setup; the keyboard is plugged directly into the teensy 4.1
One thing I did find is that the keyboard reports itself to only have 1 configuration available during the initial setup.
  1. Should n-key rollover "just work" or do I need to do some additional setup to get the keyboard out of "boot mode"?
  2. Is it possible that the keyboard is sending all the key presses but an internal limitation of the library means only 6 get sent to my callback functions?
  3. Has anyone got n-key rollover working with this library? Do you have a link to your code so I can have a look?
Lastly here's some logs if I turn on USBHOST_PRINT_DEBUG:

Keyboard setup: https://pastebin.com/8RpHp4xY

When I try to press 7 keys at once: https://pastebin.com/pbQRp0wc (note how there's only 6 OnRawPress lines being called, although something does happen when I press that 7th key)

Edit further investigation:

All key press callbacks are coming from process_boot_keyboard_format which suggests that the keyboard is in boot mode, but
keyboard_uses_boot_format_ is false...

The call is coming from
```
if (!keyboard_uses_boot_format_ && ((topusage_type_ & 0x2) == 0) && (topusage_index_ > 2))
{
// we have boot data.
process_boot_keyboard_format(report_, false);
}
```

Why does this if statement check if the keyboard is NOT in boot mode then call the function to process boot mode commands? This seems very odd...
 
Last edited:
I believe that thread is kind of the inverse problem of mine. In that thread the OP wants to use the teensy as a usb device, but here I want to use the teensy as usb host
 
I know there are at least two n key rollover keyboards that were working.
Booth worked differentl, one of them output boot format up to 6 keys, and then additional keys output differently the other used different format for all keys.

not at computer now, so I don’t remember which ones they were
 
Update: One of the keyboards may have been a RedRagon ... Note it has been several years since I played much
with it. I don't use this one very often as the keys make too much noise.

In your sketch you may need more than 1 HIDParser object.
I was going to mention, that you might need to use the forceHIDProtocol, but looks like you already did that.

Not sure anymore if that does anything, after the change to always go through a hid parser... From that commit:
As mentioned there it has a lot more information in the forum posts.

Also added support for N-key rollover keyboards. That either work like that Gigabyte, or like Mike Aurus Gigabyte or my ReDragon one which after 6 keys pressed, it then switches to N key rollover messages for additional keys.Lots more details up on the thread:https://forum.pjrc.com/threads/7103...ect-not-top-level-object-instead-USBHIDParser
 
I did notice that I needed to declare a separate `USBHIDParser gHidParser(gUsbHost);` to get the keyboard controller object to work. This seemed quite odd to me. I'm not clear on how declaring a separate HidParser has an effect on the KeyboardController object.

I tried what you suggested and adding another HidParser did not solve my problem.
 
Most keyboards, have more than one interface defined in them. Usually with secondary HID interfaces. For example, all of the
other keys like multi-media (volume, ...) go through one. Other might be defined for system keys like shutdown. Some may have
something like a mouse interface if they have things like a touchpad or similar keys...

At this point, not much I can do to help without additional information.

You might try running the example sketch: HIDDeviceinfo
and post the information that it returns about your device.

It was show information about the descriptors. It may show the packets returned when you type characters, including the raw packets.

You might turn on debug printing in the library (USBHost_t36.h) about line 63... uncomment it.
//#define USBHOST_PRINT_DEBUG

You might go into keyboard.cpp, and uncomments some of the prints that are commented out, example in the function:
Code:
bool KeyboardController::hid_process_in_data(const Transfer_t *transfer)
{
    const uint8_t *buffer = (const uint8_t *)transfer->buffer;
    /*
    uint16_t len = transfer->length;
    const uint8_t *p = buffer;
    USBHDBGSerial.printf("HPID(%p, %u):", transfer->driver, len);
      if (len > 32) len = 32;
    while (len--) USBHDBGSerial.printf(" %02X", *p++); */
    // Probably need to do some more checking of the data, but
    // first pass if length == 8 assume boot format:
    // Hoped driver would be something I could check but...
    if ((transfer->driver == driver_[0]) &&  (transfer->length == 8)) {
        /*USBHDBGSerial.printf(" (boot)\n"); */
        process_boot_keyboard_format(buffer, true);
        keyboard_uses_boot_format_  = true;
        return true;
    }
    //USBHDBGSerial.printf("\n");

    return false;
}
I see you have some of these logs up on pastebin...

Sorry I usually don't go up to some of those sites, as virus detectors typically don't like it...

Ditto for hid.cpp like in the function
Code:
void USBHIDParser::in_data(const Transfer_t *transfer)
{
    /*USBHDBGSerial.printf("HID: ");
    uint8_t *pb = (uint8_t*)transfer->buffer;
    for (uint8_t i = 0; i < transfer->length; i++) {
        USBHDBGSerial.printf("%02x ",pb[i]);
    }
    USBHDBGSerial.printf("\n"); */

    /*
    print("HID: ");
    print(use_report_id);
    print(" - ");
    print_hexbytes(transfer->buffer, transfer->length);
    */
...

In earlier days, I might
 
I tried the HIDParser example and it similarly failed to collect past 6 simultaneous key presses.

I can assure that pastebin is harmless(it's just text), but I have also attached those logs as plaintext files below since they are too long to post in this reply.

The most interesting part of those logs is the HID descriptor:

Code:
HID Report Descriptor (0x2000a158) size: 194
  05 01 // Usage Page(1) - Generic Desktop
  09 06 // Usage(6) -(Keyboard)
  A1 01 // Collection(1) top Usage(10000)
    85 01       // Report ID(1)
    05 07       // Usage Page(7) - Keycode
    19 04       // Usage Minimum(4) - (a and A)
    29 70       // Usage Maximum(70) - (F21)
    15 00       // Logical Minimum(0)
    25 01       // Logical maximum(1)
    75 01       // Report Size(1)
    95 78       // Report Count(78)
    81 02       // Input(2)     // (Data, Variable, Absolute)
    C0  // End Collection
  05 01 // Usage Page(1) - Generic Desktop
  09 80 // Usage(80) -(?)
  A1 01 // Collection(1) top Usage(10080)
    85 02       // Report ID(2)
    05 01       // Usage Page(1) - Generic Desktop
    19 81       // Usage Minimum(81) - (System Power Down)
    29 83       // Usage Maximum(83) - (System Wake Up)
    15 00       // Logical Minimum(0)
    25 01       // Logical maximum(1)
    95 03       // Report Count(3)
    75 01       // Report Size(1)
    81 02       // Input(2)     // (Data, Variable, Absolute)
    95 01       // Report Count(1)
    75 05       // Report Size(5)
    81 01       // Input(1)     // (Constant, Array, Absolute)
    C0  // End Collection
  05 0C // Usage Page(c) - Consumer
  09 01 // Usage(1) -(Consumer Controls)
  A1 01 // Collection(1) top Usage(c0000)
    85 03       // Report ID(3)
    15 00       // Logical Minimum(0)
    26 FF 1F    // Logical maximum(1fff)
    19 00       // Usage Minimum(0) - (?)
    2A FF 1F    // Usage Maximum(1fff) - (?)
    75 10       // Report Size(10)
    95 01       // Report Count(1)
    81 00       // Input(0)     // (Data, Array, Absolute)
    C0  // End Collection
  06 1C FF      // Usage Page(ff1c) - Vendor Defined
  09 92 // Usage(92) -
  A1 01 // Collection(1) top Usage(ff1c0092)
    85 04       // Report ID(4)
    19 00       // Usage Minimum(0) -
    2A FF 00    // Usage Maximum(ff) -
    15 00       // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    75 08       // Report Size(8)
    95 3F       // Report Count(3f)
    91 00       // Output(0)    // (Data, Array, Absolute)
    19 00       // Usage Minimum(0) -
    29 FF       // Usage Maximum(ff) -
    81 00       // Input(0)     // (Data, Array, Absolute)
    C0  // End Collection
  05 01 // Usage Page(1) - Generic Desktop
  09 02 // Usage(2) -(Mouse)
  A1 01 // Collection(1) top Usage(10000)
    85 05       // Report ID(5)
    09 01       // Usage(1) -(?)
    A1 00       // Collection(0)
    05 09       // Usage Page(9) - Button
    19 01       // Usage Minimum(1) -  (BUTTON 1)
    29 05       // Usage Maximum(5) -  (BUTTON 5)
    15 00       // Logical Minimum(0)
    25 01       // Logical maximum(1)
    95 05       // Report Count(5)
    75 01       // Report Size(1)
    81 02       // Input(2)     // (Data, Variable, Absolute)
    95 01       // Report Count(1)
    75 03       // Report Size(3)
    81 01       // Input(1)     // (Constant, Array, Absolute)
    05 01       // Usage Page(1) - Generic Desktop
    09 30       // Usage(30) -(X)
    09 31       // Usage(31) -(Y)
    16 00 80    // Logical Minimum(8000)
    26 FF 7F    // Logical maximum(7fff)
    75 10       // Report Size(10)
    95 02       // Report Count(2)
    81 06       // Input(6)     // (Data, Variable, Relative)
    09 38       // Usage(38) -(Wheel)
    15 81       // Logical Minimum(81)
    25 7F       // Logical maximum(7f)
    75 08       // Report Size(8)
    95 01       // Report Count(1)
    81 06       // Input(6)     // (Data, Variable, Relative)
    05 0C       // Usage Page(c) - Consumer
    0A 38 02    // Usage(238) -(AC Pan)
    15 81       // Logical Minimum(81)
    25 7F       // Logical maximum(7f)
    75 08       // Report Size(8)
    95 01       // Report Count(1)
    81 06       // Input(6)     // (Data, Variable, Relative)
    C0  // End Collection
  C0    // End Collection
 

Attachments

  • HIDParser_Setup_Log.txt
    21.2 KB · Views: 5
  • Keyboard_Press7Keys_Log.txt
    15.7 KB · Views: 5
  • Keyboard_Setup_Log.txt
    2.9 KB · Views: 5
  • HIDParser_Press7Keys_Log.txt
    17 KB · Views: 3
Sorry, I did not see anything obvious, and I don't have that much time I can spend on it. Busy with other stuff.

But for example what I looking for is for example if I use the Red Dragon keyboard and run the HID Dump sketch I mention, I see:
I am breaking this output into a few blocks to describe:
First the stuff you get when you first boot up.
Code:
USB HID Device Info Program

This Sketch shows information about plugged in HID devices

*** You can control the output by simple character input to Serial ***
R - Turns on or off showing the raw data
C - Toggles showing changed data only on or off
<anything else> - toggles showing the Hid formatted breakdown of the data


USBDeviceInfo claim this=2000CF64

****************************************
** Device Level **
  vid=258A
  pid=2A
  bDeviceClass = 0
  bDeviceSubClass = 0
  bDeviceProtocol = 0
09 04 00 00 01 03 01 01 00 09 21 11 01 00 01 22 43 00 07 05 81 03 08 00 01 09 04 01 00 01 03 00
00 00 09 21 11 01 00 01 22 CC 00 07 05 82 03 10 00 01

USBDeviceInfo claim this=2000CF64

****************************************
** Interface Level **
09 04 00 00 01 03 01 01 00 09 21 11 01 00 01 22 43 00 07 05 81 03 08 00 01 09 04 01 00 01 03 00
00 00 09 21 11 01 00 01 22 CC 00 07 05 82 03 10 00 01
 bInterfaceNumber = 0
 number end points = 1
 bInterfaceClass =    3
 bInterfaceSubClass = 1
    HID (BOOT)
 bInterfaceProtocol = 1
    Keyboard
report descriptor size = 67
  endpoint = 81
    attributes = 3 Interrupt
    size = 8
    interval = 1

USBDeviceInfo claim this=2000CF64

****************************************
** Interface Level **
09 04 01 00 01 03 00 00 00 09 21 11 01 00 01 22 CC 00 07 05 82 03 10 00 01
 bInterfaceNumber = 1
 number end points = 1
 bInterfaceClass =    3
 bInterfaceSubClass = 0
    HID
 bInterfaceProtocol = 0
    None
report descriptor size = 204
  endpoint = 82
    attributes = 3 Interrupt
    size = 16
    interval = 1
*** Device HID1 258a:2a - connected ***
  manufacturer: SINO WEALTH
  product: Gaming KB
*** Device HID2 258a:2a - connected ***
  manufacturer: SINO WEALTH
  product: Gaming KB
HIDDumpController(1 : 0x20004220 : 0x20009680) Claim: 258a:2a usage: 10006 SubClass: 1 Protocol: 1 - Yes
>> Boot Keyboard - Send SET_IDLE <<

HID Report Descriptor (0x20009a18) size: 67
  05 01    // Usage Page(1) - Generic Desktop
  09 06    // Usage(6) -(Keyboard)
  A1 01    // Collection(1) top Usage(10000)
    05 07    // Usage Page(7) - Keycode
    19 E0    // Usage Minimum(e0) - (Left Control)
    29 E7    // Usage Maximum(e7) - (Right GUI)
    15 00    // Logical Minimum(0)
    25 01    // Logical maximum(1)
    95 08    // Report Count(8)
    75 01    // Report Size(1)
    81 02    // Input(2)    // (Data, Variable, Absolute)
    95 01    // Report Count(1)
    75 08    // Report Size(8)
    81 03    // Input(3)    // (Constant, Variable, Absolute)
    95 06    // Report Count(6)
    75 08    // Report Size(8)
    15 00    // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    05 07    // Usage Page(7) - Keycode
    19 00    // Usage Minimum(0) - (Keycode 0)
    2A FF 00    // Usage Maximum(ff) - (Keycode 255)
    81 00    // Input(0)    // (Data, Array, Absolute)
    25 01    // Logical maximum(1)
    95 05    // Report Count(5)
    75 01    // Report Size(1)
    05 08    // Usage Page(8) - LEDs
    19 01    // Usage Minimum(1) -
    29 05    // Usage Maximum(5) -
    91 02    // Output(2)    // (Data, Variable, Absolute)
    95 01    // Report Count(1)
    75 03    // Report Size(3)
    91 03    // Output(3)    // (Constant, Variable, Absolute)
    C0    // End Collection
*** HID Device hdc1 258a: 2a - connected ***
  manufacturer: SINO WEALTH
  product: Gaming KB
HIDDumpController(1 : 0x20004220 : 0x20009dc0) Claim: 258a:2a usage: 10080 SubClass: 0 Protocol: 0 - NO (Usage: 10006)
HIDDumpController(2 : 0x20005300 : 0x20009dc0) Claim: 258a:2a usage: 10080 SubClass: 0 Protocol: 0 - Yes

HID Report Descriptor (0x2000a158) size: 204
  05 01    // Usage Page(1) - Generic Desktop
  09 80    // Usage(80) -(?)
  A1 01    // Collection(1) top Usage(10080)
    85 01    // Report ID(1)
    19 81    // Usage Minimum(81) - (System Power Down)
    29 83    // Usage Maximum(83) - (System Wake Up)
    15 00    // Logical Minimum(0)
    25 01    // Logical maximum(1)
    75 01    // Report Size(1)
    95 03    // Report Count(3)
    81 02    // Input(2)    // (Data, Variable, Absolute)
    95 05    // Report Count(5)
    81 01    // Input(1)    // (Constant, Array, Absolute)
    C0    // End Collection
  05 0C    // Usage Page(c) - Consumer
  09 01    // Usage(1) -(Consumer Controls)
  A1 01    // Collection(1) top Usage(c0000)
    85 02    // Report ID(2)
    19 00    // Usage Minimum(0) - (?)
    2A 3C 02    // Usage Maximum(23c) - (AC Format)
    15 00    // Logical Minimum(0)
    26 3C 02    // Logical maximum(23c)
    95 01    // Report Count(1)
    75 10    // Report Size(10)
    81 00    // Input(0)    // (Data, Array, Absolute)
    C0    // End Collection
  06 00 FF    // Usage Page(ff00) - Vendor Defined
  09 01    // Usage(1) -
  A1 01    // Collection(1) top Usage(ff000000)
    85 05    // Report ID(5)
    15 00    // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    19 01    // Usage Minimum(1) -
    29 02    // Usage Maximum(2) -
    75 08    // Report Size(8)
    95 05    // Report Count(5)
    B1 02    // Feature(2)    // (Data, Variable, Absolute)
    C0    // End Collection
  05 01    // Usage Page(1) - Generic Desktop
  09 06    // Usage(6) -(Keyboard)
  A1 01    // Collection(1) top Usage(10000)
    85 06    // Report ID(6)
    15 00    // Logical Minimum(0)
    25 01    // Logical maximum(1)
    75 01    // Report Size(1)
    95 70    // Report Count(70)
    05 07    // Usage Page(7) - Keycode
    19 E0    // Usage Minimum(e0) - (Left Control)
    29 E7    // Usage Maximum(e7) - (Right GUI)
    19 00    // Usage Minimum(0) - (Keycode 0)
    29 67    // Usage Maximum(67) - (Keypad =)
    81 02    // Input(2)    // (Data, Variable, Absolute)
    95 08    // Report Count(8)
    81 01    // Input(1)    // (Constant, Array, Absolute)
    C0    // End Collection
  06 00 FF    // Usage Page(ff00) - Vendor Defined
  09 01    // Usage(1) -
  A1 01    // Collection(1) top Usage(ff000000)
    85 09    // Report ID(9)
    15 00    // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    09 00    // Usage(0) -
    75 08    // Report Size(8)
    96 F8 01    // Report Count(1f8)
    B1 02    // Feature(2)    // (Data, Variable, Absolute)
    C0    // End Collection
  06 00 FF    // Usage Page(ff00) - Vendor Defined
  09 01    // Usage(1) -
  A1 01    // Collection(1) top Usage(ff000000)
    85 0A    // Report ID(a)
    15 00    // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    09 00    // Usage(0) -
    75 08    // Report Size(8)
    95 29    // Report Count(29)
    B1 02    // Feature(2)    // (Data, Variable, Absolute)
    C0    // End Collection
  06 00 FF    // Usage Page(ff00) - Vendor Defined
  09 01    // Usage(1) -
  A1 01    // Collection(1) top Usage(ff000000)
    85 0B    // Report ID(b)
    15 00    // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    09 00    // Usage(0) -
    75 08    // Report Size(8)
    95 7E    // Report Count(7e)
    B1 02    // Feature(2)    // (Data, Variable, Absolute)
    C0    // End Collection
  06 00 FF    // Usage Page(ff00) - Vendor Defined
  09 01    // Usage(1) -
  A1 01    // Collection(1) top Usage(ff000000)
    85 0C    // Report ID(c)
    15 00    // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    09 00    // Usage(0) -
    75 08    // Report Size(8)
    96 80 07    // Report Count(780)
    B1 02    // Feature(2)    // (Data, Variable, Absolute)
    C0    // End Collection
HIDDumpController(1 : 0x20004220 : 0x20009dc0) Claim: 258a:2a usage: c0001 SubClass: 0 Protocol: 0 - NO (Usage: 10006)
HIDDumpController(2 : 0x20005300 : 0x20009dc0) Claim: 258a:2a usage: c0001 SubClass: 0 Protocol: 0 - NO (Usage: 10080)
HIDDumpController(3 : 0x200063e0 : 0x20009dc0) Claim: 258a:2a usage: c0001 SubClass: 0 Protocol: 0 - Yes

HID Report Descriptor (0x2000a158) size: 204
  05 01    // Usage Page(1) - Generic Desktop
  09 80    // Usage(80) -(?)
  A1 01    // Collection(1) top Usage(10080)
    85 01    // Report ID(1)
    19 81    // Usage Minimum(81) - (System Power Down)
    29 83    // Usage Maximum(83) - (System Wake Up)
    15 00    // Logical Minimum(0)
    25 01    // Logical maximum(1)
    75 01    // Report Size(1)
    95 03    // Report Count(3)
    81 02    // Input(2)    // (Data, Variable, Absolute)
    95 05    // Report Count(5)
    81 01    // Input(1)    // (Constant, Array, Absolute)
    C0    // End Collection
  05 0C    // Usage Page(c) - Consumer
  09 01    // Usage(1) -(Consumer Controls)
  A1 01    // Collection(1) top Usage(c0000)
    85 02    // Report ID(2)
    19 00    // Usage Minimum(0) - (?)
    2A 3C 02    // Usage Maximum(23c) - (AC Format)
    15 00    // Logical Minimum(0)
    26 3C 02    // Logical maximum(23c)
    95 01    // Report Count(1)
    75 10    // Report Size(10)
    81 00    // Input(0)    // (Data, Array, Absolute)
    C0    // End Collection
  06 00 FF    // Usage Page(ff00) - Vendor Defined
  09 01    // Usage(1) -
  A1 01    // Collection(1) top Usage(ff000000)
    85 05    // Report ID(5)
    15 00    // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    19 01    // Usage Minimum(1) -
    29 02    // Usage Maximum(2) -
    75 08    // Report Size(8)
    95 05    // Report Count(5)
    B1 02    // Feature(2)    // (Data, Variable, Absolute)
    C0    // End Collection
  05 01    // Usage Page(1) - Generic Desktop
  09 06    // Usage(6) -(Keyboard)
  A1 01    // Collection(1) top Usage(10000)
    85 06    // Report ID(6)
    15 00    // Logical Minimum(0)
    25 01    // Logical maximum(1)
    75 01    // Report Size(1)
    95 70    // Report Count(70)
    05 07    // Usage Page(7) - Keycode
    19 E0    // Usage Minimum(e0) - (Left Control)
    29 E7    // Usage Maximum(e7) - (Right GUI)
    19 00    // Usage Minimum(0) - (Keycode 0)
    29 67    // Usage Maximum(67) - (Keypad =)
    81 02    // Input(2)    // (Data, Variable, Absolute)
    95 08    // Report Count(8)
    81 01    // Input(1)    // (Constant, Array, Absolute)
    C0    // End Collection
  06 00 FF    // Usage Page(ff00) - Vendor Defined
  09 01    // Usage(1) -
  A1 01    // Collection(1) top Usage(ff000000)
    85 09    // Report ID(9)
    15 00    // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    09 00    // Usage(0) -
    75 08    // Report Size(8)
    96 F8 01    // Report Count(1f8)
    B1 02    // Feature(2)    // (Data, Variable, Absolute)
    C0    // End Collection
  06 00 FF    // Usage Page(ff00) - Vendor Defined
  09 01    // Usage(1) -
  A1 01    // Collection(1) top Usage(ff000000)
    85 0A    // Report ID(a)
    15 00    // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    09 00    // Usage(0) -
    75 08    // Report Size(8)
    95 29    // Report Count(29)
    B1 02    // Feature(2)    // (Data, Variable, Absolute)
    C0    // End Collection
  06 00 FF    // Usage Page(ff00) - Vendor Defined
  09 01    // Usage(1) -
  A1 01    // Collection(1) top Usage(ff000000)
    85 0B    // Report ID(b)
    15 00    // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    09 00    // Usage(0) -
    75 08    // Report Size(8)
    95 7E    // Report Count(7e)
    B1 02    // Feature(2)    // (Data, Variable, Absolute)
    C0    // End Collection
  06 00 FF    // Usage Page(ff00) - Vendor Defined
  09 01    // Usage(1) -
  A1 01    // Collection(1) top Usage(ff000000)
    85 0C    // Report ID(c)
    15 00    // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    09 00    // Usage(0) -
    75 08    // Report Size(8)
    96 80 07    // Report Count(780)
    B1 02    // Feature(2)    // (Data, Variable, Absolute)
    C0    // End Collection
HIDDumpController(1 : 0x20004220 : 0x20009dc0) Claim: 258a:2a usage: ff000001 SubClass: 0 Protocol: 0 - NO (Usage: 10006)
HIDDumpController(2 : 0x20005300 : 0x20009dc0) Claim: 258a:2a usage: ff000001 SubClass: 0 Protocol: 0 - NO (Usage: 10080)
HIDDumpController(3 : 0x200063e0 : 0x20009dc0) Claim: 258a:2a usage: ff000001 SubClass: 0 Protocol: 0 - NO (Usage: c0001)
HIDDumpController(4 : 0x200074c0 : 0x20009dc0) Claim: 258a:2a usage: ff000001 SubClass: 0 Protocol: 0 - Yes

HID Report Descriptor (0x2000a158) size: 204
  05 01    // Usage Page(1) - Generic Desktop
  09 80    // Usage(80) -(?)
  A1 01    // Collection(1) top Usage(10080)
    85 01    // Report ID(1)
    19 81    // Usage Minimum(81) - (System Power Down)
    29 83    // Usage Maximum(83) - (System Wake Up)
    15 00    // Logical Minimum(0)
    25 01    // Logical maximum(1)
    75 01    // Report Size(1)
    95 03    // Report Count(3)
    81 02    // Input(2)    // (Data, Variable, Absolute)
    95 05    // Report Count(5)
    81 01    // Input(1)    // (Constant, Array, Absolute)
    C0    // End Collection
  05 0C    // Usage Page(c) - Consumer
  09 01    // Usage(1) -(Consumer Controls)
  A1 01    // Collection(1) top Usage(c0000)
    85 02    // Report ID(2)
    19 00    // Usage Minimum(0) - (?)
    2A 3C 02    // Usage Maximum(23c) - (AC Format)
    15 00    // Logical Minimum(0)
    26 3C 02    // Logical maximum(23c)
    95 01    // Report Count(1)
    75 10    // Report Size(10)
    81 00    // Input(0)    // (Data, Array, Absolute)
    C0    // End Collection
  06 00 FF    // Usage Page(ff00) - Vendor Defined
  09 01    // Usage(1) -
  A1 01    // Collection(1) top Usage(ff000000)
    85 05    // Report ID(5)
    15 00    // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    19 01    // Usage Minimum(1) -
    29 02    // Usage Maximum(2) -
    75 08    // Report Size(8)
    95 05    // Report Count(5)
    B1 02    // Feature(2)    // (Data, Variable, Absolute)
    C0    // End Collection
  05 01    // Usage Page(1) - Generic Desktop
  09 06    // Usage(6) -(Keyboard)
  A1 01    // Collection(1) top Usage(10000)
    85 06    // Report ID(6)
    15 00    // Logical Minimum(0)
    25 01    // Logical maximum(1)
    75 01    // Report Size(1)
    95 70    // Report Count(70)
    05 07    // Usage Page(7) - Keycode
    19 E0    // Usage Minimum(e0) - (Left Control)
    29 E7    // Usage Maximum(e7) - (Right GUI)
    19 00    // Usage Minimum(0) - (Keycode 0)
    29 67    // Usage Maximum(67) - (Keypad =)
    81 02    // Input(2)    // (Data, Variable, Absolute)
    95 08    // Report Count(8)
    81 01    // Input(1)    // (Constant, Array, Absolute)
    C0    // End Collection
  06 00 FF    // Usage Page(ff00) - Vendor Defined
  09 01    // Usage(1) -
  A1 01    // Collection(1) top Usage(ff000000)
    85 09    // Report ID(9)
    15 00    // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    09 00    // Usage(0) -
    75 08    // Report Size(8)
    96 F8 01    // Report Count(1f8)
    B1 02    // Feature(2)    // (Data, Variable, Absolute)
    C0    // End Collection
  06 00 FF    // Usage Page(ff00) - Vendor Defined
  09 01    // Usage(1) -
  A1 01    // Collection(1) top Usage(ff000000)
    85 0A    // Report ID(a)
    15 00    // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    09 00    // Usage(0) -
    75 08    // Report Size(8)
    95 29    // Report Count(29)
    B1 02    // Feature(2)    // (Data, Variable, Absolute)
    C0    // End Collection
  06 00 FF    // Usage Page(ff00) - Vendor Defined
  09 01    // Usage(1) -
  A1 01    // Collection(1) top Usage(ff000000)
    85 0B    // Report ID(b)
    15 00    // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    09 00    // Usage(0) -
    75 08    // Report Size(8)
    95 7E    // Report Count(7e)
    B1 02    // Feature(2)    // (Data, Variable, Absolute)
    C0    // End Collection
  06 00 FF    // Usage Page(ff00) - Vendor Defined
  09 01    // Usage(1) -
  A1 01    // Collection(1) top Usage(ff000000)
    85 0C    // Report ID(c)
    15 00    // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    09 00    // Usage(0) -
    75 08    // Report Size(8)
    96 80 07    // Report Count(780)
    B1 02    // Feature(2)    // (Data, Variable, Absolute)
    C0    // End Collection
HIDDumpController(1 : 0x20004220 : 0x20009dc0) Claim: 258a:2a usage: 10006 SubClass: 0 Protocol: 0 - Yes
HIDDumpController(1 : 0x20004220 : 0x20009dc0) Claim: 258a:2a usage: ff000001 SubClass: 0 Protocol: 0 - NO (Usage: 10006)
HIDDumpController(2 : 0x20005300 : 0x20009dc0) Claim: 258a:2a usage: ff000001 SubClass: 0 Protocol: 0 - NO (Usage: 10080)
HIDDumpController(3 : 0x200063e0 : 0x20009dc0) Claim: 258a:2a usage: ff000001 SubClass: 0 Protocol: 0 - NO (Usage: c0001)
HIDDumpController(4 : 0x200074c0 : 0x20009dc0) Claim: 258a:2a usage: ff000001 SubClass: 0 Protocol: 0 - Yes
HIDDumpController(1 : 0x20004220 : 0x20009dc0) Claim: 258a:2a usage: ff000001 SubClass: 0 Protocol: 0 - NO (Usage: 10006)
HIDDumpController(2 : 0x20005300 : 0x20009dc0) Claim: 258a:2a usage: ff000001 SubClass: 0 Protocol: 0 - NO (Usage: 10080)
HIDDumpController(3 : 0x200063e0 : 0x20009dc0) Claim: 258a:2a usage: ff000001 SubClass: 0 Protocol: 0 - NO (Usage: c0001)
HIDDumpController(4 : 0x200074c0 : 0x20009dc0) Claim: 258a:2a usage: ff000001 SubClass: 0 Protocol: 0 - Yes
*** HID Device hdc2 258a: 2a - connected ***
  manufacturer: SINO WEALTH
  product: Gaming KB
*** HID Device hdc3 258a: 2a - connected ***
  manufacturer: SINO WEALTH
  product: Gaming KB
*** HID Device hdc4 258a: 2a - connected ***
  manufacturer: SINO WEALTH
  product: Gaming KB
If I type just an A we see
Code:
HID(1 : 10006): 00 00 04 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:0 min:0 max:255
    usage=70004, value=1 (a and A)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
  END:

HID(1 : 10006): 00 00 00 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:0 min:0 max:255
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
  END:
Which showed two messages and the decoding, so you see that the A was pressed and then released
If then try pressing six keys together we see sets of messages like:
Code:
HID(1 : 10006): 00 00 04 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:0 min:0 max:255
    usage=70004, value=1 (a and A)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
  END:
HID(1 : 10006): 00 00 04 16 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:0 min:0 max:255
    usage=70004, value=1 (a and A)
    usage=70016, value=1 (s and S)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
  END:
HID(1 : 10006): 00 00 04 16 07 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:0 min:0 max:255
    usage=70004, value=1 (a and A)
    usage=70016, value=1 (s and S)
    usage=70007, value=1 (d and D)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
  END:
HID(1 : 10006): 00 00 04 16 07 09 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:0 min:0 max:255
    usage=70004, value=1 (a and A)
    usage=70016, value=1 (s and S)
    usage=70007, value=1 (d and D)
    usage=70009, value=1 (f and F)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
  END:
HID(1 : 10006): 00 00 04 16 07 09 0A 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:0 min:0 max:255
    usage=70004, value=1 (a and A)
    usage=70016, value=1 (s and S)
    usage=70007, value=1 (d and D)
    usage=70009, value=1 (f and F)
    usage=7000A, value=1 (g and G)
    usage=70000, value=1 (Keycode 0)
  END:
HID(1 : 10006): 00 00 04 16 07 09 0A 0B
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:0 min:0 max:255
    usage=70004, value=1 (a and A)
    usage=70016, value=1 (s and S)
    usage=70007, value=1 (d and D)
    usage=70009, value=1 (f and F)
    usage=7000A, value=1 (g and G)
    usage=7000B, value=1 (h and H)
  END:
HID(1 : 10006): 00 00 04 16 07 09 0A 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:0 min:0 max:255
    usage=70004, value=1 (a and A)
    usage=70016, value=1 (s and S)
    usage=70007, value=1 (d and D)
    usage=70009, value=1 (f and F)
    usage=7000A, value=1 (g and G)
    usage=70000, value=1 (Keycode 0)
  END:
HID(1 : 10006): 00 00 04 00 00 09 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:0 min:0 max:255
    usage=70004, value=1 (a and A)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70009, value=1 (f and F)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
  END:
HID(1 : 10006): 00 00 00 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:0 min:0 max:255
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
  END:
So you see the keys: a b c d e f g

Now if we try to go beyond 6, you will see the
first see the first six presses like before
Code:
HID(1 : 10006): 00 00 14 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:0 min:0 max:255
    usage=70014, value=1 (q and Q)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
  END:
HID(1 : 10006): 00 00 14 1A 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:0 min:0 max:255
    usage=70014, value=1 (q and Q)
    usage=7001A, value=1 (w and W)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
  END:
HID(1 : 10006): 00 00 14 1A 08 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:0 min:0 max:255
    usage=70014, value=1 (q and Q)
    usage=7001A, value=1 (w and W)
    usage=70008, value=1 (e and E)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
  END:
HID(1 : 10006): 00 00 14 1A 08 15 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:0 min:0 max:255
    usage=70014, value=1 (q and Q)
    usage=7001A, value=1 (w and W)
    usage=70008, value=1 (e and E)
    usage=70015, value=1 (r and R)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
  END:
HID(1 : 10006): 00 00 14 1A 08 15 17 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:0 min:0 max:255
    usage=70014, value=1 (q and Q)
    usage=7001A, value=1 (w and W)
    usage=70008, value=1 (e and E)
    usage=70015, value=1 (r and R)
    usage=70017, value=1 (t and T)
    usage=70000, value=1 (Keycode 0)
  END:
HID(1 : 10006): 00 00 14 1A 08 15 17 1C
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:0 min:0 max:255
    usage=70014, value=1 (q and Q)
    usage=7001A, value=1 (w and W)
    usage=70008, value=1 (e and E)
    usage=70015, value=1 (r and R)
    usage=70017, value=1 (t and T)
    usage=7001C, value=1 (y and Y)
  END:
Pressing the 7th and ... keys:
Keys pressed so far: Q W E R T Y
And then it will start giving you Full HID messages on different end point.
In this case I simply pressed the U key and started the release
Code:
HID(2 : 10080): 06 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00
END:
END:
END:
  Begin topusage:10000 type:2 min:0 max:1
    usage=700E0, value=0 (Left Control)
    usage=700E1, value=0 (Left Shift)
    usage=700E2, value=0 (Left Alt)
    usage=700E3, value=0 (Left GUI)
    usage=700E4, value=0 (Right Control)
    usage=700E5, value=0 (Right Shift)
    usage=700E6, value=0 (Right Alt)
    usage=700E7, value=0 (Right GUI)
    usage=70000, value=0 (Keycode 0)
    usage=70001, value=0 (Keycode 1)
    usage=70002, value=0 (Keycode 2)
    usage=70003, value=0 (Keycode 3)
    usage=70004, value=0 (a and A)
    usage=70005, value=0 (b and B)
    usage=70006, value=0 (c and C)
    usage=70007, value=0 (d and D)
    usage=70008, value=0 (e and E)
    usage=70009, value=0 (f and F)
    usage=7000A, value=0 (g and G)
    usage=7000B, value=0 (h and H)
    usage=7000C, value=0 (i and I)
    usage=7000D, value=0 (j and J)
    usage=7000E, value=0 (k and K)
    usage=7000F, value=0 (l and L)
    usage=70010, value=0 (m and M)
    usage=70011, value=0 (n and N)
    usage=70012, value=0 (o and O)
    usage=70013, value=0 (p and P)
    usage=70014, value=0 (q and Q)
    usage=70015, value=0 (r and R)
    usage=70016, value=0 (s and S)
    usage=70017, value=0 (t and T)
    usage=70018, value=1 (u and U)
    usage=70019, value=0 (v and V)
    usage=7001A, value=0 (w and W)
    usage=7001B, value=0 (x and X)
    usage=7001C, value=0 (y and Y)
    usage=7001D, value=0 (z and Z)
    usage=7001E, value=0 (1 and !)
    usage=7001F, value=0 (2 and @)
    usage=70020, value=0 (3 and #)
    usage=70021, value=0 (4 and $)
    usage=70022, value=0 (5 and %)
    usage=70023, value=0 (6 and ^)
    usage=70024, value=0 (7 and &)
    usage=70025, value=0 (8 and *)
    usage=70026, value=0 (9 and ()
    usage=70027, value=0 (0 and ))
    usage=70028, value=0 (Return (ENTER))
    usage=70029, value=0 (ESCAPE)
    usage=7002A, value=0 (DELETE (Backspace))
    usage=7002B, value=0 (Tab)
    usage=7002C, value=0 (Spacebar)
    usage=7002D, value=0 (- and (underscore))
    usage=7002E, value=0 (= and +)
    usage=7002F, value=0 ([ and {)
    usage=70030, value=0 (] and })
    usage=70031, value=0 (nd |)
    usage=70032, value=0 (Non-US # and ˜)
    usage=70033, value=0 (; and :)
    usage=70034, value=0 (‘ and “)
    usage=70035, value=0 (Grave Accent and Tilde)
    usage=70036, value=0 (, and <)
    usage=70037, value=0 (. and >)
    usage=70038, value=0 (/ and ?)
    usage=70039, value=0 (Caps Lock)
    usage=7003A, value=0 (F1)
    usage=7003B, value=0 (F2)
    usage=7003C, value=0 (F3)
    usage=7003D, value=0 (F4)
    usage=7003E, value=0 (F5)
    usage=7003F, value=0 (F6)
    usage=70040, value=0 (F7)
    usage=70041, value=0 (F8)
    usage=70042, value=0 (F9)
    usage=70043, value=0 (F10)
    usage=70044, value=0 (F11)
    usage=70045, value=0 (F12)
    usage=70046, value=0 (PrintScreen)
    usage=70047, value=0 (Scroll Lock)
    usage=70048, value=0 (Pause)
    usage=70049, value=0 (Insert)
    usage=7004A, value=0 (Home)
    usage=7004B, value=0 (PageUp)
    usage=7004C, value=0 (Delete Forward)
    usage=7004D, value=0 (End)
    usage=7004E, value=0 (PageDown)
    usage=7004F, value=0 (RightArrow)
    usage=70050, value=0 (LeftArrow)
    usage=70051, value=0 (DownArrow)
    usage=70052, value=0 (UpArrow)
    usage=70053, value=0 (Keypad Num Lock and Clear)
    usage=70054, value=0 (Keypad /)
    usage=70055, value=0 (Keypad *)
    usage=70056, value=0 (Keypad -)
    usage=70057, value=0 (Keypad +)
    usage=70058, value=0 (Keypad ENTER)
    usage=70059, value=0 (Keypad 1 and End)
    usage=7005A, value=0 (Keypad 2 and Down Arrow)
    usage=7005B, value=0 (Keypad 3 and PageDn)
    usage=7005C, value=0 (Keypad 4 and Left Arrow)
    usage=7005D, value=0 (Keypad 5)
    usage=7005E, value=0 (Keypad 6 and Right Arrow)
    usage=7005F, value=0 (Keypad 7 and Home)
    usage=70060, value=0 (Keypad 8 and Up Arrow)
    usage=70061, value=0 (Keypad 9 and PageUp)
    usage=70062, value=0 (Keypad 0 and Insert)
    usage=70063, value=0 (Keypad . and Delete)
    usage=70064, value=0 (Non-US nd |)
    usage=70065, value=0 (Application)
    usage=70066, value=0 (Power)
    usage=70067, value=0 (Keypad =)
  END:
END:
END:
HID(2 : 10080): 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
END:
END:
END:
  Begin topusage:10000 type:2 min:0 max:1
    usage=700E0, value=0 (Left Control)
    usage=700E1, value=0 (Left Shift)
    usage=700E2, value=0 (Left Alt)
    usage=700E3, value=0 (Left GUI)
    usage=700E4, value=0 (Right Control)
    usage=700E5, value=0 (Right Shift)
    usage=700E6, value=0 (Right Alt)
    usage=700E7, value=0 (Right GUI)
    usage=70000, value=0 (Keycode 0)
    usage=70001, value=0 (Keycode 1)
    usage=70002, value=0 (Keycode 2)
    usage=70003, value=0 (Keycode 3)
    usage=70004, value=0 (a and A)
    usage=70005, value=0 (b and B)
    usage=70006, value=0 (c and C)
    usage=70007, value=0 (d and D)
    usage=70008, value=0 (e and E)
    usage=70009, value=0 (f and F)
    usage=7000A, value=0 (g and G)
    usage=7000B, value=0 (h and H)
    usage=7000C, value=0 (i and I)
    usage=7000D, value=0 (j and J)
    usage=7000E, value=0 (k and K)
    usage=7000F, value=0 (l and L)
    usage=70010, value=0 (m and M)
    usage=70011, value=0 (n and N)
    usage=70012, value=0 (o and O)
    usage=70013, value=0 (p and P)
    usage=70014, value=0 (q and Q)
    usage=70015, value=0 (r and R)
    usage=70016, value=0 (s and S)
    usage=70017, value=0 (t and T)
    usage=70018, value=0 (u and U)
    usage=70019, value=0 (v and V)
    usage=7001A, value=0 (w and W)
    usage=7001B, value=0 (x and X)
    usage=7001C, value=0 (y and Y)
    usage=7001D, value=0 (z and Z)
    usage=7001E, value=0 (1 and !)
    usage=7001F, value=0 (2 and @)
    usage=70020, value=0 (3 and #)
    usage=70021, value=0 (4 and $)
    usage=70022, value=0 (5 and %)
    usage=70023, value=0 (6 and ^)
    usage=70024, value=0 (7 and &)
    usage=70025, value=0 (8 and *)
    usage=70026, value=0 (9 and ()
    usage=70027, value=0 (0 and ))
    usage=70028, value=0 (Return (ENTER))
    usage=70029, value=0 (ESCAPE)
    usage=7002A, value=0 (DELETE (Backspace))
    usage=7002B, value=0 (Tab)
    usage=7002C, value=0 (Spacebar)
    usage=7002D, value=0 (- and (underscore))
    usage=7002E, value=0 (= and +)
    usage=7002F, value=0 ([ and {)
    usage=70030, value=0 (] and })
    usage=70031, value=0 (nd |)
    usage=70032, value=0 (Non-US # and ˜)
    usage=70033, value=0 (; and :)
    usage=70034, value=0 (‘ and “)
    usage=70035, value=0 (Grave Accent and Tilde)
    usage=70036, value=0 (, and <)
    usage=70037, value=0 (. and >)
    usage=70038, value=0 (/ and ?)
    usage=70039, value=0 (Caps Lock)
    usage=7003A, value=0 (F1)
    usage=7003B, value=0 (F2)
    usage=7003C, value=0 (F3)
    usage=7003D, value=0 (F4)
    usage=7003E, value=0 (F5)
    usage=7003F, value=0 (F6)
    usage=70040, value=0 (F7)
    usage=70041, value=0 (F8)
    usage=70042, value=0 (F9)
    usage=70043, value=0 (F10)
    usage=70044, value=0 (F11)
    usage=70045, value=0 (F12)
    usage=70046, value=0 (PrintScreen)
    usage=70047, value=0 (Scroll Lock)
    usage=70048, value=0 (Pause)
    usage=70049, value=0 (Insert)
    usage=7004A, value=0 (Home)
    usage=7004B, value=0 (PageUp)
    usage=7004C, value=0 (Delete Forward)
    usage=7004D, value=0 (End)
    usage=7004E, value=0 (PageDown)
    usage=7004F, value=0 (RightArrow)
    usage=70050, value=0 (LeftArrow)
    usage=70051, value=0 (DownArrow)
    usage=70052, value=0 (UpArrow)
    usage=70053, value=0 (Keypad Num Lock and Clear)
    usage=70054, value=0 (Keypad /)
    usage=70055, value=0 (Keypad *)
    usage=70056, value=0 (Keypad -)
    usage=70057, value=0 (Keypad +)
    usage=70058, value=0 (Keypad ENTER)
    usage=70059, value=0 (Keypad 1 and End)
    usage=7005A, value=0 (Keypad 2 and Down Arrow)
    usage=7005B, value=0 (Keypad 3 and PageDn)
    usage=7005C, value=0 (Keypad 4 and Left Arrow)
    usage=7005D, value=0 (Keypad 5)
    usage=7005E, value=0 (Keypad 6 and Right Arrow)
    usage=7005F, value=0 (Keypad 7 and Home)
    usage=70060, value=0 (Keypad 8 and Up Arrow)
    usage=70061, value=0 (Keypad 9 and PageUp)
    usage=70062, value=0 (Keypad 0 and Insert)
    usage=70063, value=0 (Keypad . and Delete)
    usage=70064, value=0 (Non-US nd |)
    usage=70065, value=0 (Application)
    usage=70066, value=0 (Power)
    usage=70067, value=0 (Keypad =)
  END:
END:
END:
And then lifted my fingers off the other keys and it returned to show those changes with BOOT mode messages
Code:
HID(1 : 10006): 00 00 14 1A 08 15 17 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:0 min:0 max:255
    usage=70014, value=1 (q and Q)
    usage=7001A, value=1 (w and W)
    usage=70008, value=1 (e and E)
    usage=70015, value=1 (r and R)
    usage=70017, value=1 (t and T)
    usage=70000, value=1 (Keycode 0)
  END:
HID(1 : 10006): 00 00 14 1A 08 15 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:0 min:0 max:255
    usage=70014, value=1 (q and Q)
    usage=7001A, value=1 (w and W)
    usage=70008, value=1 (e and E)
    usage=70015, value=1 (r and R)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
  END:
HID(1 : 10006): 00 00 00 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:0 min:0 max:255
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
    usage=70000, value=1 (Keycode 0)
  END:
Note these messages may show multiple presses or releases on one message. In this case
the first one in this last block showed we released two keys: T Y
And the last message showed we dropped the remaining 4...

Edit: Note I often times do some of this using changed only mode which works well for boot mode code but not as much for HID
So for QWERTYU
The first part boils down to just output
Code:
HID(1 : 10006): 00 00 14 00 00 00 00 00
usage=70014, value=1 (q and Q)
HID(1 : 10006): 00 00 14 1A 00 00 00 00
usage=7001A, value=1 (w and W)
HID(1 : 10006): 00 00 14 1A 08 00 00 00
usage=70008, value=1 (e and E)
HID(1 : 10006): 00 00 14 1A 08 15 00 00
usage=70015, value=1 (r and R)
HID(1 : 10006): 00 00 14 1A 08 15 17 00
usage=70017, value=1 (t and T)
HID(1 : 10006): 00 00 14 1A 08 15 17 1C
usage=7001C, value=1 (y and Y)
HID(2 : 10080): 06 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00
usage=700E0, value=0 (Left Control)
usage=700E1, value=0 (Left Shift)
usage=700E2, value=0 (Left Alt)

Will more information about the other N key one I have on next message
 
Last edited:
As mentioned in the previous post the other N key I have is a GIGAByte
The startup information:
Code:
USB HID Device Info Program

This Sketch shows information about plugged in HID devices

*** You can control the output by simple character input to Serial ***
R - Turns on or off showing the raw data
C - Toggles showing changed data only on or off
<anything else> - toggles showing the Hid formatted breakdown of the data



USB HID Device Info Program

This Sketch shows information about plugged in HID devices

*** You can control the output by simple character input to Serial ***
R - Turns on or off showing the raw data
C - Toggles showing changed data only on or off
<anything else> - toggles showing the Hid formatted breakdown of the data


USBDeviceInfo claim this=2000CF64

****************************************
** Device Level **
  vid=4D9
  pid=A06B
  bDeviceClass = 0
  bDeviceSubClass = 0
  bDeviceProtocol = 0
09 04 00 00 01 03 01 01 00 09 21 10 01 00 01 22 3B 00 07 05 81 03 08 00 08 09 04 01 00 01 03 00
00 00 09 21 10 01 00 01 22 51 00 07 05 82 03 10 00 08 09 04 02 00 01 03 00 00 00 09 21 10 01 00
01 22 25 00 07 05 83 03 10 00 01

USBDeviceInfo claim this=2000CF64

****************************************
** Interface Level **
09 04 00 00 01 03 01 01 00 09 21 10 01 00 01 22 3B 00 07 05 81 03 08 00 08 09 04 01 00 01 03 00
00 00 09 21 10 01 00 01 22 51 00 07 05 82 03 10 00 08 09 04 02 00 01 03 00 00 00 09 21 10 01 00
01 22 25 00 07 05 83 03 10 00 01
 bInterfaceNumber = 0
 number end points = 1
 bInterfaceClass =    3
 bInterfaceSubClass = 1
    HID (BOOT)
 bInterfaceProtocol = 1
    Keyboard
report descriptor size = 59
  endpoint = 81
    attributes = 3 Interrupt
    size = 8
    interval = 8

USBDeviceInfo claim this=2000CF64

****************************************
** Interface Level **
09 04 01 00 01 03 00 00 00 09 21 10 01 00 01 22 51 00 07 05 82 03 10 00 08 09 04 02 00 01 03 00
00 00 09 21 10 01 00 01 22 25 00 07 05 83 03 10 00 01
 bInterfaceNumber = 1
 number end points = 1
 bInterfaceClass =    3
 bInterfaceSubClass = 0
    HID
 bInterfaceProtocol = 0
    None
report descriptor size = 81
  endpoint = 82
    attributes = 3 Interrupt
    size = 16
    interval = 8

USBDeviceInfo claim this=2000CF64

****************************************
** Interface Level **
09 04 02 00 01 03 00 00 00 09 21 10 01 00 01 22 25 00 07 05 83 03 10 00 01
 bInterfaceNumber = 2
 number end points = 1
 bInterfaceClass =    3
 bInterfaceSubClass = 0
    HID
 bInterfaceProtocol = 0
    None
report descriptor size = 37
  endpoint = 83
    attributes = 3 Interrupt
    size = 16
    interval = 1
*** Device HID1 4d9:a06b - connected ***
  manufacturer: E-Signal
  product: GIGABYTE Keyboard
*** Device HID2 4d9:a06b - connected ***
  manufacturer: E-Signal
  product: GIGABYTE Keyboard
*** Device HID3 4d9:a06b - connected ***
  manufacturer: E-Signal
  product: GIGABYTE Keyboard
HIDDumpController(1 : 0x20004220 : 0x20009680) Claim: 4d9:a06b usage: 10006 SubClass: 1 Protocol: 1 - Yes
>> Boot Keyboard - Send SET_IDLE <<

HID Report Descriptor (0x20009a18) size: 59
  05 01    // Usage Page(1) - Generic Desktop
  09 06    // Usage(6) -(Keyboard)
  A1 01    // Collection(1) top Usage(10000)
    05 08    // Usage Page(8) - LEDs
    15 00    // Logical Minimum(0)
    25 01    // Logical maximum(1)
    19 01    // Usage Minimum(1) -
    29 03    // Usage Maximum(3) -
    75 01    // Report Size(1)
    95 03    // Report Count(3)
    91 02    // Output(2)    // (Data, Variable, Absolute)
    95 05    // Report Count(5)
    91 01    // Output(1)    // (Constant, Array, Absolute)
    05 07    // Usage Page(7) - Keycode
    19 E0    // Usage Minimum(e0) - (Left Control)
    29 E7    // Usage Maximum(e7) - (Right GUI)
    75 01    // Report Size(1)
    95 08    // Report Count(8)
    81 02    // Input(2)    // (Data, Variable, Absolute)
    95 08    // Report Count(8)
    81 01    // Input(1)    // (Constant, Array, Absolute)
    15 00    // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    19 00    // Usage Minimum(0) - (Keycode 0)
    2A FF 00    // Usage Maximum(ff) - (Keycode 255)
    75 08    // Report Size(8)
    95 06    // Report Count(6)
    81 00    // Input(0)    // (Data, Array, Absolute)
    C0    // End Collection
*** HID Device hdc1 4d9: a06b - connected ***
  manufacturer: E-Signal
  product: GIGABYTE Keyboard
HIDDumpController(1 : 0x20004220 : 0x20009dc0) Claim: 4d9:a06b usage: 10080 SubClass: 0 Protocol: 0 - NO (Usage: 10006)
HIDDumpController(2 : 0x20005300 : 0x20009dc0) Claim: 4d9:a06b usage: 10080 SubClass: 0 Protocol: 0 - Yes

HID Report Descriptor (0x2000a158) size: 81
  05 01    // Usage Page(1) - Generic Desktop
  09 80    // Usage(80) -(?)
  A1 01    // Collection(1) top Usage(10080)
    85 02    // Report ID(2)
    19 81    // Usage Minimum(81) - (System Power Down)
    29 83    // Usage Maximum(83) - (System Wake Up)
    15 00    // Logical Minimum(0)
    25 01    // Logical maximum(1)
    75 01    // Report Size(1)
    95 03    // Report Count(3)
    81 02    // Input(2)    // (Data, Variable, Absolute)
    95 05    // Report Count(5)
    81 01    // Input(1)    // (Constant, Array, Absolute)
    C0    // End Collection
  05 0C    // Usage Page(c) - Consumer
  09 01    // Usage(1) -(Consumer Controls)
  A1 01    // Collection(1) top Usage(c0000)
    85 03    // Report ID(3)
    19 00    // Usage Minimum(0) - (?)
    2A FF 02    // Usage Maximum(2ff) - (?)
    15 00    // Logical Minimum(0)
    26 FF 7F    // Logical maximum(7fff)
    95 01    // Report Count(1)
    75 10    // Report Size(10)
    81 00    // Input(0)    // (Data, Array, Absolute)
    C0    // End Collection
  06 00 FF    // Usage Page(ff00) - Vendor Defined
  09 01    // Usage(1) -
  A1 01    // Collection(1) top Usage(ff000000)
    85 06    // Report ID(6)
    15 00    // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    09 2F    // Usage(2f) -
    75 08    // Report Size(8)
    95 03    // Report Count(3)
    81 02    // Input(2)    // (Data, Variable, Absolute)
    09 30    // Usage(30) -
    95 07    // Report Count(7)
    B1 02    // Feature(2)    // (Data, Variable, Absolute)
    C0    // End Collection
HIDDumpController(1 : 0x20004220 : 0x20009dc0) Claim: 4d9:a06b usage: c0001 SubClass: 0 Protocol: 0 - NO (Usage: 10006)
HIDDumpController(2 : 0x20005300 : 0x20009dc0) Claim: 4d9:a06b usage: c0001 SubClass: 0 Protocol: 0 - NO (Usage: 10080)
HIDDumpController(3 : 0x200063e0 : 0x20009dc0) Claim: 4d9:a06b usage: c0001 SubClass: 0 Protocol: 0 - Yes

HID Report Descriptor (0x2000a158) size: 81
  05 01    // Usage Page(1) - Generic Desktop
  09 80    // Usage(80) -(?)
  A1 01    // Collection(1) top Usage(10080)
    85 02    // Report ID(2)
    19 81    // Usage Minimum(81) - (System Power Down)
    29 83    // Usage Maximum(83) - (System Wake Up)
    15 00    // Logical Minimum(0)
    25 01    // Logical maximum(1)
    75 01    // Report Size(1)
    95 03    // Report Count(3)
    81 02    // Input(2)    // (Data, Variable, Absolute)
    95 05    // Report Count(5)
    81 01    // Input(1)    // (Constant, Array, Absolute)
    C0    // End Collection
  05 0C    // Usage Page(c) - Consumer
  09 01    // Usage(1) -(Consumer Controls)
  A1 01    // Collection(1) top Usage(c0000)
    85 03    // Report ID(3)
    19 00    // Usage Minimum(0) - (?)
    2A FF 02    // Usage Maximum(2ff) - (?)
    15 00    // Logical Minimum(0)
    26 FF 7F    // Logical maximum(7fff)
    95 01    // Report Count(1)
    75 10    // Report Size(10)
    81 00    // Input(0)    // (Data, Array, Absolute)
    C0    // End Collection
  06 00 FF    // Usage Page(ff00) - Vendor Defined
  09 01    // Usage(1) -
  A1 01    // Collection(1) top Usage(ff000000)
    85 06    // Report ID(6)
    15 00    // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    09 2F    // Usage(2f) -
    75 08    // Report Size(8)
    95 03    // Report Count(3)
    81 02    // Input(2)    // (Data, Variable, Absolute)
    09 30    // Usage(30) -
    95 07    // Report Count(7)
    B1 02    // Feature(2)    // (Data, Variable, Absolute)
    C0    // End Collection
HIDDumpController(1 : 0x20004220 : 0x20009dc0) Claim: 4d9:a06b usage: ff000001 SubClass: 0 Protocol: 0 - NO (Usage: 10006)
HIDDumpController(2 : 0x20005300 : 0x20009dc0) Claim: 4d9:a06b usage: ff000001 SubClass: 0 Protocol: 0 - NO (Usage: 10080)
HIDDumpController(3 : 0x200063e0 : 0x20009dc0) Claim: 4d9:a06b usage: ff000001 SubClass: 0 Protocol: 0 - NO (Usage: c0001)
HIDDumpController(4 : 0x200074c0 : 0x20009dc0) Claim: 4d9:a06b usage: ff000001 SubClass: 0 Protocol: 0 - Yes

HID Report Descriptor (0x2000a158) size: 81
  05 01    // Usage Page(1) - Generic Desktop
  09 80    // Usage(80) -(?)
  A1 01    // Collection(1) top Usage(10080)
    85 02    // Report ID(2)
    19 81    // Usage Minimum(81) - (System Power Down)
    29 83    // Usage Maximum(83) - (System Wake Up)
    15 00    // Logical Minimum(0)
    25 01    // Logical maximum(1)
    75 01    // Report Size(1)
    95 03    // Report Count(3)
    81 02    // Input(2)    // (Data, Variable, Absolute)
    95 05    // Report Count(5)
    81 01    // Input(1)    // (Constant, Array, Absolute)
    C0    // End Collection
  05 0C    // Usage Page(c) - Consumer
  09 01    // Usage(1) -(Consumer Controls)
  A1 01    // Collection(1) top Usage(c0000)
    85 03    // Report ID(3)
    19 00    // Usage Minimum(0) - (?)
    2A FF 02    // Usage Maximum(2ff) - (?)
    15 00    // Logical Minimum(0)
    26 FF 7F    // Logical maximum(7fff)
    95 01    // Report Count(1)
    75 10    // Report Size(10)
    81 00    // Input(0)    // (Data, Array, Absolute)
    C0    // End Collection
  06 00 FF    // Usage Page(ff00) - Vendor Defined
  09 01    // Usage(1) -
  A1 01    // Collection(1) top Usage(ff000000)
    85 06    // Report ID(6)
    15 00    // Logical Minimum(0)
    26 FF 00    // Logical maximum(ff)
    09 2F    // Usage(2f) -
    75 08    // Report Size(8)
    95 03    // Report Count(3)
    81 02    // Input(2)    // (Data, Variable, Absolute)
    09 30    // Usage(30) -
    95 07    // Report Count(7)
    B1 02    // Feature(2)    // (Data, Variable, Absolute)
    C0    // End Collection
*** HID Device hdc2 4d9: a06b - connected ***
  manufacturer: E-Signal
  product: GIGABYTE Keyboard
*** HID Device hdc3 4d9: a06b - connected ***
  manufacturer: E-Signal
  product: GIGABYTE Keyboard
*** HID Device hdc4 4d9: a06b - connected ***
  manufacturer: E-Signal
  product: GIGABYTE Keyboard
HIDDumpController(1 : 0x20004220 : 0x2000a500) Claim: 4d9:a06b usage: 10006 SubClass: 0 Protocol: 0 - Yes
Just pressing and release of the A key
Code:
HID(1 : 10006): 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:2 min:0 max:1
    usage=70000, value=0 (Keycode 0)
    usage=70001, value=0 (Keycode 1)
    usage=70002, value=0 (Keycode 2)
    usage=70003, value=0 (Keycode 3)
    usage=70004, value=1 (a and A)
    usage=70005, value=0 (b and B)
    usage=70006, value=0 (c and C)
    usage=70007, value=0 (d and D)
    usage=70008, value=0 (e and E)
    usage=70009, value=0 (f and F)
    usage=7000A, value=0 (g and G)
    usage=7000B, value=0 (h and H)
    usage=7000C, value=0 (i and I)
    usage=7000D, value=0 (j and J)
    usage=7000E, value=0 (k and K)
    usage=7000F, value=0 (l and L)
    usage=70010, value=0 (m and M)
    usage=70011, value=0 (n and N)
    usage=70012, value=0 (o and O)
    usage=70013, value=0 (p and P)
    usage=70014, value=0 (q and Q)
    usage=70015, value=0 (r and R)
    usage=70016, value=0 (s and S)
    usage=70017, value=0 (t and T)
    usage=70018, value=0 (u and U)
    usage=70019, value=0 (v and V)
    usage=7001A, value=0 (w and W)
    usage=7001B, value=0 (x and X)
    usage=7001C, value=0 (y and Y)
    usage=7001D, value=0 (z and Z)
    usage=7001E, value=0 (1 and !)
    usage=7001F, value=0 (2 and @)
    usage=70020, value=0 (3 and #)
    usage=70021, value=0 (4 and $)
    usage=70022, value=0 (5 and %)
    usage=70023, value=0 (6 and ^)
    usage=70024, value=0 (7 and &)
    usage=70025, value=0 (8 and *)
    usage=70026, value=0 (9 and ()
    usage=70027, value=0 (0 and ))
    usage=70028, value=0 (Return (ENTER))
    usage=70029, value=0 (ESCAPE)
    usage=7002A, value=0 (DELETE (Backspace))
    usage=7002B, value=0 (Tab)
    usage=7002C, value=0 (Spacebar)
    usage=7002D, value=0 (- and (underscore))
    usage=7002E, value=0 (= and +)
    usage=7002F, value=0 ([ and {)
    usage=70030, value=0 (] and })
    usage=70031, value=0 (nd |)
    usage=70032, value=0 (Non-US # and ˜)
    usage=70033, value=0 (; and :)
    usage=70034, value=0 (‘ and “)
    usage=70035, value=0 (Grave Accent and Tilde)
    usage=70036, value=0 (, and <)
    usage=70037, value=0 (. and >)
    usage=70038, value=0 (/ and ?)
    usage=70039, value=0 (Caps Lock)
    usage=7003A, value=0 (F1)
    usage=7003B, value=0 (F2)
    usage=7003C, value=0 (F3)
    usage=7003D, value=0 (F4)
    usage=7003E, value=0 (F5)
    usage=7003F, value=0 (F6)
    usage=70040, value=0 (F7)
    usage=70041, value=0 (F8)
    usage=70042, value=0 (F9)
    usage=70043, value=0 (F10)
    usage=70044, value=0 (F11)
    usage=70045, value=0 (F12)
    usage=70046, value=0 (PrintScreen)
    usage=70047, value=0 (Scroll Lock)
    usage=70048, value=0 (Pause)
    usage=70049, value=0 (Insert)
    usage=7004A, value=0 (Home)
    usage=7004B, value=0 (PageUp)
    usage=7004C, value=0 (Delete Forward)
    usage=7004D, value=0 (End)
    usage=7004E, value=0 (PageDown)
    usage=7004F, value=0 (RightArrow)
    usage=70050, value=0 (LeftArrow)
    usage=70051, value=0 (DownArrow)
    usage=70052, value=0 (UpArrow)
    usage=70053, value=0 (Keypad Num Lock and Clear)
    usage=70054, value=0 (Keypad /)
    usage=70055, value=0 (Keypad *)
    usage=70056, value=0 (Keypad -)
    usage=70057, value=0 (Keypad +)
    usage=70058, value=0 (Keypad ENTER)
    usage=70059, value=0 (Keypad 1 and End)
    usage=7005A, value=0 (Keypad 2 and Down Arrow)
    usage=7005B, value=0 (Keypad 3 and PageDn)
    usage=7005C, value=0 (Keypad 4 and Left Arrow)
    usage=7005D, value=0 (Keypad 5)
    usage=7005E, value=0 (Keypad 6 and Right Arrow)
    usage=7005F, value=0 (Keypad 7 and Home)
    usage=70060, value=0 (Keypad 8 and Up Arrow)
    usage=70061, value=0 (Keypad 9 and PageUp)
    usage=70062, value=0 (Keypad 0 and Insert)
    usage=70063, value=0 (Keypad . and Delete)
    usage=70064, value=0 (Non-US nd |)
    usage=70065, value=0 (Application)
    usage=70066, value=0 (Power)
    usage=70067, value=0 (Keypad =)
    usage=70068, value=0 (F13)
    usage=70069, value=0 (F14)
    usage=7006A, value=0 (F15)
    usage=7006B, value=0 (F16)
    usage=7006C, value=0 (F17)
    usage=7006D, value=0 (F18)
    usage=7006E, value=0 (F19)
    usage=7006F, value=0 (F20)
  END:
HID(1 : 10006): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:2 min:0 max:1
    usage=70000, value=0 (Keycode 0)
    usage=70001, value=0 (Keycode 1)
    usage=70002, value=0 (Keycode 2)
    usage=70003, value=0 (Keycode 3)
    usage=70004, value=0 (a and A)
    usage=70005, value=0 (b and B)
    usage=70006, value=0 (c and C)
    usage=70007, value=0 (d and D)
    usage=70008, value=0 (e and E)
    usage=70009, value=0 (f and F)
    usage=7000A, value=0 (g and G)
    usage=7000B, value=0 (h and H)
    usage=7000C, value=0 (i and I)
    usage=7000D, value=0 (j and J)
    usage=7000E, value=0 (k and K)
    usage=7000F, value=0 (l and L)
    usage=70010, value=0 (m and M)
    usage=70011, value=0 (n and N)
    usage=70012, value=0 (o and O)
    usage=70013, value=0 (p and P)
    usage=70014, value=0 (q and Q)
    usage=70015, value=0 (r and R)
    usage=70016, value=0 (s and S)
    usage=70017, value=0 (t and T)
    usage=70018, value=0 (u and U)
    usage=70019, value=0 (v and V)
    usage=7001A, value=0 (w and W)
    usage=7001B, value=0 (x and X)
    usage=7001C, value=0 (y and Y)
    usage=7001D, value=0 (z and Z)
    usage=7001E, value=0 (1 and !)
    usage=7001F, value=0 (2 and @)
    usage=70020, value=0 (3 and #)
    usage=70021, value=0 (4 and $)
    usage=70022, value=0 (5 and %)
    usage=70023, value=0 (6 and ^)
    usage=70024, value=0 (7 and &)
    usage=70025, value=0 (8 and *)
    usage=70026, value=0 (9 and ()
    usage=70027, value=0 (0 and ))
    usage=70028, value=0 (Return (ENTER))
    usage=70029, value=0 (ESCAPE)
    usage=7002A, value=0 (DELETE (Backspace))
    usage=7002B, value=0 (Tab)
    usage=7002C, value=0 (Spacebar)
    usage=7002D, value=0 (- and (underscore))
    usage=7002E, value=0 (= and +)
    usage=7002F, value=0 ([ and {)
    usage=70030, value=0 (] and })
    usage=70031, value=0 (nd |)
    usage=70032, value=0 (Non-US # and ˜)
    usage=70033, value=0 (; and :)
    usage=70034, value=0 (‘ and “)
    usage=70035, value=0 (Grave Accent and Tilde)
    usage=70036, value=0 (, and <)
    usage=70037, value=0 (. and >)
    usage=70038, value=0 (/ and ?)
    usage=70039, value=0 (Caps Lock)
    usage=7003A, value=0 (F1)
    usage=7003B, value=0 (F2)
    usage=7003C, value=0 (F3)
    usage=7003D, value=0 (F4)
    usage=7003E, value=0 (F5)
    usage=7003F, value=0 (F6)
    usage=70040, value=0 (F7)
    usage=70041, value=0 (F8)
    usage=70042, value=0 (F9)
    usage=70043, value=0 (F10)
    usage=70044, value=0 (F11)
    usage=70045, value=0 (F12)
    usage=70046, value=0 (PrintScreen)
    usage=70047, value=0 (Scroll Lock)
    usage=70048, value=0 (Pause)
    usage=70049, value=0 (Insert)
    usage=7004A, value=0 (Home)
    usage=7004B, value=0 (PageUp)
    usage=7004C, value=0 (Delete Forward)
    usage=7004D, value=0 (End)
    usage=7004E, value=0 (PageDown)
    usage=7004F, value=0 (RightArrow)
    usage=70050, value=0 (LeftArrow)
    usage=70051, value=0 (DownArrow)
    usage=70052, value=0 (UpArrow)
    usage=70053, value=0 (Keypad Num Lock and Clear)
    usage=70054, value=0 (Keypad /)
    usage=70055, value=0 (Keypad *)
    usage=70056, value=0 (Keypad -)
    usage=70057, value=0 (Keypad +)
    usage=70058, value=0 (Keypad ENTER)
    usage=70059, value=0 (Keypad 1 and End)
    usage=7005A, value=0 (Keypad 2 and Down Arrow)
    usage=7005B, value=0 (Keypad 3 and PageDn)
    usage=7005C, value=0 (Keypad 4 and Left Arrow)
    usage=7005D, value=0 (Keypad 5)
    usage=7005E, value=0 (Keypad 6 and Right Arrow)
    usage=7005F, value=0 (Keypad 7 and Home)
    usage=70060, value=0 (Keypad 8 and Up Arrow)
    usage=70061, value=0 (Keypad 9 and PageUp)
    usage=70062, value=0 (Keypad 0 and Insert)
    usage=70063, value=0 (Keypad . and Delete)
    usage=70064, value=0 (Non-US nd |)
    usage=70065, value=0 (Application)
    usage=70066, value=0 (Power)
    usage=70067, value=0 (Keypad =)
    usage=70068, value=0 (F13)
    usage=70069, value=0 (F14)
    usage=7006A, value=0 (F15)
    usage=7006B, value=0 (F16)
    usage=7006C, value=0 (F17)
    usage=7006D, value=0 (F18)
    usage=7006E, value=0 (F19)
    usage=7006F, value=0 (F20)
  END:
So it went straight to HID format. If we again try: Q W E R T Y U
Code:
HID(1 : 10006): 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:2 min:0 max:1
    usage=70000, value=0 (Keycode 0)
    usage=70001, value=0 (Keycode 1)
    usage=70002, value=0 (Keycode 2)
    usage=70003, value=0 (Keycode 3)
    usage=70004, value=0 (a and A)
    usage=70005, value=0 (b and B)
    usage=70006, value=0 (c and C)
    usage=70007, value=0 (d and D)
    usage=70008, value=0 (e and E)
    usage=70009, value=0 (f and F)
    usage=7000A, value=0 (g and G)
    usage=7000B, value=0 (h and H)
    usage=7000C, value=0 (i and I)
    usage=7000D, value=0 (j and J)
    usage=7000E, value=0 (k and K)
    usage=7000F, value=0 (l and L)
    usage=70010, value=0 (m and M)
    usage=70011, value=0 (n and N)
    usage=70012, value=0 (o and O)
    usage=70013, value=0 (p and P)
    usage=70014, value=1 (q and Q)
    usage=70015, value=0 (r and R)
    usage=70016, value=0 (s and S)
    usage=70017, value=0 (t and T)
    usage=70018, value=0 (u and U)
    usage=70019, value=0 (v and V)
    usage=7001A, value=0 (w and W)
    usage=7001B, value=0 (x and X)
    usage=7001C, value=0 (y and Y)
    usage=7001D, value=0 (z and Z)
    usage=7001E, value=0 (1 and !)
    usage=7001F, value=0 (2 and @)
    usage=70020, value=0 (3 and #)
    usage=70021, value=0 (4 and $)
    usage=70022, value=0 (5 and %)
    usage=70023, value=0 (6 and ^)
    usage=70024, value=0 (7 and &)
    usage=70025, value=0 (8 and *)
    usage=70026, value=0 (9 and ()
    usage=70027, value=0 (0 and ))
    usage=70028, value=0 (Return (ENTER))
    usage=70029, value=0 (ESCAPE)
    usage=7002A, value=0 (DELETE (Backspace))
    usage=7002B, value=0 (Tab)
    usage=7002C, value=0 (Spacebar)
    usage=7002D, value=0 (- and (underscore))
    usage=7002E, value=0 (= and +)
    usage=7002F, value=0 ([ and {)
    usage=70030, value=0 (] and })
    usage=70031, value=0 (nd |)
    usage=70032, value=0 (Non-US # and ˜)
    usage=70033, value=0 (; and :)
    usage=70034, value=0 (‘ and “)
    usage=70035, value=0 (Grave Accent and Tilde)
    usage=70036, value=0 (, and <)
    usage=70037, value=0 (. and >)
    usage=70038, value=0 (/ and ?)
    usage=70039, value=0 (Caps Lock)
    usage=7003A, value=0 (F1)
    usage=7003B, value=0 (F2)
    usage=7003C, value=0 (F3)
    usage=7003D, value=0 (F4)
    usage=7003E, value=0 (F5)
    usage=7003F, value=0 (F6)
    usage=70040, value=0 (F7)
    usage=70041, value=0 (F8)
    usage=70042, value=0 (F9)
    usage=70043, value=0 (F10)
    usage=70044, value=0 (F11)
    usage=70045, value=0 (F12)
    usage=70046, value=0 (PrintScreen)
    usage=70047, value=0 (Scroll Lock)
    usage=70048, value=0 (Pause)
    usage=70049, value=0 (Insert)
    usage=7004A, value=0 (Home)
    usage=7004B, value=0 (PageUp)
    usage=7004C, value=0 (Delete Forward)
    usage=7004D, value=0 (End)
    usage=7004E, value=0 (PageDown)
    usage=7004F, value=0 (RightArrow)
    usage=70050, value=0 (LeftArrow)
    usage=70051, value=0 (DownArrow)
    usage=70052, value=0 (UpArrow)
    usage=70053, value=0 (Keypad Num Lock and Clear)
    usage=70054, value=0 (Keypad /)
    usage=70055, value=0 (Keypad *)
    usage=70056, value=0 (Keypad -)
    usage=70057, value=0 (Keypad +)
    usage=70058, value=0 (Keypad ENTER)
    usage=70059, value=0 (Keypad 1 and End)
    usage=7005A, value=0 (Keypad 2 and Down Arrow)
    usage=7005B, value=0 (Keypad 3 and PageDn)
    usage=7005C, value=0 (Keypad 4 and Left Arrow)
    usage=7005D, value=0 (Keypad 5)
    usage=7005E, value=0 (Keypad 6 and Right Arrow)
    usage=7005F, value=0 (Keypad 7 and Home)
    usage=70060, value=0 (Keypad 8 and Up Arrow)
    usage=70061, value=0 (Keypad 9 and PageUp)
    usage=70062, value=0 (Keypad 0 and Insert)
    usage=70063, value=0 (Keypad . and Delete)
    usage=70064, value=0 (Non-US nd |)
    usage=70065, value=0 (Application)
    usage=70066, value=0 (Power)
    usage=70067, value=0 (Keypad =)
    usage=70068, value=0 (F13)
    usage=70069, value=0 (F14)
    usage=7006A, value=0 (F15)
    usage=7006B, value=0 (F16)
    usage=7006C, value=0 (F17)
    usage=7006D, value=0 (F18)
    usage=7006E, value=0 (F19)
    usage=7006F, value=0 (F20)
  END:
HID(1 : 10006): 00 00 00 10 04 00 00 00 00 00 00 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:2 min:0 max:1
    usage=70000, value=0 (Keycode 0)
    usage=70001, value=0 (Keycode 1)
    usage=70002, value=0 (Keycode 2)
    usage=70003, value=0 (Keycode 3)
    usage=70004, value=0 (a and A)
    usage=70005, value=0 (b and B)
    usage=70006, value=0 (c and C)
    usage=70007, value=0 (d and D)
    usage=70008, value=0 (e and E)
    usage=70009, value=0 (f and F)
    usage=7000A, value=0 (g and G)
    usage=7000B, value=0 (h and H)
    usage=7000C, value=0 (i and I)
    usage=7000D, value=0 (j and J)
    usage=7000E, value=0 (k and K)
    usage=7000F, value=0 (l and L)
    usage=70010, value=0 (m and M)
    usage=70011, value=0 (n and N)
    usage=70012, value=0 (o and O)
    usage=70013, value=0 (p and P)
    usage=70014, value=1 (q and Q)
    usage=70015, value=0 (r and R)
    usage=70016, value=0 (s and S)
    usage=70017, value=0 (t and T)
    usage=70018, value=0 (u and U)
    usage=70019, value=0 (v and V)
    usage=7001A, value=1 (w and W)
    usage=7001B, value=0 (x and X)
    usage=7001C, value=0 (y and Y)
    usage=7001D, value=0 (z and Z)
    usage=7001E, value=0 (1 and !)
    usage=7001F, value=0 (2 and @)
    usage=70020, value=0 (3 and #)
    usage=70021, value=0 (4 and $)
    usage=70022, value=0 (5 and %)
    usage=70023, value=0 (6 and ^)
    usage=70024, value=0 (7 and &)
    usage=70025, value=0 (8 and *)
    usage=70026, value=0 (9 and ()
    usage=70027, value=0 (0 and ))
    usage=70028, value=0 (Return (ENTER))
    usage=70029, value=0 (ESCAPE)
    usage=7002A, value=0 (DELETE (Backspace))
    usage=7002B, value=0 (Tab)
    usage=7002C, value=0 (Spacebar)
    usage=7002D, value=0 (- and (underscore))
    usage=7002E, value=0 (= and +)
    usage=7002F, value=0 ([ and {)
    usage=70030, value=0 (] and })
    usage=70031, value=0 (nd |)
    usage=70032, value=0 (Non-US # and ˜)
    usage=70033, value=0 (; and :)
    usage=70034, value=0 (‘ and “)
    usage=70035, value=0 (Grave Accent and Tilde)
    usage=70036, value=0 (, and <)
    usage=70037, value=0 (. and >)
    usage=70038, value=0 (/ and ?)
    usage=70039, value=0 (Caps Lock)
    usage=7003A, value=0 (F1)
    usage=7003B, value=0 (F2)
    usage=7003C, value=0 (F3)
    usage=7003D, value=0 (F4)
    usage=7003E, value=0 (F5)
    usage=7003F, value=0 (F6)
    usage=70040, value=0 (F7)
    usage=70041, value=0 (F8)
    usage=70042, value=0 (F9)
    usage=70043, value=0 (F10)
    usage=70044, value=0 (F11)
    usage=70045, value=0 (F12)
    usage=70046, value=0 (PrintScreen)
    usage=70047, value=0 (Scroll Lock)
    usage=70048, value=0 (Pause)
    usage=70049, value=0 (Insert)
    usage=7004A, value=0 (Home)
    usage=7004B, value=0 (PageUp)
    usage=7004C, value=0 (Delete Forward)
    usage=7004D, value=0 (End)
    usage=7004E, value=0 (PageDown)
    usage=7004F, value=0 (RightArrow)
    usage=70050, value=0 (LeftArrow)
    usage=70051, value=0 (DownArrow)
    usage=70052, value=0 (UpArrow)
    usage=70053, value=0 (Keypad Num Lock and Clear)
    usage=70054, value=0 (Keypad /)
    usage=70055, value=0 (Keypad *)
    usage=70056, value=0 (Keypad -)
    usage=70057, value=0 (Keypad +)
    usage=70058, value=0 (Keypad ENTER)
    usage=70059, value=0 (Keypad 1 and End)
    usage=7005A, value=0 (Keypad 2 and Down Arrow)
    usage=7005B, value=0 (Keypad 3 and PageDn)
    usage=7005C, value=0 (Keypad 4 and Left Arrow)
    usage=7005D, value=0 (Keypad 5)
    usage=7005E, value=0 (Keypad 6 and Right Arrow)
    usage=7005F, value=0 (Keypad 7 and Home)
    usage=70060, value=0 (Keypad 8 and Up Arrow)
    usage=70061, value=0 (Keypad 9 and PageUp)
    usage=70062, value=0 (Keypad 0 and Insert)
    usage=70063, value=0 (Keypad . and Delete)
    usage=70064, value=0 (Non-US nd |)
    usage=70065, value=0 (Application)
    usage=70066, value=0 (Power)
    usage=70067, value=0 (Keypad =)
    usage=70068, value=0 (F13)
    usage=70069, value=0 (F14)
    usage=7006A, value=0 (F15)
    usage=7006B, value=0 (F16)
    usage=7006C, value=0 (F17)
    usage=7006D, value=0 (F18)
    usage=7006E, value=0 (F19)
    usage=7006F, value=0 (F20)
  END:
HID(1 : 10006): 00 00 01 10 04 00 00 00 00 00 00 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:2 min:0 max:1
    usage=70000, value=0 (Keycode 0)
    usage=70001, value=0 (Keycode 1)
    usage=70002, value=0 (Keycode 2)
    usage=70003, value=0 (Keycode 3)
    usage=70004, value=0 (a and A)
    usage=70005, value=0 (b and B)
    usage=70006, value=0 (c and C)
    usage=70007, value=0 (d and D)
    usage=70008, value=1 (e and E)
    usage=70009, value=0 (f and F)
    usage=7000A, value=0 (g and G)
    usage=7000B, value=0 (h and H)
    usage=7000C, value=0 (i and I)
    usage=7000D, value=0 (j and J)
    usage=7000E, value=0 (k and K)
    usage=7000F, value=0 (l and L)
    usage=70010, value=0 (m and M)
    usage=70011, value=0 (n and N)
    usage=70012, value=0 (o and O)
    usage=70013, value=0 (p and P)
    usage=70014, value=1 (q and Q)
    usage=70015, value=0 (r and R)
    usage=70016, value=0 (s and S)
    usage=70017, value=0 (t and T)
    usage=70018, value=0 (u and U)
    usage=70019, value=0 (v and V)
    usage=7001A, value=1 (w and W)
    usage=7001B, value=0 (x and X)
    usage=7001C, value=0 (y and Y)
    usage=7001D, value=0 (z and Z)
    usage=7001E, value=0 (1 and !)
    usage=7001F, value=0 (2 and @)
    usage=70020, value=0 (3 and #)
    usage=70021, value=0 (4 and $)
    usage=70022, value=0 (5 and %)
    usage=70023, value=0 (6 and ^)
    usage=70024, value=0 (7 and &)
    usage=70025, value=0 (8 and *)
    usage=70026, value=0 (9 and ()
    usage=70027, value=0 (0 and ))
    usage=70028, value=0 (Return (ENTER))
    usage=70029, value=0 (ESCAPE)
    usage=7002A, value=0 (DELETE (Backspace))
    usage=7002B, value=0 (Tab)
    usage=7002C, value=0 (Spacebar)
    usage=7002D, value=0 (- and (underscore))
    usage=7002E, value=0 (= and +)
    usage=7002F, value=0 ([ and {)
    usage=70030, value=0 (] and })
    usage=70031, value=0 (nd |)
    usage=70032, value=0 (Non-US # and ˜)
    usage=70033, value=0 (; and :)
    usage=70034, value=0 (‘ and “)
    usage=70035, value=0 (Grave Accent and Tilde)
    usage=70036, value=0 (, and <)
    usage=70037, value=0 (. and >)
    usage=70038, value=0 (/ and ?)
    usage=70039, value=0 (Caps Lock)
    usage=7003A, value=0 (F1)
    usage=7003B, value=0 (F2)
    usage=7003C, value=0 (F3)
    usage=7003D, value=0 (F4)
    usage=7003E, value=0 (F5)
    usage=7003F, value=0 (F6)
    usage=70040, value=0 (F7)
    usage=70041, value=0 (F8)
    usage=70042, value=0 (F9)
    usage=70043, value=0 (F10)
    usage=70044, value=0 (F11)
    usage=70045, value=0 (F12)
    usage=70046, value=0 (PrintScreen)
    usage=70047, value=0 (Scroll Lock)
    usage=70048, value=0 (Pause)
    usage=70049, value=0 (Insert)
    usage=7004A, value=0 (Home)
    usage=7004B, value=0 (PageUp)
    usage=7004C, value=0 (Delete Forward)
    usage=7004D, value=0 (End)
    usage=7004E, value=0 (PageDown)
    usage=7004F, value=0 (RightArrow)
    usage=70050, value=0 (LeftArrow)
    usage=70051, value=0 (DownArrow)
    usage=70052, value=0 (UpArrow)
    usage=70053, value=0 (Keypad Num Lock and Clear)
    usage=70054, value=0 (Keypad /)
    usage=70055, value=0 (Keypad *)
    usage=70056, value=0 (Keypad -)
    usage=70057, value=0 (Keypad +)
    usage=70058, value=0 (Keypad ENTER)
    usage=70059, value=0 (Keypad 1 and End)
    usage=7005A, value=0 (Keypad 2 and Down Arrow)
    usage=7005B, value=0 (Keypad 3 and PageDn)
    usage=7005C, value=0 (Keypad 4 and Left Arrow)
    usage=7005D, value=0 (Keypad 5)
    usage=7005E, value=0 (Keypad 6 and Right Arrow)
    usage=7005F, value=0 (Keypad 7 and Home)
    usage=70060, value=0 (Keypad 8 and Up Arrow)
    usage=70061, value=0 (Keypad 9 and PageUp)
    usage=70062, value=0 (Keypad 0 and Insert)
    usage=70063, value=0 (Keypad . and Delete)
    usage=70064, value=0 (Non-US nd |)
    usage=70065, value=0 (Application)
    usage=70066, value=0 (Power)
    usage=70067, value=0 (Keypad =)
    usage=70068, value=0 (F13)
    usage=70069, value=0 (F14)
    usage=7006A, value=0 (F15)
    usage=7006B, value=0 (F16)
    usage=7006C, value=0 (F17)
    usage=7006D, value=0 (F18)
    usage=7006E, value=0 (F19)
    usage=7006F, value=0 (F20)
  END:
HID(1 : 10006): 00 00 01 30 04 00 00 00 00 00 00 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:2 min:0 max:1
    usage=70000, value=0 (Keycode 0)
    usage=70001, value=0 (Keycode 1)
    usage=70002, value=0 (Keycode 2)
    usage=70003, value=0 (Keycode 3)
    usage=70004, value=0 (a and A)
    usage=70005, value=0 (b and B)
    usage=70006, value=0 (c and C)
    usage=70007, value=0 (d and D)
    usage=70008, value=1 (e and E)
    usage=70009, value=0 (f and F)
    usage=7000A, value=0 (g and G)
    usage=7000B, value=0 (h and H)
    usage=7000C, value=0 (i and I)
    usage=7000D, value=0 (j and J)
    usage=7000E, value=0 (k and K)
    usage=7000F, value=0 (l and L)
    usage=70010, value=0 (m and M)
    usage=70011, value=0 (n and N)
    usage=70012, value=0 (o and O)
    usage=70013, value=0 (p and P)
    usage=70014, value=1 (q and Q)
    usage=70015, value=1 (r and R)
    usage=70016, value=0 (s and S)
    usage=70017, value=0 (t and T)
    usage=70018, value=0 (u and U)
    usage=70019, value=0 (v and V)
    usage=7001A, value=1 (w and W)
    usage=7001B, value=0 (x and X)
    usage=7001C, value=0 (y and Y)
    usage=7001D, value=0 (z and Z)
    usage=7001E, value=0 (1 and !)
    usage=7001F, value=0 (2 and @)
    usage=70020, value=0 (3 and #)
    usage=70021, value=0 (4 and $)
    usage=70022, value=0 (5 and %)
    usage=70023, value=0 (6 and ^)
    usage=70024, value=0 (7 and &)
    usage=70025, value=0 (8 and *)
    usage=70026, value=0 (9 and ()
    usage=70027, value=0 (0 and ))
    usage=70028, value=0 (Return (ENTER))
    usage=70029, value=0 (ESCAPE)
    usage=7002A, value=0 (DELETE (Backspace))
    usage=7002B, value=0 (Tab)
    usage=7002C, value=0 (Spacebar)
    usage=7002D, value=0 (- and (underscore))
    usage=7002E, value=0 (= and +)
    usage=7002F, value=0 ([ and {)
    usage=70030, value=0 (] and })
    usage=70031, value=0 (nd |)
    usage=70032, value=0 (Non-US # and ˜)
    usage=70033, value=0 (; and :)
    usage=70034, value=0 (‘ and “)
    usage=70035, value=0 (Grave Accent and Tilde)
    usage=70036, value=0 (, and <)
    usage=70037, value=0 (. and >)
    usage=70038, value=0 (/ and ?)
    usage=70039, value=0 (Caps Lock)
    usage=7003A, value=0 (F1)
    usage=7003B, value=0 (F2)
    usage=7003C, value=0 (F3)
    usage=7003D, value=0 (F4)
    usage=7003E, value=0 (F5)
    usage=7003F, value=0 (F6)
    usage=70040, value=0 (F7)
    usage=70041, value=0 (F8)
    usage=70042, value=0 (F9)
    usage=70043, value=0 (F10)
    usage=70044, value=0 (F11)
    usage=70045, value=0 (F12)
    usage=70046, value=0 (PrintScreen)
    usage=70047, value=0 (Scroll Lock)
    usage=70048, value=0 (Pause)
    usage=70049, value=0 (Insert)
    usage=7004A, value=0 (Home)
    usage=7004B, value=0 (PageUp)
    usage=7004C, value=0 (Delete Forward)
    usage=7004D, value=0 (End)
    usage=7004E, value=0 (PageDown)
    usage=7004F, value=0 (RightArrow)
    usage=70050, value=0 (LeftArrow)
    usage=70051, value=0 (DownArrow)
    usage=70052, value=0 (UpArrow)
    usage=70053, value=0 (Keypad Num Lock and Clear)
    usage=70054, value=0 (Keypad /)
    usage=70055, value=0 (Keypad *)
    usage=70056, value=0 (Keypad -)
    usage=70057, value=0 (Keypad +)
    usage=70058, value=0 (Keypad ENTER)
    usage=70059, value=0 (Keypad 1 and End)
    usage=7005A, value=0 (Keypad 2 and Down Arrow)
    usage=7005B, value=0 (Keypad 3 and PageDn)
    usage=7005C, value=0 (Keypad 4 and Left Arrow)
    usage=7005D, value=0 (Keypad 5)
    usage=7005E, value=0 (Keypad 6 and Right Arrow)
    usage=7005F, value=0 (Keypad 7 and Home)
    usage=70060, value=0 (Keypad 8 and Up Arrow)
    usage=70061, value=0 (Keypad 9 and PageUp)
    usage=70062, value=0 (Keypad 0 and Insert)
    usage=70063, value=0 (Keypad . and Delete)
    usage=70064, value=0 (Non-US nd |)
    usage=70065, value=0 (Application)
    usage=70066, value=0 (Power)
    usage=70067, value=0 (Keypad =)
    usage=70068, value=0 (F13)
    usage=70069, value=0 (F14)
    usage=7006A, value=0 (F15)
    usage=7006B, value=0 (F16)
    usage=7006C, value=0 (F17)
    usage=7006D, value=0 (F18)
    usage=7006E, value=0 (F19)
    usage=7006F, value=0 (F20)
  END:
HID(1 : 10006): 00 00 01 B0 04 00 00 00 00 00 00 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:2 min:0 max:1
    usage=70000, value=0 (Keycode 0)
    usage=70001, value=0 (Keycode 1)
    usage=70002, value=0 (Keycode 2)
    usage=70003, value=0 (Keycode 3)
    usage=70004, value=0 (a and A)
    usage=70005, value=0 (b and B)
    usage=70006, value=0 (c and C)
    usage=70007, value=0 (d and D)
    usage=70008, value=1 (e and E)
    usage=70009, value=0 (f and F)
    usage=7000A, value=0 (g and G)
    usage=7000B, value=0 (h and H)
    usage=7000C, value=0 (i and I)
    usage=7000D, value=0 (j and J)
    usage=7000E, value=0 (k and K)
    usage=7000F, value=0 (l and L)
    usage=70010, value=0 (m and M)
    usage=70011, value=0 (n and N)
    usage=70012, value=0 (o and O)
    usage=70013, value=0 (p and P)
    usage=70014, value=1 (q and Q)
    usage=70015, value=1 (r and R)
    usage=70016, value=0 (s and S)
    usage=70017, value=1 (t and T)
    usage=70018, value=0 (u and U)
    usage=70019, value=0 (v and V)
    usage=7001A, value=1 (w and W)
    usage=7001B, value=0 (x and X)
    usage=7001C, value=0 (y and Y)
    usage=7001D, value=0 (z and Z)
    usage=7001E, value=0 (1 and !)
    usage=7001F, value=0 (2 and @)
    usage=70020, value=0 (3 and #)
    usage=70021, value=0 (4 and $)
    usage=70022, value=0 (5 and %)
    usage=70023, value=0 (6 and ^)
    usage=70024, value=0 (7 and &)
    usage=70025, value=0 (8 and *)
    usage=70026, value=0 (9 and ()
    usage=70027, value=0 (0 and ))
    usage=70028, value=0 (Return (ENTER))
    usage=70029, value=0 (ESCAPE)
    usage=7002A, value=0 (DELETE (Backspace))
    usage=7002B, value=0 (Tab)
    usage=7002C, value=0 (Spacebar)
    usage=7002D, value=0 (- and (underscore))
    usage=7002E, value=0 (= and +)
    usage=7002F, value=0 ([ and {)
    usage=70030, value=0 (] and })
    usage=70031, value=0 (nd |)
    usage=70032, value=0 (Non-US # and ˜)
    usage=70033, value=0 (; and :)
    usage=70034, value=0 (‘ and “)
    usage=70035, value=0 (Grave Accent and Tilde)
    usage=70036, value=0 (, and <)
    usage=70037, value=0 (. and >)
    usage=70038, value=0 (/ and ?)
    usage=70039, value=0 (Caps Lock)
    usage=7003A, value=0 (F1)
    usage=7003B, value=0 (F2)
    usage=7003C, value=0 (F3)
    usage=7003D, value=0 (F4)
    usage=7003E, value=0 (F5)
    usage=7003F, value=0 (F6)
    usage=70040, value=0 (F7)
    usage=70041, value=0 (F8)
    usage=70042, value=0 (F9)
    usage=70043, value=0 (F10)
    usage=70044, value=0 (F11)
    usage=70045, value=0 (F12)
    usage=70046, value=0 (PrintScreen)
    usage=70047, value=0 (Scroll Lock)
    usage=70048, value=0 (Pause)
    usage=70049, value=0 (Insert)
    usage=7004A, value=0 (Home)
    usage=7004B, value=0 (PageUp)
    usage=7004C, value=0 (Delete Forward)
    usage=7004D, value=0 (End)
    usage=7004E, value=0 (PageDown)
    usage=7004F, value=0 (RightArrow)
    usage=70050, value=0 (LeftArrow)
    usage=70051, value=0 (DownArrow)
    usage=70052, value=0 (UpArrow)
    usage=70053, value=0 (Keypad Num Lock and Clear)
    usage=70054, value=0 (Keypad /)
    usage=70055, value=0 (Keypad *)
    usage=70056, value=0 (Keypad -)
    usage=70057, value=0 (Keypad +)
    usage=70058, value=0 (Keypad ENTER)
    usage=70059, value=0 (Keypad 1 and End)
    usage=7005A, value=0 (Keypad 2 and Down Arrow)
    usage=7005B, value=0 (Keypad 3 and PageDn)
    usage=7005C, value=0 (Keypad 4 and Left Arrow)
    usage=7005D, value=0 (Keypad 5)
    usage=7005E, value=0 (Keypad 6 and Right Arrow)
    usage=7005F, value=0 (Keypad 7 and Home)
    usage=70060, value=0 (Keypad 8 and Up Arrow)
    usage=70061, value=0 (Keypad 9 and PageUp)
    usage=70062, value=0 (Keypad 0 and Insert)
    usage=70063, value=0 (Keypad . and Delete)
    usage=70064, value=0 (Non-US nd |)
    usage=70065, value=0 (Application)
    usage=70066, value=0 (Power)
    usage=70067, value=0 (Keypad =)
    usage=70068, value=0 (F13)
    usage=70069, value=0 (F14)
    usage=7006A, value=0 (F15)
    usage=7006B, value=0 (F16)
    usage=7006C, value=0 (F17)
    usage=7006D, value=0 (F18)
    usage=7006E, value=0 (F19)
    usage=7006F, value=0 (F20)
  END:
HID(1 : 10006): 00 00 01 B0 14 00 00 00 00 00 00 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:2 min:0 max:1
    usage=70000, value=0 (Keycode 0)
    usage=70001, value=0 (Keycode 1)
    usage=70002, value=0 (Keycode 2)
    usage=70003, value=0 (Keycode 3)
    usage=70004, value=0 (a and A)
    usage=70005, value=0 (b and B)
    usage=70006, value=0 (c and C)
    usage=70007, value=0 (d and D)
    usage=70008, value=1 (e and E)
    usage=70009, value=0 (f and F)
    usage=7000A, value=0 (g and G)
    usage=7000B, value=0 (h and H)
    usage=7000C, value=0 (i and I)
    usage=7000D, value=0 (j and J)
    usage=7000E, value=0 (k and K)
    usage=7000F, value=0 (l and L)
    usage=70010, value=0 (m and M)
    usage=70011, value=0 (n and N)
    usage=70012, value=0 (o and O)
    usage=70013, value=0 (p and P)
    usage=70014, value=1 (q and Q)
    usage=70015, value=1 (r and R)
    usage=70016, value=0 (s and S)
    usage=70017, value=1 (t and T)
    usage=70018, value=0 (u and U)
    usage=70019, value=0 (v and V)
    usage=7001A, value=1 (w and W)
    usage=7001B, value=0 (x and X)
    usage=7001C, value=1 (y and Y)
    usage=7001D, value=0 (z and Z)
    usage=7001E, value=0 (1 and !)
    usage=7001F, value=0 (2 and @)
    usage=70020, value=0 (3 and #)
    usage=70021, value=0 (4 and $)
    usage=70022, value=0 (5 and %)
    usage=70023, value=0 (6 and ^)
    usage=70024, value=0 (7 and &)
    usage=70025, value=0 (8 and *)
    usage=70026, value=0 (9 and ()
    usage=70027, value=0 (0 and ))
    usage=70028, value=0 (Return (ENTER))
    usage=70029, value=0 (ESCAPE)
    usage=7002A, value=0 (DELETE (Backspace))
    usage=7002B, value=0 (Tab)
    usage=7002C, value=0 (Spacebar)
    usage=7002D, value=0 (- and (underscore))
    usage=7002E, value=0 (= and +)
    usage=7002F, value=0 ([ and {)
    usage=70030, value=0 (] and })
    usage=70031, value=0 (nd |)
    usage=70032, value=0 (Non-US # and ˜)
    usage=70033, value=0 (; and :)
    usage=70034, value=0 (‘ and “)
    usage=70035, value=0 (Grave Accent and Tilde)
    usage=70036, value=0 (, and <)
    usage=70037, value=0 (. and >)
    usage=70038, value=0 (/ and ?)
    usage=70039, value=0 (Caps Lock)
    usage=7003A, value=0 (F1)
    usage=7003B, value=0 (F2)
    usage=7003C, value=0 (F3)
    usage=7003D, value=0 (F4)
    usage=7003E, value=0 (F5)
    usage=7003F, value=0 (F6)
    usage=70040, value=0 (F7)
    usage=70041, value=0 (F8)
    usage=70042, value=0 (F9)
    usage=70043, value=0 (F10)
    usage=70044, value=0 (F11)
    usage=70045, value=0 (F12)
    usage=70046, value=0 (PrintScreen)
    usage=70047, value=0 (Scroll Lock)
    usage=70048, value=0 (Pause)
    usage=70049, value=0 (Insert)
    usage=7004A, value=0 (Home)
    usage=7004B, value=0 (PageUp)
    usage=7004C, value=0 (Delete Forward)
    usage=7004D, value=0 (End)
    usage=7004E, value=0 (PageDown)
    usage=7004F, value=0 (RightArrow)
    usage=70050, value=0 (LeftArrow)
    usage=70051, value=0 (DownArrow)
    usage=70052, value=0 (UpArrow)
    usage=70053, value=0 (Keypad Num Lock and Clear)
    usage=70054, value=0 (Keypad /)
    usage=70055, value=0 (Keypad *)
    usage=70056, value=0 (Keypad -)
    usage=70057, value=0 (Keypad +)
    usage=70058, value=0 (Keypad ENTER)
    usage=70059, value=0 (Keypad 1 and End)
    usage=7005A, value=0 (Keypad 2 and Down Arrow)
    usage=7005B, value=0 (Keypad 3 and PageDn)
    usage=7005C, value=0 (Keypad 4 and Left Arrow)
    usage=7005D, value=0 (Keypad 5)
    usage=7005E, value=0 (Keypad 6 and Right Arrow)
    usage=7005F, value=0 (Keypad 7 and Home)
    usage=70060, value=0 (Keypad 8 and Up Arrow)
    usage=70061, value=0 (Keypad 9 and PageUp)
    usage=70062, value=0 (Keypad 0 and Insert)
    usage=70063, value=0 (Keypad . and Delete)
    usage=70064, value=0 (Non-US nd |)
    usage=70065, value=0 (Application)
    usage=70066, value=0 (Power)
    usage=70067, value=0 (Keypad =)
    usage=70068, value=0 (F13)
    usage=70069, value=0 (F14)
    usage=7006A, value=0 (F15)
    usage=7006B, value=0 (F16)
    usage=7006C, value=0 (F17)
    usage=7006D, value=0 (F18)
    usage=7006E, value=0 (F19)
    usage=7006F, value=0 (F20)
  END:
HID(1 : 10006): 00 00 01 B0 15 00 00 00 00 00 00 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:2 min:0 max:1
    usage=70000, value=0 (Keycode 0)
    usage=70001, value=0 (Keycode 1)
    usage=70002, value=0 (Keycode 2)
    usage=70003, value=0 (Keycode 3)
    usage=70004, value=0 (a and A)
    usage=70005, value=0 (b and B)
    usage=70006, value=0 (c and C)
    usage=70007, value=0 (d and D)
    usage=70008, value=1 (e and E)
    usage=70009, value=0 (f and F)
    usage=7000A, value=0 (g and G)
    usage=7000B, value=0 (h and H)
    usage=7000C, value=0 (i and I)
    usage=7000D, value=0 (j and J)
    usage=7000E, value=0 (k and K)
    usage=7000F, value=0 (l and L)
    usage=70010, value=0 (m and M)
    usage=70011, value=0 (n and N)
    usage=70012, value=0 (o and O)
    usage=70013, value=0 (p and P)
    usage=70014, value=1 (q and Q)
    usage=70015, value=1 (r and R)
    usage=70016, value=0 (s and S)
    usage=70017, value=1 (t and T)
    usage=70018, value=1 (u and U)
    usage=70019, value=0 (v and V)
    usage=7001A, value=1 (w and W)
    usage=7001B, value=0 (x and X)
    usage=7001C, value=1 (y and Y)
    usage=7001D, value=0 (z and Z)
    usage=7001E, value=0 (1 and !)
    usage=7001F, value=0 (2 and @)
    usage=70020, value=0 (3 and #)
    usage=70021, value=0 (4 and $)
    usage=70022, value=0 (5 and %)
    usage=70023, value=0 (6 and ^)
    usage=70024, value=0 (7 and &)
    usage=70025, value=0 (8 and *)
    usage=70026, value=0 (9 and ()
    usage=70027, value=0 (0 and ))
    usage=70028, value=0 (Return (ENTER))
    usage=70029, value=0 (ESCAPE)
    usage=7002A, value=0 (DELETE (Backspace))
    usage=7002B, value=0 (Tab)
    usage=7002C, value=0 (Spacebar)
    usage=7002D, value=0 (- and (underscore))
    usage=7002E, value=0 (= and +)
    usage=7002F, value=0 ([ and {)
    usage=70030, value=0 (] and })
    usage=70031, value=0 (nd |)
    usage=70032, value=0 (Non-US # and ˜)
    usage=70033, value=0 (; and :)
    usage=70034, value=0 (‘ and “)
    usage=70035, value=0 (Grave Accent and Tilde)
    usage=70036, value=0 (, and <)
    usage=70037, value=0 (. and >)
    usage=70038, value=0 (/ and ?)
    usage=70039, value=0 (Caps Lock)
    usage=7003A, value=0 (F1)
    usage=7003B, value=0 (F2)
    usage=7003C, value=0 (F3)
    usage=7003D, value=0 (F4)
    usage=7003E, value=0 (F5)
    usage=7003F, value=0 (F6)
    usage=70040, value=0 (F7)
    usage=70041, value=0 (F8)
    usage=70042, value=0 (F9)
    usage=70043, value=0 (F10)
    usage=70044, value=0 (F11)
    usage=70045, value=0 (F12)
    usage=70046, value=0 (PrintScreen)
    usage=70047, value=0 (Scroll Lock)
    usage=70048, value=0 (Pause)
    usage=70049, value=0 (Insert)
    usage=7004A, value=0 (Home)
    usage=7004B, value=0 (PageUp)
    usage=7004C, value=0 (Delete Forward)
    usage=7004D, value=0 (End)
    usage=7004E, value=0 (PageDown)
    usage=7004F, value=0 (RightArrow)
    usage=70050, value=0 (LeftArrow)
    usage=70051, value=0 (DownArrow)
    usage=70052, value=0 (UpArrow)
    usage=70053, value=0 (Keypad Num Lock and Clear)
    usage=70054, value=0 (Keypad /)
    usage=70055, value=0 (Keypad *)
    usage=70056, value=0 (Keypad -)
    usage=70057, value=0 (Keypad +)
    usage=70058, value=0 (Keypad ENTER)
    usage=70059, value=0 (Keypad 1 and End)
    usage=7005A, value=0 (Keypad 2 and Down Arrow)
    usage=7005B, value=0 (Keypad 3 and PageDn)
    usage=7005C, value=0 (Keypad 4 and Left Arrow)
    usage=7005D, value=0 (Keypad 5)
    usage=7005E, value=0 (Keypad 6 and Right Arrow)
    usage=7005F, value=0 (Keypad 7 and Home)
    usage=70060, value=0 (Keypad 8 and Up Arrow)
    usage=70061, value=0 (Keypad 9 and PageUp)
    usage=70062, value=0 (Keypad 0 and Insert)
    usage=70063, value=0 (Keypad . and Delete)
    usage=70064, value=0 (Non-US nd |)
    usage=70065, value=0 (Application)
    usage=70066, value=0 (Power)
    usage=70067, value=0 (Keypad =)
    usage=70068, value=0 (F13)
    usage=70069, value=0 (F14)
    usage=7006A, value=0 (F15)
    usage=7006B, value=0 (F16)
    usage=7006C, value=0 (F17)
    usage=7006D, value=0 (F18)
    usage=7006E, value=0 (F19)
    usage=7006F, value=0 (F20)
  END:
As you can see in the last group all of the letters: Q W E R T Y U show as value = 1
The remaining groups show them as they are released.
Code:
HID(1 : 10006): 00 00 01 B0 14 00 00 00 00 00 00 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:2 min:0 max:1
    usage=70000, value=0 (Keycode 0)
    usage=70001, value=0 (Keycode 1)
    usage=70002, value=0 (Keycode 2)
    usage=70003, value=0 (Keycode 3)
    usage=70004, value=0 (a and A)
    usage=70005, value=0 (b and B)
    usage=70006, value=0 (c and C)
    usage=70007, value=0 (d and D)
    usage=70008, value=1 (e and E)
    usage=70009, value=0 (f and F)
    usage=7000A, value=0 (g and G)
    usage=7000B, value=0 (h and H)
    usage=7000C, value=0 (i and I)
    usage=7000D, value=0 (j and J)
    usage=7000E, value=0 (k and K)
    usage=7000F, value=0 (l and L)
    usage=70010, value=0 (m and M)
    usage=70011, value=0 (n and N)
    usage=70012, value=0 (o and O)
    usage=70013, value=0 (p and P)
    usage=70014, value=1 (q and Q)
    usage=70015, value=1 (r and R)
    usage=70016, value=0 (s and S)
    usage=70017, value=1 (t and T)
    usage=70018, value=0 (u and U)
    usage=70019, value=0 (v and V)
    usage=7001A, value=1 (w and W)
    usage=7001B, value=0 (x and X)
    usage=7001C, value=1 (y and Y)
    usage=7001D, value=0 (z and Z)
    usage=7001E, value=0 (1 and !)
    usage=7001F, value=0 (2 and @)
    usage=70020, value=0 (3 and #)
    usage=70021, value=0 (4 and $)
    usage=70022, value=0 (5 and %)
    usage=70023, value=0 (6 and ^)
    usage=70024, value=0 (7 and &)
    usage=70025, value=0 (8 and *)
    usage=70026, value=0 (9 and ()
    usage=70027, value=0 (0 and ))
    usage=70028, value=0 (Return (ENTER))
    usage=70029, value=0 (ESCAPE)
    usage=7002A, value=0 (DELETE (Backspace))
    usage=7002B, value=0 (Tab)
    usage=7002C, value=0 (Spacebar)
    usage=7002D, value=0 (- and (underscore))
    usage=7002E, value=0 (= and +)
    usage=7002F, value=0 ([ and {)
    usage=70030, value=0 (] and })
    usage=70031, value=0 (nd |)
    usage=70032, value=0 (Non-US # and ˜)
    usage=70033, value=0 (; and :)
    usage=70034, value=0 (‘ and “)
    usage=70035, value=0 (Grave Accent and Tilde)
    usage=70036, value=0 (, and <)
    usage=70037, value=0 (. and >)
    usage=70038, value=0 (/ and ?)
    usage=70039, value=0 (Caps Lock)
    usage=7003A, value=0 (F1)
    usage=7003B, value=0 (F2)
    usage=7003C, value=0 (F3)
    usage=7003D, value=0 (F4)
    usage=7003E, value=0 (F5)
    usage=7003F, value=0 (F6)
    usage=70040, value=0 (F7)
    usage=70041, value=0 (F8)
    usage=70042, value=0 (F9)
    usage=70043, value=0 (F10)
    usage=70044, value=0 (F11)
    usage=70045, value=0 (F12)
    usage=70046, value=0 (PrintScreen)
    usage=70047, value=0 (Scroll Lock)
    usage=70048, value=0 (Pause)
    usage=70049, value=0 (Insert)
    usage=7004A, value=0 (Home)
    usage=7004B, value=0 (PageUp)
    usage=7004C, value=0 (Delete Forward)
    usage=7004D, value=0 (End)
    usage=7004E, value=0 (PageDown)
    usage=7004F, value=0 (RightArrow)
    usage=70050, value=0 (LeftArrow)
    usage=70051, value=0 (DownArrow)
    usage=70052, value=0 (UpArrow)
    usage=70053, value=0 (Keypad Num Lock and Clear)
    usage=70054, value=0 (Keypad /)
    usage=70055, value=0 (Keypad *)
    usage=70056, value=0 (Keypad -)
    usage=70057, value=0 (Keypad +)
    usage=70058, value=0 (Keypad ENTER)
    usage=70059, value=0 (Keypad 1 and End)
    usage=7005A, value=0 (Keypad 2 and Down Arrow)
    usage=7005B, value=0 (Keypad 3 and PageDn)
    usage=7005C, value=0 (Keypad 4 and Left Arrow)
    usage=7005D, value=0 (Keypad 5)
    usage=7005E, value=0 (Keypad 6 and Right Arrow)
    usage=7005F, value=0 (Keypad 7 and Home)
    usage=70060, value=0 (Keypad 8 and Up Arrow)
    usage=70061, value=0 (Keypad 9 and PageUp)
    usage=70062, value=0 (Keypad 0 and Insert)
    usage=70063, value=0 (Keypad . and Delete)
    usage=70064, value=0 (Non-US nd |)
    usage=70065, value=0 (Application)
    usage=70066, value=0 (Power)
    usage=70067, value=0 (Keypad =)
    usage=70068, value=0 (F13)
    usage=70069, value=0 (F14)
    usage=7006A, value=0 (F15)
    usage=7006B, value=0 (F16)
    usage=7006C, value=0 (F17)
    usage=7006D, value=0 (F18)
    usage=7006E, value=0 (F19)
    usage=7006F, value=0 (F20)
  END:
HID(1 : 10006): 00 00 01 B0 04 00 00 00 00 00 00 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:2 min:0 max:1
    usage=70000, value=0 (Keycode 0)
    usage=70001, value=0 (Keycode 1)
    usage=70002, value=0 (Keycode 2)
    usage=70003, value=0 (Keycode 3)
    usage=70004, value=0 (a and A)
    usage=70005, value=0 (b and B)
    usage=70006, value=0 (c and C)
    usage=70007, value=0 (d and D)
    usage=70008, value=1 (e and E)
    usage=70009, value=0 (f and F)
    usage=7000A, value=0 (g and G)
    usage=7000B, value=0 (h and H)
    usage=7000C, value=0 (i and I)
    usage=7000D, value=0 (j and J)
    usage=7000E, value=0 (k and K)
    usage=7000F, value=0 (l and L)
    usage=70010, value=0 (m and M)
    usage=70011, value=0 (n and N)
    usage=70012, value=0 (o and O)
    usage=70013, value=0 (p and P)
    usage=70014, value=1 (q and Q)
    usage=70015, value=1 (r and R)
    usage=70016, value=0 (s and S)
    usage=70017, value=1 (t and T)
    usage=70018, value=0 (u and U)
    usage=70019, value=0 (v and V)
    usage=7001A, value=1 (w and W)
    usage=7001B, value=0 (x and X)
    usage=7001C, value=0 (y and Y)
    usage=7001D, value=0 (z and Z)
    usage=7001E, value=0 (1 and !)
    usage=7001F, value=0 (2 and @)
    usage=70020, value=0 (3 and #)
    usage=70021, value=0 (4 and $)
    usage=70022, value=0 (5 and %)
    usage=70023, value=0 (6 and ^)
    usage=70024, value=0 (7 and &)
    usage=70025, value=0 (8 and *)
    usage=70026, value=0 (9 and ()
    usage=70027, value=0 (0 and ))
    usage=70028, value=0 (Return (ENTER))
    usage=70029, value=0 (ESCAPE)
    usage=7002A, value=0 (DELETE (Backspace))
    usage=7002B, value=0 (Tab)
    usage=7002C, value=0 (Spacebar)
    usage=7002D, value=0 (- and (underscore))
    usage=7002E, value=0 (= and +)
    usage=7002F, value=0 ([ and {)
    usage=70030, value=0 (] and })
    usage=70031, value=0 (nd |)
    usage=70032, value=0 (Non-US # and ˜)
    usage=70033, value=0 (; and :)
    usage=70034, value=0 (‘ and “)
    usage=70035, value=0 (Grave Accent and Tilde)
    usage=70036, value=0 (, and <)
    usage=70037, value=0 (. and >)
    usage=70038, value=0 (/ and ?)
    usage=70039, value=0 (Caps Lock)
    usage=7003A, value=0 (F1)
    usage=7003B, value=0 (F2)
    usage=7003C, value=0 (F3)
    usage=7003D, value=0 (F4)
    usage=7003E, value=0 (F5)
    usage=7003F, value=0 (F6)
    usage=70040, value=0 (F7)
    usage=70041, value=0 (F8)
    usage=70042, value=0 (F9)
    usage=70043, value=0 (F10)
    usage=70044, value=0 (F11)
    usage=70045, value=0 (F12)
    usage=70046, value=0 (PrintScreen)
    usage=70047, value=0 (Scroll Lock)
    usage=70048, value=0 (Pause)
    usage=70049, value=0 (Insert)
    usage=7004A, value=0 (Home)
    usage=7004B, value=0 (PageUp)
    usage=7004C, value=0 (Delete Forward)
    usage=7004D, value=0 (End)
    usage=7004E, value=0 (PageDown)
    usage=7004F, value=0 (RightArrow)
    usage=70050, value=0 (LeftArrow)
    usage=70051, value=0 (DownArrow)
    usage=70052, value=0 (UpArrow)
    usage=70053, value=0 (Keypad Num Lock and Clear)
    usage=70054, value=0 (Keypad /)
    usage=70055, value=0 (Keypad *)
    usage=70056, value=0 (Keypad -)
    usage=70057, value=0 (Keypad +)
    usage=70058, value=0 (Keypad ENTER)
    usage=70059, value=0 (Keypad 1 and End)
    usage=7005A, value=0 (Keypad 2 and Down Arrow)
    usage=7005B, value=0 (Keypad 3 and PageDn)
    usage=7005C, value=0 (Keypad 4 and Left Arrow)
    usage=7005D, value=0 (Keypad 5)
    usage=7005E, value=0 (Keypad 6 and Right Arrow)
    usage=7005F, value=0 (Keypad 7 and Home)
    usage=70060, value=0 (Keypad 8 and Up Arrow)
    usage=70061, value=0 (Keypad 9 and PageUp)
    usage=70062, value=0 (Keypad 0 and Insert)
    usage=70063, value=0 (Keypad . and Delete)
    usage=70064, value=0 (Non-US nd |)
    usage=70065, value=0 (Application)
    usage=70066, value=0 (Power)
    usage=70067, value=0 (Keypad =)
    usage=70068, value=0 (F13)
    usage=70069, value=0 (F14)
    usage=7006A, value=0 (F15)
    usage=7006B, value=0 (F16)
    usage=7006C, value=0 (F17)
    usage=7006D, value=0 (F18)
    usage=7006E, value=0 (F19)
    usage=7006F, value=0 (F20)
  END:
HID(1 : 10006): 00 00 01 30 04 00 00 00 00 00 00 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:2 min:0 max:1
    usage=70000, value=0 (Keycode 0)
    usage=70001, value=0 (Keycode 1)
    usage=70002, value=0 (Keycode 2)
    usage=70003, value=0 (Keycode 3)
    usage=70004, value=0 (a and A)
    usage=70005, value=0 (b and B)
    usage=70006, value=0 (c and C)
    usage=70007, value=0 (d and D)
    usage=70008, value=1 (e and E)
    usage=70009, value=0 (f and F)
    usage=7000A, value=0 (g and G)
    usage=7000B, value=0 (h and H)
    usage=7000C, value=0 (i and I)
    usage=7000D, value=0 (j and J)
    usage=7000E, value=0 (k and K)
    usage=7000F, value=0 (l and L)
    usage=70010, value=0 (m and M)
    usage=70011, value=0 (n and N)
    usage=70012, value=0 (o and O)
    usage=70013, value=0 (p and P)
    usage=70014, value=1 (q and Q)
    usage=70015, value=1 (r and R)
    usage=70016, value=0 (s and S)
    usage=70017, value=0 (t and T)
    usage=70018, value=0 (u and U)
    usage=70019, value=0 (v and V)
    usage=7001A, value=1 (w and W)
    usage=7001B, value=0 (x and X)
    usage=7001C, value=0 (y and Y)
    usage=7001D, value=0 (z and Z)
    usage=7001E, value=0 (1 and !)
    usage=7001F, value=0 (2 and @)
    usage=70020, value=0 (3 and #)
    usage=70021, value=0 (4 and $)
    usage=70022, value=0 (5 and %)
    usage=70023, value=0 (6 and ^)
    usage=70024, value=0 (7 and &)
    usage=70025, value=0 (8 and *)
    usage=70026, value=0 (9 and ()
    usage=70027, value=0 (0 and ))
    usage=70028, value=0 (Return (ENTER))
    usage=70029, value=0 (ESCAPE)
    usage=7002A, value=0 (DELETE (Backspace))
    usage=7002B, value=0 (Tab)
    usage=7002C, value=0 (Spacebar)
    usage=7002D, value=0 (- and (underscore))
    usage=7002E, value=0 (= and +)
    usage=7002F, value=0 ([ and {)
    usage=70030, value=0 (] and })
    usage=70031, value=0 (nd |)
    usage=70032, value=0 (Non-US # and ˜)
    usage=70033, value=0 (; and :)
    usage=70034, value=0 (‘ and “)
    usage=70035, value=0 (Grave Accent and Tilde)
    usage=70036, value=0 (, and <)
    usage=70037, value=0 (. and >)
    usage=70038, value=0 (/ and ?)
    usage=70039, value=0 (Caps Lock)
    usage=7003A, value=0 (F1)
    usage=7003B, value=0 (F2)
    usage=7003C, value=0 (F3)
    usage=7003D, value=0 (F4)
    usage=7003E, value=0 (F5)
    usage=7003F, value=0 (F6)
    usage=70040, value=0 (F7)
    usage=70041, value=0 (F8)
    usage=70042, value=0 (F9)
    usage=70043, value=0 (F10)
    usage=70044, value=0 (F11)
    usage=70045, value=0 (F12)
    usage=70046, value=0 (PrintScreen)
    usage=70047, value=0 (Scroll Lock)
    usage=70048, value=0 (Pause)
    usage=70049, value=0 (Insert)
    usage=7004A, value=0 (Home)
    usage=7004B, value=0 (PageUp)
    usage=7004C, value=0 (Delete Forward)
    usage=7004D, value=0 (End)
    usage=7004E, value=0 (PageDown)
    usage=7004F, value=0 (RightArrow)
    usage=70050, value=0 (LeftArrow)
    usage=70051, value=0 (DownArrow)
    usage=70052, value=0 (UpArrow)
    usage=70053, value=0 (Keypad Num Lock and Clear)
    usage=70054, value=0 (Keypad /)
    usage=70055, value=0 (Keypad *)
    usage=70056, value=0 (Keypad -)
    usage=70057, value=0 (Keypad +)
    usage=70058, value=0 (Keypad ENTER)
    usage=70059, value=0 (Keypad 1 and End)
    usage=7005A, value=0 (Keypad 2 and Down Arrow)
    usage=7005B, value=0 (Keypad 3 and PageDn)
    usage=7005C, value=0 (Keypad 4 and Left Arrow)
    usage=7005D, value=0 (Keypad 5)
    usage=7005E, value=0 (Keypad 6 and Right Arrow)
    usage=7005F, value=0 (Keypad 7 and Home)
    usage=70060, value=0 (Keypad 8 and Up Arrow)
    usage=70061, value=0 (Keypad 9 and PageUp)
    usage=70062, value=0 (Keypad 0 and Insert)
    usage=70063, value=0 (Keypad . and Delete)
    usage=70064, value=0 (Non-US nd |)
    usage=70065, value=0 (Application)
    usage=70066, value=0 (Power)
    usage=70067, value=0 (Keypad =)
    usage=70068, value=0 (F13)
    usage=70069, value=0 (F14)
    usage=7006A, value=0 (F15)
    usage=7006B, value=0 (F16)
    usage=7006C, value=0 (F17)
    usage=7006D, value=0 (F18)
    usage=7006E, value=0 (F19)
    usage=7006F, value=0 (F20)
  END:
HID(1 : 10006): 00 00 01 10 00 00 00 00 00 00 00 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:2 min:0 max:1
    usage=70000, value=0 (Keycode 0)
    usage=70001, value=0 (Keycode 1)
    usage=70002, value=0 (Keycode 2)
    usage=70003, value=0 (Keycode 3)
    usage=70004, value=0 (a and A)
    usage=70005, value=0 (b and B)
    usage=70006, value=0 (c and C)
    usage=70007, value=0 (d and D)
    usage=70008, value=1 (e and E)
    usage=70009, value=0 (f and F)
    usage=7000A, value=0 (g and G)
    usage=7000B, value=0 (h and H)
    usage=7000C, value=0 (i and I)
    usage=7000D, value=0 (j and J)
    usage=7000E, value=0 (k and K)
    usage=7000F, value=0 (l and L)
    usage=70010, value=0 (m and M)
    usage=70011, value=0 (n and N)
    usage=70012, value=0 (o and O)
    usage=70013, value=0 (p and P)
    usage=70014, value=1 (q and Q)
    usage=70015, value=0 (r and R)
    usage=70016, value=0 (s and S)
    usage=70017, value=0 (t and T)
    usage=70018, value=0 (u and U)
    usage=70019, value=0 (v and V)
    usage=7001A, value=0 (w and W)
    usage=7001B, value=0 (x and X)
    usage=7001C, value=0 (y and Y)
    usage=7001D, value=0 (z and Z)
    usage=7001E, value=0 (1 and !)
    usage=7001F, value=0 (2 and @)
    usage=70020, value=0 (3 and #)
    usage=70021, value=0 (4 and $)
    usage=70022, value=0 (5 and %)
    usage=70023, value=0 (6 and ^)
    usage=70024, value=0 (7 and &)
    usage=70025, value=0 (8 and *)
    usage=70026, value=0 (9 and ()
    usage=70027, value=0 (0 and ))
    usage=70028, value=0 (Return (ENTER))
    usage=70029, value=0 (ESCAPE)
    usage=7002A, value=0 (DELETE (Backspace))
    usage=7002B, value=0 (Tab)
    usage=7002C, value=0 (Spacebar)
    usage=7002D, value=0 (- and (underscore))
    usage=7002E, value=0 (= and +)
    usage=7002F, value=0 ([ and {)
    usage=70030, value=0 (] and })
    usage=70031, value=0 (nd |)
    usage=70032, value=0 (Non-US # and ˜)
    usage=70033, value=0 (; and :)
    usage=70034, value=0 (‘ and “)
    usage=70035, value=0 (Grave Accent and Tilde)
    usage=70036, value=0 (, and <)
    usage=70037, value=0 (. and >)
    usage=70038, value=0 (/ and ?)
    usage=70039, value=0 (Caps Lock)
    usage=7003A, value=0 (F1)
    usage=7003B, value=0 (F2)
    usage=7003C, value=0 (F3)
    usage=7003D, value=0 (F4)
    usage=7003E, value=0 (F5)
    usage=7003F, value=0 (F6)
    usage=70040, value=0 (F7)
    usage=70041, value=0 (F8)
    usage=70042, value=0 (F9)
    usage=70043, value=0 (F10)
    usage=70044, value=0 (F11)
    usage=70045, value=0 (F12)
    usage=70046, value=0 (PrintScreen)
    usage=70047, value=0 (Scroll Lock)
    usage=70048, value=0 (Pause)
    usage=70049, value=0 (Insert)
    usage=7004A, value=0 (Home)
    usage=7004B, value=0 (PageUp)
    usage=7004C, value=0 (Delete Forward)
    usage=7004D, value=0 (End)
    usage=7004E, value=0 (PageDown)
    usage=7004F, value=0 (RightArrow)
    usage=70050, value=0 (LeftArrow)
    usage=70051, value=0 (DownArrow)
    usage=70052, value=0 (UpArrow)
    usage=70053, value=0 (Keypad Num Lock and Clear)
    usage=70054, value=0 (Keypad /)
    usage=70055, value=0 (Keypad *)
    usage=70056, value=0 (Keypad -)
    usage=70057, value=0 (Keypad +)
    usage=70058, value=0 (Keypad ENTER)
    usage=70059, value=0 (Keypad 1 and End)
    usage=7005A, value=0 (Keypad 2 and Down Arrow)
    usage=7005B, value=0 (Keypad 3 and PageDn)
    usage=7005C, value=0 (Keypad 4 and Left Arrow)
    usage=7005D, value=0 (Keypad 5)
    usage=7005E, value=0 (Keypad 6 and Right Arrow)
    usage=7005F, value=0 (Keypad 7 and Home)
    usage=70060, value=0 (Keypad 8 and Up Arrow)
    usage=70061, value=0 (Keypad 9 and PageUp)
    usage=70062, value=0 (Keypad 0 and Insert)
    usage=70063, value=0 (Keypad . and Delete)
    usage=70064, value=0 (Non-US nd |)
    usage=70065, value=0 (Application)
    usage=70066, value=0 (Power)
    usage=70067, value=0 (Keypad =)
    usage=70068, value=0 (F13)
    usage=70069, value=0 (F14)
    usage=7006A, value=0 (F15)
    usage=7006B, value=0 (F16)
    usage=7006C, value=0 (F17)
    usage=7006D, value=0 (F18)
    usage=7006E, value=0 (F19)
    usage=7006F, value=0 (F20)
  END:
HID(1 : 10006): 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:2 min:0 max:1
    usage=70000, value=0 (Keycode 0)
    usage=70001, value=0 (Keycode 1)
    usage=70002, value=0 (Keycode 2)
    usage=70003, value=0 (Keycode 3)
    usage=70004, value=0 (a and A)
    usage=70005, value=0 (b and B)
    usage=70006, value=0 (c and C)
    usage=70007, value=0 (d and D)
    usage=70008, value=0 (e and E)
    usage=70009, value=0 (f and F)
    usage=7000A, value=0 (g and G)
    usage=7000B, value=0 (h and H)
    usage=7000C, value=0 (i and I)
    usage=7000D, value=0 (j and J)
    usage=7000E, value=0 (k and K)
    usage=7000F, value=0 (l and L)
    usage=70010, value=0 (m and M)
    usage=70011, value=0 (n and N)
    usage=70012, value=0 (o and O)
    usage=70013, value=0 (p and P)
    usage=70014, value=1 (q and Q)
    usage=70015, value=0 (r and R)
    usage=70016, value=0 (s and S)
    usage=70017, value=0 (t and T)
    usage=70018, value=0 (u and U)
    usage=70019, value=0 (v and V)
    usage=7001A, value=0 (w and W)
    usage=7001B, value=0 (x and X)
    usage=7001C, value=0 (y and Y)
    usage=7001D, value=0 (z and Z)
    usage=7001E, value=0 (1 and !)
    usage=7001F, value=0 (2 and @)
    usage=70020, value=0 (3 and #)
    usage=70021, value=0 (4 and $)
    usage=70022, value=0 (5 and %)
    usage=70023, value=0 (6 and ^)
    usage=70024, value=0 (7 and &)
    usage=70025, value=0 (8 and *)
    usage=70026, value=0 (9 and ()
    usage=70027, value=0 (0 and ))
    usage=70028, value=0 (Return (ENTER))
    usage=70029, value=0 (ESCAPE)
    usage=7002A, value=0 (DELETE (Backspace))
    usage=7002B, value=0 (Tab)
    usage=7002C, value=0 (Spacebar)
    usage=7002D, value=0 (- and (underscore))
    usage=7002E, value=0 (= and +)
    usage=7002F, value=0 ([ and {)
    usage=70030, value=0 (] and })
    usage=70031, value=0 (nd |)
    usage=70032, value=0 (Non-US # and ˜)
    usage=70033, value=0 (; and :)
    usage=70034, value=0 (‘ and “)
    usage=70035, value=0 (Grave Accent and Tilde)
    usage=70036, value=0 (, and <)
    usage=70037, value=0 (. and >)
    usage=70038, value=0 (/ and ?)
    usage=70039, value=0 (Caps Lock)
    usage=7003A, value=0 (F1)
    usage=7003B, value=0 (F2)
    usage=7003C, value=0 (F3)
    usage=7003D, value=0 (F4)
    usage=7003E, value=0 (F5)
    usage=7003F, value=0 (F6)
    usage=70040, value=0 (F7)
    usage=70041, value=0 (F8)
    usage=70042, value=0 (F9)
    usage=70043, value=0 (F10)
    usage=70044, value=0 (F11)
    usage=70045, value=0 (F12)
    usage=70046, value=0 (PrintScreen)
    usage=70047, value=0 (Scroll Lock)
    usage=70048, value=0 (Pause)
    usage=70049, value=0 (Insert)
    usage=7004A, value=0 (Home)
    usage=7004B, value=0 (PageUp)
    usage=7004C, value=0 (Delete Forward)
    usage=7004D, value=0 (End)
    usage=7004E, value=0 (PageDown)
    usage=7004F, value=0 (RightArrow)
    usage=70050, value=0 (LeftArrow)
    usage=70051, value=0 (DownArrow)
    usage=70052, value=0 (UpArrow)
    usage=70053, value=0 (Keypad Num Lock and Clear)
    usage=70054, value=0 (Keypad /)
    usage=70055, value=0 (Keypad *)
    usage=70056, value=0 (Keypad -)
    usage=70057, value=0 (Keypad +)
    usage=70058, value=0 (Keypad ENTER)
    usage=70059, value=0 (Keypad 1 and End)
    usage=7005A, value=0 (Keypad 2 and Down Arrow)
    usage=7005B, value=0 (Keypad 3 and PageDn)
    usage=7005C, value=0 (Keypad 4 and Left Arrow)
    usage=7005D, value=0 (Keypad 5)
    usage=7005E, value=0 (Keypad 6 and Right Arrow)
    usage=7005F, value=0 (Keypad 7 and Home)
    usage=70060, value=0 (Keypad 8 and Up Arrow)
    usage=70061, value=0 (Keypad 9 and PageUp)
    usage=70062, value=0 (Keypad 0 and Insert)
    usage=70063, value=0 (Keypad . and Delete)
    usage=70064, value=0 (Non-US nd |)
    usage=70065, value=0 (Application)
    usage=70066, value=0 (Power)
    usage=70067, value=0 (Keypad =)
    usage=70068, value=0 (F13)
    usage=70069, value=0 (F14)
    usage=7006A, value=0 (F15)
    usage=7006B, value=0 (F16)
    usage=7006C, value=0 (F17)
    usage=7006D, value=0 (F18)
    usage=7006E, value=0 (F19)
    usage=7006F, value=0 (F20)
  END:
HID(1 : 10006): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Begin topusage:10000 type:2 min:0 max:1
  usage=700E0, value=0 (Left Control)
  usage=700E1, value=0 (Left Shift)
  usage=700E2, value=0 (Left Alt)
  usage=700E3, value=0 (Left GUI)
  usage=700E4, value=0 (Right Control)
  usage=700E5, value=0 (Right Shift)
  usage=700E6, value=0 (Right Alt)
  usage=700E7, value=0 (Right GUI)
  Begin topusage:10000 type:2 min:0 max:1
    usage=70000, value=0 (Keycode 0)
    usage=70001, value=0 (Keycode 1)
    usage=70002, value=0 (Keycode 2)
    usage=70003, value=0 (Keycode 3)
    usage=70004, value=0 (a and A)
    usage=70005, value=0 (b and B)
    usage=70006, value=0 (c and C)
    usage=70007, value=0 (d and D)
    usage=70008, value=0 (e and E)
    usage=70009, value=0 (f and F)
    usage=7000A, value=0 (g and G)
    usage=7000B, value=0 (h and H)
    usage=7000C, value=0 (i and I)
    usage=7000D, value=0 (j and J)
    usage=7000E, value=0 (k and K)
    usage=7000F, value=0 (l and L)
    usage=70010, value=0 (m and M)
    usage=70011, value=0 (n and N)
    usage=70012, value=0 (o and O)
    usage=70013, value=0 (p and P)
    usage=70014, value=0 (q and Q)
    usage=70015, value=0 (r and R)
    usage=70016, value=0 (s and S)
    usage=70017, value=0 (t and T)
    usage=70018, value=0 (u and U)
    usage=70019, value=0 (v and V)
    usage=7001A, value=0 (w and W)
    usage=7001B, value=0 (x and X)
    usage=7001C, value=0 (y and Y)
    usage=7001D, value=0 (z and Z)
    usage=7001E, value=0 (1 and !)
    usage=7001F, value=0 (2 and @)
    usage=70020, value=0 (3 and #)
    usage=70021, value=0 (4 and $)
    usage=70022, value=0 (5 and %)
    usage=70023, value=0 (6 and ^)
    usage=70024, value=0 (7 and &)
    usage=70025, value=0 (8 and *)
    usage=70026, value=0 (9 and ()
    usage=70027, value=0 (0 and ))
    usage=70028, value=0 (Return (ENTER))
    usage=70029, value=0 (ESCAPE)
    usage=7002A, value=0 (DELETE (Backspace))
    usage=7002B, value=0 (Tab)
    usage=7002C, value=0 (Spacebar)
    usage=7002D, value=0 (- and (underscore))
    usage=7002E, value=0 (= and +)
    usage=7002F, value=0 ([ and {)
    usage=70030, value=0 (] and })
    usage=70031, value=0 (nd |)
    usage=70032, value=0 (Non-US # and ˜)
    usage=70033, value=0 (; and :)
    usage=70034, value=0 (‘ and “)
    usage=70035, value=0 (Grave Accent and Tilde)
    usage=70036, value=0 (, and <)
    usage=70037, value=0 (. and >)
    usage=70038, value=0 (/ and ?)
    usage=70039, value=0 (Caps Lock)
    usage=7003A, value=0 (F1)
    usage=7003B, value=0 (F2)
    usage=7003C, value=0 (F3)
    usage=7003D, value=0 (F4)
    usage=7003E, value=0 (F5)
    usage=7003F, value=0 (F6)
    usage=70040, value=0 (F7)
    usage=70041, value=0 (F8)
    usage=70042, value=0 (F9)
    usage=70043, value=0 (F10)
    usage=70044, value=0 (F11)
    usage=70045, value=0 (F12)
    usage=70046, value=0 (PrintScreen)
    usage=70047, value=0 (Scroll Lock)
    usage=70048, value=0 (Pause)
    usage=70049, value=0 (Insert)
    usage=7004A, value=0 (Home)
    usage=7004B, value=0 (PageUp)
    usage=7004C, value=0 (Delete Forward)
    usage=7004D, value=0 (End)
    usage=7004E, value=0 (PageDown)
    usage=7004F, value=0 (RightArrow)
    usage=70050, value=0 (LeftArrow)
    usage=70051, value=0 (DownArrow)
    usage=70052, value=0 (UpArrow)
    usage=70053, value=0 (Keypad Num Lock and Clear)
    usage=70054, value=0 (Keypad /)
    usage=70055, value=0 (Keypad *)
    usage=70056, value=0 (Keypad -)
    usage=70057, value=0 (Keypad +)
    usage=70058, value=0 (Keypad ENTER)
    usage=70059, value=0 (Keypad 1 and End)
    usage=7005A, value=0 (Keypad 2 and Down Arrow)
    usage=7005B, value=0 (Keypad 3 and PageDn)
    usage=7005C, value=0 (Keypad 4 and Left Arrow)
    usage=7005D, value=0 (Keypad 5)
    usage=7005E, value=0 (Keypad 6 and Right Arrow)
    usage=7005F, value=0 (Keypad 7 and Home)
    usage=70060, value=0 (Keypad 8 and Up Arrow)
    usage=70061, value=0 (Keypad 9 and PageUp)
    usage=70062, value=0 (Keypad 0 and Insert)
    usage=70063, value=0 (Keypad . and Delete)
    usage=70064, value=0 (Non-US nd |)
    usage=70065, value=0 (Application)
    usage=70066, value=0 (Power)
    usage=70067, value=0 (Keypad =)
    usage=70068, value=0 (F13)
    usage=70069, value=0 (F14)
    usage=7006A, value=0 (F15)
    usage=7006B, value=0 (F16)
    usage=7006C, value=0 (F17)
    usage=7006D, value=0 (F18)
    usage=7006E, value=0 (F19)
    usage=7006F, value=0 (F20)
  END:
I am hoping your keyboard works similarly to one of these two keyboards.
Hope this makes some sense
 
Back
Top