Commit graph

22 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
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
06a89b5ae1 feat: select Joy-Con player modes and join pairs with a shortcut 2026-09-07 17:42:33 -06:00
8451b1eec9 feat: add model-aware Controller Studio artwork and topology 2026-09-07 12:57:33 -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
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
6188fcb517 feat: drive native DualSense haptics from Switch HD rumble 2026-09-05 13:23:25 -06:00
0c626fb3b3 feat: add profiled DualSense PCM haptics experiment 2026-09-05 12:03:34 -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
200ffc92be Organize firmware sources by responsibility 2026-09-03 14:28:09 -06:00
4626b13bd8 Add managed reboot into USB BOOTSEL 2026-09-03 14:15:31 -06:00
bd5d4b3177 Complete USB output mode qualification 2026-09-03 14:04:38 -06:00
67801cc52a Add DInput and Mac generic HID modes 2026-09-03 07:53:11 -06:00
ec9359bce8 Add persistent USB output mode selection 2026-09-03 07:26:56 -06:00
31a8cfb9d3 Introduce static USB output driver boundary 2026-09-02 21:15:55 -06:00
cfec816dac Apply persistent controller profiles 2026-09-02 17:35:13 -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