Things still aren't quite right with USB on this keyboard, here I'll try to leave a summary of notes for things I want to look into in more detail:
B.1 Protocol 1 (Keyboard)
The following represents a Report descriptor for a boot interface for a keyboard.
Usage Page (Generic Desktop),
Usage (Keyboard),
Collection (Application),
Report Size (1),
Report Count (8),
Usage Page (Key Codes),
Usage Minimum (224),
Usage Maximum (231),
Logical Minimum (0),
Logical Maximum (1),
Input (Data, Variable, Absolute), ;Modifier byte
Report Count (1),
Report Size (8),
Input (Constant), ;Reserved byte
Report Count (5),
Report Size (1),
Usage Page (LEDs),
Usage Minimum (1),
Usage Maximum (5),
Output (Data, Variable, Absolute), ;LED report
Report Count (1),
Report Size (3),
Output (Constant), ;LED report padding
Report Count (6),
Report Size (8),
Logical Minimum (0),
Logical Maximum(255),
Usage Page (Key Codes),
Usage Minimum (0),
Usage Maximum (255),
Input (Data, Array),
End Collection
Things still aren't quite right with USB on this keyboard, here I'll try to leave a summary of notes for things I want to look into in more detail:
bcdHIDis0x0110, but I've seen other commercial keyboards withbcdHID: 0x0100OUTendpoint since it doesn't have LEDs for things like caps lockwMaxPacketSizeis 64 for this keyboard, I've seen another withwMaxPacketSize: 63REPORT_COUNTandREPORT_SIZEare swapped in position.HID 1.11 Boot Keyboard Descriptor (spec)