Commit graph

47 commits

Author SHA1 Message Date
8db720fb9a Accept USB BOOTSEL reboot on the UART firmware
The regular firmware now answers the EP0 vendor INFO and BOOTSEL reboot
requests with the AIO wire protocol, so switch-pico-config reboot bootsel
works when the Pico's USB side is on a PC. Wire constants move to
usb_management_protocol.h; other operations stall.
2026-09-22 10:59:29 -06:00
b6a017eb06 Emulate up to four controllers on the UART firmware
UART protocol v3 adds a slot byte to input frames (v2 still accepted as
slot 0) and slot-tagged BB 03 rumble frames. The regular firmware exposes
SWITCH_PICO_UART_CONTROLLERS (default 4) Switch Pro interfaces like the
AIO build. The bridge shares one serial port across controllers, maps
index:port[:slot], and demuxes rumble by slot.
2026-09-22 10:25:30 -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
9f8678af96 fix(native-usb): isolate two-pair transport and hand off read status in IRQ 2026-09-17 20:24:32 -06:00
a17ca603aa Support Bluepad32 gamepads as native Joy-Con pair sources 2026-09-12 23:03:15 -06:00
ab70536fdf Add DualSense native pair and Wii-only IMU settling 2026-09-12 22:06:50 -06:00
1748910316 Add stock-USB native Joy-Con R/L hub bridge 2026-09-12 15:28:58 -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
3040c9d294 Add verified Joy-Con 2 USB bridge with native mouse support
Implement the standalone USB protocol probe and Bluetooth-backed right Joy-Con bridge with its own persistent virtual pairing identity. Preserve complete ordered native reports, including opaque motion data, and match the console feature set. Relay built-in vibration cues only after genuine source acknowledgement and expose safe BOOTSEL pairing control. Include native capture diagnostics and focused protocol, packet-lifecycle, and cue regressions. Native mouse operation confirmed on Switch with bridge 0.24; private captures and firmware backups remain outside the commit.
2026-09-10 17:46:03 -06:00
9927e439b7 Add configurable accelerometer swing gestures for Wii Remotes 2026-09-10 08:01:24 -06:00
5ecfca105a Add selectable Wii IR aiming and DolphinBar keepalive 2026-09-09 17:13:27 -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
7c1c37a84e Improve Bluetooth credit handling and Switch 2 connection timing 2026-09-09 10:40:25 -06:00
46f42a26dc Fix DualSense native audio initialization and default to accepted 32-frame format 2026-09-08 10:15:07 -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
dcc97e05ba feat: coordinate native rumble with deadline-aware scheduling 2026-09-06 15:12:06 -06:00
3fc28b1fa4 feat: add opt-in native Nintendo rumble backend 2026-09-05 23:58:50 -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
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
3b1366067b Track generated wake configuration in builds 2026-09-05 08:49:57 -06:00
6f58d345e0 Add Switch 2 wake capture and replay 2026-09-04 23:27:02 -06:00
3f6e2c9e12 Patch Bluepad32 in build-local copy 2026-09-03 14:35:29 -06:00
200ffc92be Organize firmware sources by responsibility 2026-09-03 14:28:09 -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
114266836d Add deterministic macros and turbo 2026-09-02 17:55:31 -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
17b3d7399c Prototype adapter XInput feasibility 2026-09-02 07:53:18 -06:00
41c7021813 Add physical and USB pairing management 2026-09-01 08:19:11 -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
bce94d38ce Add stateful HD-rumble decoder with TinyUSB report normalization
Decode Nintendo HD-rumble words once in firmware into conventional low/high magnitudes and normalize stripped control SET_REPORT vs complete interrupt OUT reports through one path.
2026-08-29 22:19:31 -06:00
f451e27f8c Add Pico 2 W Bluepad32 AIO backend 2026-08-29 17:37:48 -06:00
0a8134ae15 Remove autotest 2025-12-08 19:20:24 -07:00
6f6d28fdf4 Remove debug logging if flag is present 2025-11-20 17:39:53 -07:00
07b1689da1 It's connecting!! 2025-11-20 17:18:03 -07:00
7c0d057bcd Initial commit 2025-11-20 11:20:19 -07:00