Commit graph

48 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
595518fe3d Add selectable BLE-only and Classic-only radio modes 2026-09-09 11:40:51 -06:00
7c1c37a84e Improve Bluetooth credit handling and Switch 2 connection timing 2026-09-09 10:40:25 -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
79a72d811d fix: keep Joy-Con links fast and stop idle rumble writes 2026-09-07 20:35:02 -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
8451b1eec9 feat: add model-aware Controller Studio artwork and topology 2026-09-07 12:57:33 -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
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
8818f1f6e9 Add Profile Studio Set A enhancements 2026-09-04 21:49:50 -06:00
890f47ab80 Add live profile playtest and input fixes 2026-09-04 19:37:58 -06:00
eb03d94183 Add graphical controller profile editor 2026-09-03 21:55:02 -06:00
200ffc92be Organize firmware sources by responsibility 2026-09-03 14:28:09 -06:00
ecd8ca2b40 Preserve analog triggers in generic HID modes 2026-09-03 11:51:30 -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
3f90d04a50 Add persistent controller profile foundation 2026-09-02 16:52:59 -06:00
7afc9981fe Add versioned persistent configuration protocol 2026-09-02 15:24:35 -06:00
b11ae076a8 Introduce protocol-neutral controller state 2026-09-02 14:53:56 -06:00
df515934ab Merge branch 'master' into feature/protocol-neutral-state 2026-09-02 14:28:42 -06:00
7449d6d029 Pause Bluetooth discovery during active play 2026-09-02 14:27:27 -06:00
db4a860cd6 Fix Windows adapter enumeration and rumble 2026-09-02 12:29:57 -06:00
8351cb1d15 Enable strong rumble for 8BitDo Switch mode 2026-09-02 08:50:26 -06:00
fd23842327 Preserve and reconnect 8BitDo controllers 2026-09-01 08:58:16 -06:00
41c7021813 Add physical and USB pairing management 2026-09-01 08:19:11 -06:00
74a62f035b Gate new controller pairing behind BOOTSEL 2026-09-01 07:49:03 -06:00
146c377311 Allow controller reconnect without BOOTSEL 2026-09-01 07:38:21 -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
18c27b06ae Verify and publish dual-controller AIO firmware 2026-08-30 22:40:03 -06:00
edf6ecaae1 Add dual-controller AIO USB transport 2026-08-30 20:54:59 -06:00