morfertaw[m]: Here is the hid report descriptor with the id. `const KEYBOARD_ID: u8 = 0x01; pub const HID_KEYBOAD_REPORT_DISCRIPTOR: &[u8] = hid!( (USAGE_PAGE, 0x01), // USAGE_PAGE (Generic Desktop Ctrls) (USAGE, 0x06), // USAGE (Keyboard) (COLLECTION, 0x01), // COLLECTION (Application) // ------------------------------------------------- Keyboard (REPORT_ID, KEYBOARD_ID), // REPORT_ID (1) (USAGE_PAGE, 0x07), // USAGE_PAGE (Kbrd/Keypad) (USAGE_MINIMUM, 0xE0), // USAGE_MINIMUM (0xE0) (USAGE_MAXIMUM, 0xE7), // USAGE_MAXIMUM (0xE7) (LOGICAL_MINIMUM, 0x00), // LOGICAL_MINIMUM (0) (LOGICAL_MAXIMUM, 0x01), // Logical Maximum (1) (REPORT_SIZE, 0x01), // REPORT_SIZE (1) (REPORT_COUNT, 0x08), // REPORT_COUNT (8) (HIDINPUT, 0x02), // INPUT (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) (REPORT_COUNT, 0x01), // REPORT_COUNT (1) ; 1 byte (Reserved) (REPORT_SIZE, 0x08), // REPORT_SIZE (8) (HIDINPUT, 0x01), // INPUT (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) (REPORT_COUNT, 0x05), // REPORT_COUNT (5) ; 5 bits (Num lock, Caps lock, Scroll lock, Compose, Kana) (REPORT_SIZE, 0x01), // REPORT_SIZE (1) (USAGE_PAGE, 0x08), // USAGE_PAGE (LEDs) (USAGE_MINIMUM, 0x01), // USAGE_MINIMUM (0x01) ; Num Lock (USAGE_MAXIMUM, 0x05), // USAGE_MAXIMUM (0x05) ; Kana (HIDOUTPUT, 0x02), // OUTPUT (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) (REPORT_COUNT, 0x01), // REPORT_COUNT (1) ; 3 bits (Padding) (REPORT_SIZE, 0x03), // REPORT_SIZE (3) (HIDOUTPUT, 0x01), // OUTPUT (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) (REPORT_COUNT, 0x06), // REPORT_COUNT (6) ; 6 bytes (Keys) (REPORT_SIZE, 0x08), // REPORT_SIZE(8) (LOGICAL_MINIMUM, 0x00), // LOGICAL_MINIMUM(0) (LOGICAL_MAXIMUM, 0x65), // LOGICAL_MAXIMUM(0x65) ; 101 keys (USAGE_PAGE, 0x07), // USAGE_PAGE (Kbrd/Keypad) (USAGE_MINIMUM, 0x00), // USAGE_MINIMUM (0) (USAGE_MAXIMUM, 0x65), // USAGE_MAXIMUM (0x65) (HIDINPUT, 0x00), // INPUT (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) (END_COLLECTION), // END_COLLECTION );