Skip to content

v1.2.0 — pairing rework, config page in both USB modes, custom IP, descriptor cleanup

Choose a tag to compare

@kungaa kungaa released this 19 Jun 07:10
· 59 commits to ds5-linux-bridge since this release

Highlights

This release reworks controller pairing, makes the config page reachable in both USB modes, adds a custom config-page address for multi-adapter setups, and cleans the gamepad HID descriptor up to genuine-hardware parity.

Pairing

  • Bond-gated pairing. The adapter now only scans for a new controller when none is remembered — once a controller is paired it stops inquiring, so a nearby DualSense in pairing mode won't get grabbed. A remembered controller still reconnects on its own.
  • Pair-on-demand from the web page. A Pair new controller button opens a 30-second pairing window (drops the active controller but keeps its bond), so adding a second controller is a deliberate action.

Config page

  • Reachable in both USB modes. The CDC-NCM config page is now served whether or not a controller is connected, and the host keeps a single stable network adapter across connect/disconnect (no more duplicate / "!" device in Windows Device Manager).
  • Custom config-page address. Besides the three vetted presets, you can now enter a custom private IP (10.x, 172.16–31.x, 192.168.x). Invalid/unreachable entries fall back to the default automatically — you can't lock yourself out. Handy for running several adapters on one PC, each on its own address.
  • UI polish. Restructured README, new User Guide, bond-row layout fix, GitHub/Ko-fi footer.

HID descriptor cleanup — now matches real hardware

  • Removed the orphaned WebHID command channel (vendor feature reports 0xF60xF9) and its dead ENABLE_DIAG apparatus — the on-device web API fully replaces it.
  • Removed stray DualShock 4 feature reports 0x0B/0x0C that had been in the descriptor since upstream's first commit (they're DS4 reports, never present on a real DualSense, and never used by the firmware).
  • Net result: the gamepad report-ID set now matches a genuine DualSense / DualSense Edge exactly (verified against real-device descriptor dumps). Shipping input/audio/haptics behavior is unchanged.

⚠️ Upgrade note

This bumps the on-flash config version (4 → 5). On first boot after flashing, saved settings reset to defaults once. Your paired controllers (bonds) are not affected — they're stored separately. Just re-apply any non-default settings on the config page.

Companion plugin

The Decky Loader plugin talks to the same on-device API. Multi-adapter discovery (probe presets, then enumerate NCM interfaces for custom-IP adapters) is on its roadmap.


CI attaches the standard, debug, and Waveshare UF2s to this release shortly after publish.