mirror of
https://github.com/safijari/openpuck.git
synced 2026-11-04 06:34:45 +00:00
[PR #314] [MERGED] Fix dropped lizard key/mouse reports; restore pad haptics in pure lizard #280
Labels
No labels
pull-request
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
safijari/openpuck#280
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/safijari/openpuck/pull/314
Author: @safijari
Created: 10/14/2026
Status: ✅ Merged
Merged: 10/14/2026
Merged by: @safijari
Base:
main← Head:fix-lizard-dropped-reports📝 Commits (2)
f8b6ecfQueue lizard HID reports through usbTxHid so key edges aren't droppeda170b47Re-enable pad haptics layer on connect in pure lizard mode📊 Changes
2 files changed (+19 additions, -16 deletions)
View changed files
📝
OpenPuck/haptics.cpp(+7 -3)📝
OpenPuck/mode_lizard.cpp(+12 -13)📄 Description
Dropped inputs in pure lizard mode
`rfLizard` sent mouse, consumer and keyboard reports straight to `hid[0]`, each guarded by `ready()`. They share one endpoint that stays busy until the host polls, so the second report in a cycle was dropped while the shadow state (`pmod`/`pkc`/`pmbtn`/`prevCC`) had already advanced. Key edges were lost whenever they landed in the same cycle as cursor motion or a mouse-button change. All four send sites (including `rfLizardRelease`) now go through `usbTxHid`, which orders reports and paces them to the host poll, and keeps lizard off the unprotected direct-send path described in `usb_tx.cpp`.
Pad haptics in pure lizard
Puck modes never steer id9, so in `MODE_LIZARD` nothing re-enabled the controller's autonomous pad layer if an earlier session left id9=0 (trackpad ticks silent). In pure lizard only, `hapticTask` now lands id9=1 once per connect. Other puck modes are unchanged, so Steam keeps control of haptics. The root cause of the silent ticks is a hypothesis (stale controller state); not confirmed.
Testing: `make check` and `make build` pass; flashed. Input skips confirmed fixed on hardware; haptics change not yet confirmed.
🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.