Commit graph

28 commits

Author SHA1 Message Date
bed71f77f1 feat(wake): add controller-free USB serial wake beacon
Add a standalone Pico2W image reusing the configured nonconnectable wake
burst without Bluepad32, controller-host profiles, Classic/LE-central
roles, connection pools, pairing or writable TLV storage. Explicitly
disable and verify Classic inquiry/page scan before declaring readiness.
Keep the original controller firmware and captured wake identity unchanged.

Expose bounded SPWB1 CDC commands with exactly-once request IDs, explicit
failures and radio progress independent of serial backpressure. Add the
cross-platform switch-pico-wake script with strict preflight, bounded I/O,
no automatic rebroadcast, status-only mode and preserved uncertain-outcome
metadata. Standard USB serial requires no WinUSB/Zadig binding.

Add isolated --wake-only build/publication selection and document setup,
backup and physical-BOOTSEL recovery. Validate776 tests, focused framing
and lifecycle cases, ELF isolation and actual CDC operation on only the
new board. One burst completed in2.095s; malformed/status/reconnect input
and same-ID replay caused no additional broadcast. Original Pico untouched.
Private firmware images, console configuration and backups are excluded.
2026-09-19 22:03:17 -06:00
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
ae1ca51b9a feat(native-usb): route gameplay rumble and attach only after startup readiness 2026-09-19 08:20:47 -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
d15b0ec711 feat(profiles): add solo Joy-Con layouts and digital stick mappings
Add per-profile native solo routing, stick/click swapping, SL/SR output mappings, and digital left-stick directions with analog priority. Extend both codecs to schema 11 while preserving legacy profiles, expose the controls and preview in Studio, and carry rail outputs through Pro emulation. Verified with 541 tests, firmware builds, editor checks, and saved-profile preservation during native 0.89 deployment.
2026-09-15 17:33:31 -06:00
d424fe0f4a fix(native-usb): service masked completions and trace startup stalls
Keep native backend locking IRQ-permitting and service USB hardware from SRAM during BOOTSEL sampling. Add bounded input/control flight recording, root IN and EP0 snapshots, and masked-window handoff coverage. Record PC qualification and the remaining Switch stability limitations.
2026-09-14 13:55:35 -06:00
a699a6920b fix(native-usb): prevent transmit-bank starvation and retain battery telemetry 2026-09-13 21:00:17 -06:00
a407e84a39 Correct USB power reporting for translated native controllers 2026-09-13 09:28:46 -06:00
dd69f3d487 Restore profile editor management on the native Joy-Con hub 2026-09-13 08:35:10 -06:00
26a25a66af Start Wii motion immediately and track residual bias in background 2026-09-13 00:00:53 -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
5ecfca105a Add selectable Wii IR aiming and DolphinBar keepalive 2026-09-09 17:13:27 -06:00
6f58d345e0 Add Switch 2 wake capture and replay 2026-09-04 23:27:02 -06:00
890f47ab80 Add live profile playtest and input fixes 2026-09-04 19:37:58 -06:00
3f6e2c9e12 Patch Bluepad32 in build-local copy 2026-09-03 14:35:29 -06:00
bd5d4b3177 Complete USB output mode qualification 2026-09-03 14:04:38 -06:00
e68cdcd40f
Fix scoping 2026-09-03 11:54:35 -06:00
ecd8ca2b40 Preserve analog triggers in generic HID modes 2026-09-03 11:51:30 -06:00
c5649b06a0 Correct macOS HID axis mapping 2026-09-03 11:11:35 -06:00
db4a860cd6 Fix Windows adapter enumeration and rumble 2026-09-02 12:29:57 -06:00
a7fb6c5694 Add Windows XInput feasibility test 2026-09-02 09:08:49 -06:00
f451e27f8c Add Pico 2 W Bluepad32 AIO backend 2026-08-29 17:37:48 -06:00
65af2f6d5f chore: add IMU diagnostic tool
- Add tools/read_pro_imu.py from gyrov3 branch
- Reads raw 0x30 HID reports from Switch Pro Controller / Pico
- Lazy pyhidapi import with helpful error message when missing
- Supports --list, --count, --plot, --save-prefix flags
2026-03-16 11:50:46 -06:00