DS5 Bridge 1.0 is live.
The first stable release includes the Windows companion app, Pico 2 W firmware,
profiles, visual button remapping, microphone support, and headphone-jack audio.
DS5 Bridge lets you use a real Sony DualSense or DualSense Edge controller wirelessly on a Windows PC through a Raspberry Pi Pico 2 W. The controller pairs to the Pico over Bluetooth, and the Pico plugs into your PC over USB.
The companion app gives you a clean place to adjust audio, haptics, trigger strength, lighting, button remaps, shortcuts, and other controller behavior without reflashing the Pico.
- Download the firmware
.uf2and Windows companion installer from Releases. - With the Pico 2 W unplugged, hold
BOOTSEL, then connect it to your PC. - Copy the
.uf2file onto the Pico drive that appears in Windows. - Put the DualSense controller into Bluetooth pairing mode.
- After the Pico restarts from flashing, wait for the controller to pair.
- Install and open DS5 Bridge to check the connection and adjust your settings.
Once the controller connects to the Pico, Windows sees it as a normal DualSense-compatible USB controller.
- Use a DualSense or DualSense Edge wirelessly through a Pico 2 W.
- Tune audio, haptics, adaptive triggers, and lighting from the Windows app.
- Save controller setups as profiles.
- Remap controller buttons visually.
- See Bluetooth signal quality at a glance.
- Use Host Encoding for smoother controller speaker and headphone-jack audio.
The companion app is where you check the bridge, adjust the controller, and save the setup you actually want to play with.
See the connection, battery, audio route, Bluetooth signal quality, active profile, and the settings most likely to matter during play.
Adjust HD haptics and classic rumble strength, then test the feel before opening a game.
Control the controller speaker, headphone-jack audio, microphone level, and Host Encoding.
Set adaptive trigger strength and try sample effects without leaving the app.
Choose lightbar brightness and color, or let the app manage lighting behavior for you.
Change what each controller button does, then save the remap when you are happy with it.
Manage profiles, mute button behavior, polling rate, and diagnostics.
Set UI scale, startup behavior, power saving, shortcuts, idle disconnect, PC sleep disconnect, and the Pico LED.
- Keep Host Encoding enabled if you use the controller speaker or plug headphones into the controller. Turning it off can cause stuttering or static.
- Headphones through the controller headphone jack work best when DS5 Bridge is open and Host Encoding is enabled.
- If controller audio sounds doubled, distorted, or too loud, restart your PC, reopen DS5 Bridge, and run the speaker test again.
- Battery level may be inaccurate while the controller is charging.
- Raspberry Pi Pico 2 W.
- Sony DualSense or DualSense Edge controller.
- USB cable from the Pico 2 W to the PC.
- Windows for the companion app.
See docs/development.md for local build requirements, firmware build commands, companion app setup, host helper notes, and packaging steps.
| Path | Purpose |
|---|---|
src/main.cpp |
Pico startup, watchdog handling, USB task loop, and HID report bridge. |
src/bt.cpp |
Bluetooth inquiry, pairing, L2CAP HID channels, and report queueing. |
src/audio.cpp |
USB audio ingestion, haptic resampling, Opus speaker encoding, and audio packet assembly. |
src/companion.cpp |
Vendor HID companion protocol, status reports, command ACKs, and runtime setting dispatch. |
src/usb.cpp |
TinyUSB audio control callbacks and runtime settings fallback. |
src/usb_descriptors.c |
USB device, configuration, HID report, audio, and string descriptors. |
companion/ |
Electron companion app source, protocol parser, HID service, assets, and UI. |
companion/native/HostAudioHelper/ |
Windows host audio helper used by the companion app for host encoded audio. |
.github/workflows |
CI and release builds. |
- The bridge presents itself to the host as a standard DualSense-compatible USB controller for compatibility.
- The companion app requires firmware built with the companion HID interface enabled.
- The project controls runtime behavior through the bridge and does not write controller-side profiles.
- Battery level is not reported accurately while the controller is charging.
- During development, Windows may keep stale controller or audio endpoint records after descriptor testing. Use docs/windows-device-cleanup.md only if you run into device or endpoint issues while testing.
This repository is distributed as AGPL-3.0-only. See LICENSE.
This project is derived from awalol/DS5Dongle, which is credited in NOTICE. Third-party submodules and package dependencies retain their own license terms.
DualSense controller overlay artwork is adapted from AL2009man/Gamepad-Asset-Pack and credited in NOTICE.
- awalol/DS5Dongle, the foundation for this project.
- rafaelvaloto/Pico_W-Dualsense for project inspiration.
- egormanga/SAxense for Bluetooth haptics proof-of-concept work.
- Sony DualSense controller documentation for report structure notes.
- Paliverse/DualSenseX for speaker report packet references.
- Alex Smith of The Cynic Project for the speaker test sound, "Crystal Cave"
(
song18).
This project was vibecoded, so the occasional peculiarity may show through. That said, it has been tested and edited with care.








