Skip to content

Firmware USB Issues #28

@bschwind

Description

@bschwind

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:

  • The current bcdHID is 0x0110, but I've seen other commercial keyboards with bcdHID: 0x0100
  • This keyboard technically doesn't need an OUT endpoint since it doesn't have LEDs for things like caps lock
  • wMaxPacketSize is 64 for this keyboard, I've seen another with wMaxPacketSize: 63
  • In the keyboard HID descriptor, REPORT_COUNT and REPORT_SIZE are swapped in position.
  • Check the HID descriptor

HID 1.11 Boot Keyboard Descriptor (spec)

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions