You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Feather bridge v2 (#15)
* ..
* Improved core1/core0 behavior
* cleanup
* improve protocol
* WIP: bridge protocol improvements
Current work on feather-bridge-v2 before merging fix-core-contention.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Remove obsolete protocol_luts files
These text-based protocol lookup tables are no longer needed after
switching to binary fast commands. The fast_commands.h provides
inline packet builders that are much faster.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Fix build: remove obsolete bridge protocol conversion
Core1 translator now outputs fast command packets directly,
no conversion needed. Removed incorrect bridge_build_mouse_move
call that was referencing deleted bridge_protocol.h.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Add missing fast command definitions and fix build
After merging fix-core-contention, added all missing:
- Fast command IDs (FAST_CMD_*)
- Fast command struct definitions (fast_cmd_*_t)
- Bridge protocol compatibility defines
- Fixed humanization mode references (LOW/MEDIUM/HIGH → MICRO/FULL)
- Unified KEY_PRESS and KEY_COMBO handlers
Both bridge and main KMBox firmware now build successfully.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Fix humanization mode change lockup
Increased flash_safe_execute timeout from 500ms to 2000ms.
Core1 USB host operations can be intensive, requiring more
time to safely pause for flash writes.
The 500ms timeout was too short and caused apparent lockups
when changing humanization modes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* ..
* ..
* ..
* Add Xbox controller passthrough with input injection
Implements Console Mode: detects Xbox GIP controllers on the host port,
passes through all traffic (including RSA auth) to the console on the
device port, and allows gamepad input injection via serial commands.
New files:
- xbox_gip.h: GIP protocol definitions, ring buffers, gamepad state
- xbox_host.c/h: TinyUSB custom host driver (Core 1)
- xbox_device.c/h: TinyUSB custom device class (Core 0)
Key design decisions:
- Cross-core auth proxy via spinlock-protected ring buffers
- Input merge: buttons OR (additive), sticks/triggers replace (absolute)
- Auth completion detected when input reports arrive post-challenge
- USB re-enumeration on controller unplug for clean mode transitions
- Hot path functions in RAM (__not_in_flash_func) to avoid XIP misses
- Lockless fast-path on queue empty checks to reduce spinlock contention
- Bitmask queue indexing (& instead of %) for single-cycle wrap
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* ..
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>