Middle-button scroll state machine (3-state: idle/undecided/scrolling)
with 150ms timeout — short press sends middle click, hold converts
TrackPoint movement to scroll wheel events. FN+middle passes through.
Also implements:
- CapsLock LED feedback via host LED output reports (P5.3/PWM0)
- FN+F7 (LGUI+P), FN+F9 (LGUI+I), FN+F11 (LCTRL+LALT+TAB)
- HID GET_REPORT with per-interface responses
- SET/CLEAR FEATURE for DEVICE_REMOTE_WAKEUP
Tested with 23/23 simulator tests passing (test_scroll.py).
Flash space: 10,238/10,239 words used (1 word free).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>