Commit graph

15 commits

Author SHA1 Message Date
e2f9e1f211 Add UART link statistics and drop host-side gyro zeroing
STATS command (0xAA 0xFE 0x08 0x02 'STATS') returns frames accepted/rejected,
bytes discarded, RX FIFO overruns and motion frame/sample counters;
controller-uart-bridge --debug-uart prints them beside host send counts.
The bridge no longer zeroes the gyro from its first 200 samples: like the
AIO's Bluepad32 path, controller-calibrated values are forwarded unchanged.
2026-09-22 17:25:52 -06:00
6c27e601d9 Consume UART motion samples once per USB report like the AIO
The bridge now forwards each SDL sensor sample once instead of re-sending
its last window at 500 Hz, and the firmware pools pending samples per slot
until a USB report retires them. A stalled or slow sensor stream can no
longer be re-integrated as continuous rotation in quaternion mode.
--debug-imu reports the sample rate, |a| in g and bias lock state.
2026-09-22 16:56:45 -06:00
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
6e0676d9df Add UART BOOTSEL reboot command to the regular firmware
The bridge sends 0xAA 0xFE 0x08 0x01 'BOOTSEL' ck; the firmware verifies
checksum and magic and calls reset_usb_boot(). Exposed as
controller-uart-bridge --reboot-bootsel PORT and build.py --uart-port PORT,
which waits for the ROM loader before running picotool.
2026-09-22 10:41:51 -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
a87917bf0b feat: support Switch 2 controllers and expanded profiles 2026-09-06 23:17:26 -06:00
3fc28b1fa4 feat: add opt-in native Nintendo rumble backend 2026-09-05 23:58:50 -06:00
bd5d4b3177 Complete USB output mode qualification 2026-09-03 14:04:38 -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
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
20c9c98f89 Document and publish Bluepad32 AIO firmware 2026-08-29 17:46:54 -06:00
9d627214fb Publish firmware artifacts after build 2026-08-29 13:39:44 -06:00
9855583019 Update firmware 2026-08-14 21:39:11 +09:00
06d702d91d Add firmware and readme for building firmware 2025-12-14 13:23:20 -07:00