docs: mark rumble TX as implemented

Update PLAN.md and README.md current status: host to controller TX
(rumble) is implemented and pending hardware confirmation; the dongle
LED is driven at chip level, so no data path LED work remains.

Co-Authored-By: qwen3.8-27b@q3_k_xl: updated status docs
This commit is contained in:
portersky
2026-08-29 15:19:45 +02:00
parent 0f6c985f7f
commit 490b8af585
2 changed files with 10 additions and 7 deletions
+6 -4
View File
@@ -47,11 +47,13 @@ and exposes connected controllers as HID gamepads.
hardware: live controller input is shown in the app (RX data path). hardware: live controller input is shown in the app (RX data path).
- C API + Swift app: async session (fast probe; firmware + radio on a worker - C API + Swift app: async session (fast probe; firmware + radio on a worker
thread), state display (idle/starting/ready/error), controller list with thread), state display (idle/starting/ready/error), controller list with
live input monitor. live input monitor, battery level, and a rumble test button.
Remaining for Phase 3: host to controller TX over the data path (rumble, Host to controller TX over the data path (rumble) is implemented; the dongle
LED). Then Phase 4 (HID) and Phase 5 (app polish); exposing the controller LED is driven at chip level for pairing and client lifecycle. Phase 3 is
as a macOS HID gamepad is the main user-visible gap. complete pending hardware confirmation of rumble. Next: Phase 4 (HID) and
Phase 5 (app polish); exposing the controller as a macOS HID gamepad is the
main user-visible gap.
## Directory Layout ## Directory Layout
+4 -3
View File
@@ -91,7 +91,8 @@ Strike through or check off as each is resolved.
encryption-enable management frames verified against hardware. encryption-enable management frames verified against hardware.
- [ ] **QoS data frames**: RX path verified: controller input QoS frames are - [ ] **QoS data frames**: RX path verified: controller input QoS frames are
decrypted, fed to the GIP layer, and shown live in the app. Host to decrypted, fed to the GIP layer, and shown live in the app. Host to
controller TX (rumble, LED over the data path) is not implemented yet. controller TX (rumble) is implemented via the app's Rumble button,
pending hardware verification.
### 5. AES-CCMP Encryption ### 5. AES-CCMP Encryption
@@ -191,9 +192,9 @@ Working end-to-end on hardware:
- EFUSE read, radio init, channel evaluation, beacon TX - EFUSE read, radio init, channel evaluation, beacon TX
- Pairing mode, controller association, GIP handshake + auth - Pairing mode, controller association, GIP handshake + auth
- Live controller input (buttons, sticks, triggers) in the Swift app - Live controller input (buttons, sticks, triggers) in the Swift app
- Rumble test button (host to controller TX over the GIP data path)
Not done yet: host to controller TX over the data path (rumble, LED), Not done yet: virtual HID gamepad (Phase 4), headset audio (Phase 5).
virtual HID gamepad (Phase 4), headset audio (Phase 5).
`xone_cli` exercises the stack manually in a single dongle session: `xone_cli` exercises the stack manually in a single dongle session: