-
Notifications
You must be signed in to change notification settings - Fork 47
Open
Description
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
- The letter
- When 4 keys are held down and a fifth is pressed
- The letter
b
gets inserted after the fifth press
- The letter
- When 5 keys are held down and a sixth is pressed
- The letter
c
gets inserted after the sixth press
- The letter
For example:
- Held keys:
q
,w
,e
- Pressing
r
results inqwera
instead ofqwer
- Pressing
- Held keys:
q
,w
,e
,r
- Pressing
t
results inqweratb
instead ofqwert
- Pressing
- Held keys:
q
,w
,e
,r
,t
- Pressing
y
results inqweratbyc
instead ofqwerty
- Pressing
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:
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
Labels
No labels