Skip to content

Is there an issue with the generated keyboard descriptor? #44

@bschwind

Description

@bschwind

Hi, I'm building a keyboard and am currently using this crate. I'm currently using it on MacOS.

I noticed I'm receiving phantom key inputs when I hold down 4 or more keys. Normally this would sound like ghosting, but my keyboard has diodes on every switch, and I verified with probe-run and defmt that I'm not adding these characters to the KeyboardReport struct.

  • When 3 keys are held down and a fourth is pressed
    • The letter a gets inserted after the fourth press
  • When 4 keys are held down and a fifth is pressed
    • The letter b gets inserted after the fifth press
  • When 5 keys are held down and a sixth is pressed
    • The letter c gets inserted after the sixth press

For example:

  • Held keys: q, w, e
    • Pressing r results in qwera instead of qwer
  • Held keys: q, w, e, r
    • Pressing t results in qweratb instead of qwert
  • Held keys: q, w, e, r, t
    • Pressing y results in qweratbyc instead of qwerty

I eventually narrowed this down to the keyboard HID descriptor. I swapped it out for one from another project, and now the keyboard works properly with the scenarios above:

bschwind/key-ripper#10

I don't yet know enough about USB HID descriptors to say what's going on, but it feels like a byte is out of place somewhere.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions