The keyboard controller latches a single key. When one was pending,
m9KeyboardPoll read the register up to three times back to back, a
"drain" meant to catch a second key, but with one slot a second read
can only return nothing or the same key again if the controller has not
cleared it yet. Keys came out twice, often and on any key.
- One read per poll, as the Launcher and Meshtastic M9 ports do.
- The same key reported again within 70 ms of the last accepted one is
dropped as the same press. That covers a stale latch read on the next
poll and the matrix bouncing on a slow, deliberate press, which the
report found worse. Nobody presses one key twice that fast on purpose.
The guard runs from the last accepted key, so bounces cannot stretch it.
Fixes#625
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016yt7fNCKmafm9LtRjyuUmS