Commit graph

35 commits

Author SHA1 Message Date
19358a0fff feat(wake): add USB-triggered Switch 2 wake with Windows interface support
Queue correlated, volatile wake requests for the BTstack owner and expose
read-only completion state. Keep the controller chord, captured identity,
pairings, profiles, HD settings and existing wake burst unchanged.

Add Python API and wake CLI with bounded waits, explicit failure outcomes
and no automatic broadcast retries. Avoid importing SDL just to obtain
fixed sensor IDs so USB automation has clean output and no SDL dependency.

Windows libusb cannot control hub roots. Expose only INFO/WAKE on each
native child's existing vendor Interface 1 with isolated control state;
retain hub/HID drivers, descriptors and identities. Add safe sibling-aware
Windows discovery and a packaged Windows libusb runtime. Document manual
WinUSB binding to Interface 1 only and migrate examples to find_wake_pico.

Validate with 713 tests, 10 firmware/probe builds, Windows x64 wheel
resolution on Python 3.9/3.11, and a real child-interface wake burst on
Linux (2.03 s, no controller, no failures). Device/configuration descriptors,
serials and persistent state matched before/after. Physical Windows
hardware/driver operation remains unverified on this Linux workstation.
2026-09-19 20:19:46 -06:00
80b788099b feat(native-usb): add 32-frame HD gameplay rumble and USB flight diagnostics
Preserve native frequency/amplitude timelines for DualSense PCM output,
remove the unsupported 64-frame path, and retain compatibility rumble for
other controllers. Use the validated 300 MHz sampling phase and restrict
non-bondable Classic discovery autoconnect to previously paired peers.

Buffer native-hub UART stdout and release USB IRQs around port-reset
callbacks. Add observer liveness and pre-SETUP root-response observations
without changing recovery behavior. Cover transport and haptics boundaries.

Record the user-accepted 0.108 trial: controls remained responsive and
rumble felt fine. Instrumentation changes timing; the disconnect root
cause and long-term reliability remain unqualified.

Validation: 624 tests, 11 affected firmware/probe builds, and on-device
concurrent USB and HD-auto-start checks. Private captures, generated
images, and unrelated working-tree files are intentionally excluded.
2026-09-19 17:03:46 -06:00
9f6dddb790 WIP: checkpoint Wii native IMU and upstream IR bridge
Pause Wii pointing work with firmware 0.33-wii-trace installed. Preserve the pinned libogc IR pipeline, calibrated native IMU, software BOOTSEL, and standard camera sensitivity trial.

Tracking instability, tracking loss, and ineffective vertical movement remain unresolved. Level-2 camera filtering is not hardware-qualified. Nine targeted regression tests pass; firmware and persistent storage were verified after flashing.
2026-09-11 17:05:54 -06:00
485ad39709 Add Nunchuk and combined motion gestures with button or macro actions 2026-09-10 09:27:52 -06:00
9927e439b7 Add configurable accelerometer swing gestures for Wii Remotes 2026-09-10 08:01:24 -06:00
e2c8e0d860 Consolidate firmware variants and publish AIO radio-mode builds 2026-09-09 11:53:14 -06:00
595518fe3d Add selectable BLE-only and Classic-only radio modes 2026-09-09 11:40:51 -06:00
fa38123873 Add Wii MotionPlus support and calibrated Nunchuk controls 2026-09-08 12:39:44 -06:00
46f42a26dc Fix DualSense native audio initialization and default to accepted 32-frame format 2026-09-08 10:15:07 -06:00
ed8f3a7c7f fix: reserve Classic reconnect airtime with two Switch 2 links 2026-09-07 18:39:30 -06:00
b0a896997b fix: retain the lower player slot when joining Joy-Cons 2026-09-07 18:07:31 -06:00
06a89b5ae1 feat: select Joy-Con player modes and join pairs with a shortcut 2026-09-07 17:42:33 -06:00
34f8a50c19 feat: give Joy-Con pairs independent persistent profile banks 2026-09-07 15:41:06 -06:00
8dd11c17a6 fix: reconnect Joy-Con mates and balance mixed Bluetooth links 2026-09-07 12:04:41 -06:00
006b573ee8 feat: preserve native HD rumble on Switch 2 controllers 2026-09-07 08:19:53 -06:00
a87917bf0b feat: support Switch 2 controllers and expanded profiles 2026-09-06 23:17:26 -06:00
4e48b7a9e7 feat: add Xbox impulse-trigger rumble mapping 2026-09-06 16:14:11 -06:00
dcc97e05ba feat: coordinate native rumble with deadline-aware scheduling 2026-09-06 15:12:06 -06:00
71fcf5bb94 fix: use sustainable native haptics cadence for mixed controllers 2026-09-05 22:34:20 -06:00
3c2d9fa723 feat: add Set B profiles and low-latency native haptics
Add schema-6 profiles, atomic catalog migration, shortcuts, Shift, configurable Turbo/Burst, macro recording and playback. Promote qualified 300 MHz native DualSense transport to AIO/XInput defaults with bounded bus transactions, credit batching and generation-safe persistent rumble.
2026-09-05 21:56:19 -06:00
1f9d7f6824 Keep wake identity stable during play 2026-09-04 23:47:00 -06:00
6f58d345e0 Add Switch 2 wake capture and replay 2026-09-04 23:27:02 -06:00
200ffc92be Organize firmware sources by responsibility 2026-09-03 14:28:09 -06:00
ec9359bce8 Add persistent USB output mode selection 2026-09-03 07:26:56 -06:00
7358670e63 Complete controller profile runtime 2026-09-02 20:28:45 -06:00
045edc984e Add persistent profile switching feedback 2026-09-02 18:45:28 -06:00
b11ae076a8 Introduce protocol-neutral controller state 2026-09-02 14:53:56 -06:00
db4a860cd6 Fix Windows adapter enumeration and rumble 2026-09-02 12:29:57 -06:00
41c7021813 Add physical and USB pairing management 2026-09-01 08:19:11 -06:00
81f6ac1236 Add per-controller motion toggle 2026-08-31 22:30:29 -06:00
94ccfc7220 Implement per-controller ABXY toggle 2026-08-31 22:17:37 -06:00
23a3cbade5 Assign colors per controller slot 2026-08-31 09:06:00 -06:00
4a73680bd2 Gate controller pairing behind BOOTSEL 2026-08-31 08:25:08 -06:00
fac919a798 Scale AIO transport to four controllers 2026-08-30 23:23:29 -06:00
edf6ecaae1 Add dual-controller AIO USB transport 2026-08-30 20:54:59 -06:00