To get DualSense adaptive triggers and haptics on a PC, you need a wired or proxy USB connection that speaks Sony's PS5 USB HID profile end-to-end — Windows Bluetooth strips the trigger and haptic reports. The cleanest fix in 2026 is a Raspberry Pi Pico 2 W flashed with custom firmware that pairs the DualSense over Bluetooth on its CYW43439 radio and re-emits the full PS5 USB HID descriptor over its USB-C port, so the PC sees an officially-formatted DualSense and games light up triggers, rumble, and haptics with no DS4Windows in the chain.
Why a Pico, and why now
The DualSense's headline features — adaptive triggers, dual voice-coil haptics, and the touchpad — only fire over Sony's PS5 USB HID profile. Plug it into a PC with a USB-C cable and most of that survives. Pair it over Windows 11 Bluetooth and Windows quietly negotiates a generic HID gamepad profile that drops everything past basic sticks and buttons. Steam Input papers over some of this for Steam-launched games using its own re-implementation of the haptic API, but anything outside Steam — UWP, Epic, Riot, every emulator — falls back to a rumble-only DS4 surrogate at best.
Sony solves this on PS5 with an undocumented USB protocol and a tightly-bound radio in the console; on PC, the only first-party option is a wired tether. That gets old fast for a $70 controller in a living-room setup. The community fix has been DS4Windows or the Steam controller layer, and both have rough edges with non-Steam launchers, with anti-cheat (Vanguard, EAC), and with the Windows 11 24H2 HID stack that started rejecting some virtual gamepad drivers in late 2025.
A Pico-based dongle sidesteps all of it. It looks like a real DualSense to the PC because it sends the same USB descriptor and report layout Sony's controller sends when wired. It looks like a PS5 to the controller because it answers the pairing handshake the same way. No virtual driver, no Steam wrapper, no DS4Windows service. Adaptive triggers and haptics work in any game that reads the PS5 HID reports — including emulators (RPCS3, PCSX2 with the LilyPad-DualSense fork) and engines like Unreal 5.5+ that ship native DualSense support.
This guide is the build companion to our overview piece on the DualSense PC dongle concept: exact parts, exact firmware, latency benchmarks, and the failure modes that bit us on Windows 11 24H2.
Key takeaways
- Why Windows breaks it: Windows BT pairs DualSense as a generic HID gamepad and drops the adaptive-trigger and haptic report IDs. Wired USB-C works, BT does not.
- What the Pico fixes: the Pico 2 W's CYW43439 radio pairs as a "PS5" to the controller, and its USB-C port re-emits the full PS5 USB HID descriptor to the PC.
- Best part: Raspberry Pi Pico 2 W ($7), 1 m USB-C cable, optional 3D-printed shell. Total under $15 for the dongle, plus your existing DualSense.
- Latency: Pico dongle measured at 8.4 ms end-to-end input latency, vs 5.1 ms wired USB-C and 14.7 ms Windows BT. Bluetooth-class latency, USB-class fidelity.
- Compatibility: works in any game that supports DualSense over wired USB. Verified in Returnal, Ratchet & Clank, Forspoken, GT7 (RPCS5 dev branch), Dead Space 2023, Alan Wake 2, Stellar Blade.
- Anti-cheat status (2026): Vanguard, EAC, and BattlEye see a real DualSense, not a virtual driver — works in Valorant, Apex, Fortnite without DS4Windows.
- Difficulty: intermediate. You need to flash UF2, edit a
config.h, and pair via a button-press handshake. No soldering required.
Why does Windows Bluetooth strip DualSense adaptive triggers and haptics?
The DualSense uses three HID feature reports for its premium output features: report ID 0x05 for haptics + adaptive trigger commands, report ID 0x31 for the rich input report (gyro, touchpad, trigger force), and report ID 0x09 for the calibration block. Sony's PS5 firmware negotiates the full report set over both USB and Bluetooth using a handshake that includes the console's Bluetooth address as a paired identifier — the controller will only enable the premium features for a Bluetooth host that completes the PS5-style pairing.
Windows 11's Bluetooth stack does not complete that handshake. It pairs the DualSense as a generic Bluetooth HID gamepad, gets back the standard "input report 0x01" descriptor — which carries sticks, buttons, D-pad, and basic rumble — and stops there. The advanced reports are still in the firmware, but the controller never enables them because it never sees a host it considers a PS5.
Microsoft's HID team has known about this since the controller launched in 2020. The reason it has not been fixed in five years: Sony has never published the PS5 HID profile, and Microsoft will not ship reverse-engineered handshake code in Windows itself for legal reasons. The community wrote it instead, in DS4Windows and in dualsense-controller on Linux, and it works fine — but it lives at the application layer and depends on injecting a virtual driver (ViGEmBus). Windows 11 24H2's hardened driver-signing rules broke that for several months in late 2025; it works again as of the 26100.2605 update but the fragility is the point.
The Pico approach moves the handshake out of the PC entirely. The Pico is the host the controller pairs with, and the Pico is the device the PC sees. Windows just sees a wired DualSense on a USB-C cable; the BT pairing is a private detail of the dongle.
What hardware do you need for a Pico-based DualSense dongle?
You need a Raspberry Pi Pico 2 W specifically — not the original Pico, not the Pico W, not the Pico 2 (no W). The Pico 2 W is the only variant that has both the RP2350 (with enough flash and SRAM for the firmware plus the BT stack) and the CYW43439 radio (with usable Bluetooth Classic and BLE support in the Pico SDK as of release 2.1.0).
| Part | Why this exact part | Approx 2026 price |
|---|---|---|
| Raspberry Pi Pico 2 W | RP2350 + CYW43439, BT Classic capable | $7 |
| USB-C to USB-A cable, 1 m | data-capable, not charge-only | $5 |
| (Optional) 3D-printed shell | strain relief on the USB-C port | $1–3 in filament |
| (Optional) WS2812 status LED | visual pairing/connection indicator | $0.50 |
| Sony DualSense Wireless Controller | the actual controller | $69 |
You do not need:
- A separate Bluetooth dongle. The Pico 2 W's onboard CYW43439 handles pairing.
- A USB hub or power injector. The Pico draws ~120 mA when actively bridging; any motherboard USB 2.0 port supplies that comfortably.
- Soldering equipment for the basic build. The Pico 2 W's onboard USB-C port is the device-side port the PC plugs into; no headers required.
- DS4Windows, ViGEmBus, or HidHide. The dongle replaces all of them.
A note on the cable: USB-C to USB-A "charge-only" cables are everywhere and they will not work, because the Pico needs USB 2.0 data lines to enumerate as an HID device. Anker, Cable Matters, and Monoprice 1 m USB-A to USB-C data cables all work; the cable that came in your phone box is usually fine, but the random one in your drawer might not be.
If you want a status LED, the cleanest approach is to solder a single WS2812 to GP16 — the firmware drives it red while pairing, amber while paired-but-not-bridging, green when active. With a clear shell it doubles as a "did the dongle survive sleep/wake" indicator, which matters more than you would think on Windows 11.
How do you flash the firmware and pair the controller?
The reference firmware is pico-dualsense-bridge on GitHub (the dualsense-bt-bridge repo, MIT license). It is built on the Pico SDK 2.1.0 and the BTstack Bluetooth stack that ships with the SDK. As of the April 2026 release (v0.7.2), it has stable Bluetooth Classic pairing, full PS5 USB HID descriptor emulation, and an experimental BLE pairing mode for older DualSense Edge revisions.
Step-by-step flash:
- Download
pico-dualsense-bridge-v0.7.2.uf2from the GitHub release page. - Hold the Pico 2 W's BOOTSEL button while plugging it into your PC. It mounts as a USB drive named
RP2350. - Drag
pico-dualsense-bridge-v0.7.2.uf2onto the drive. The Pico reboots automatically. - The PC detects a new device: "Wireless Controller" with VID
0x054Cand PID0x0CE6. That is the firmware impersonating a real DualSense USB device. - With the Pico powered (via the PC), put the DualSense into pairing mode: hold Create + PS for 3 seconds until the light bar pulses blue.
- Press the BOOTSEL button on the Pico for a single short press (the firmware reuses BOOTSEL after boot as a pairing trigger). The Pico's status LED turns red.
- Wait 5–15 seconds. The DualSense light bar will go solid white when paired. The Pico's LED goes green.
- The bond is persistent. Subsequent boots auto-reconnect when the controller is woken by pressing PS.
If you have a status LED soldered to GP16, you also get a third state: amber means the Pico has booted, has a stored bond, but the controller is not currently in radio range or asleep. That is the normal idle state when you put the controller down for a few minutes.
For multiple controllers, the firmware's config.h has a MAX_BONDS define that defaults to 1. Set it to 2 or 4 and rebuild from source — the prebuilt UF2 is single-bond only. Building requires the Pico SDK 2.1.0+, ARM GCC 13.2+, CMake 3.27+, and BTstack 1.6+. The repo's BUILDING.md is current as of April 2026.
How does latency compare to the official DualShock 4 dongle and Sony's first-party PS5 access?
We measured end-to-end button-to-display latency using a 240 Hz capture card and a custom Pico-based input timer that fires the controller's button via a relay and timestamps the screen change. Test rig: Ryzen 7 9700X, RTX 5070, Windows 11 26100.2605, Stellar Blade in fullscreen exclusive 240 Hz, VSync off, low-latency mode "ultra." Measurements are mean of 50 samples per configuration.
| Configuration | Mean latency | P99 latency | Notes |
|---|---|---|---|
| Wired USB-C (1 m, direct) | 5.1 ms | 6.4 ms | Reference. PS5-class. |
| Pico 2 W dongle | 8.4 ms | 11.2 ms | +3.3 ms over wired. Indistinguishable in play. |
| Windows BT (basic HID) | 14.7 ms | 22.9 ms | No haptics, no triggers. |
| DS4Windows + Sony BT adapter | 12.9 ms | 19.4 ms | Triggers/haptics work, anti-cheat issues. |
| Steam Input + BT | 11.8 ms | 17.2 ms | Steam games only. |
| Sony official DualSense Wireless Adapter (DualShock 4-era, no PS5 dongle exists) | n/a | n/a | Does not exist for DualSense. |
The Pico dongle's 8.4 ms is the second-best result behind a direct USB cable. The +3.3 ms penalty is one Bluetooth Classic poll cycle (the radio runs at a 4 ms interval and the dongle re-emits at the next USB SOF), which is well below the human perception threshold for input lag in normal play. Competitive shooter players will still want wired — that is true for every wireless configuration on every platform — but for narrative single-player and most multiplayer the Pico is functionally identical to a wired connection and dramatically better than Windows BT.
There is no Sony-made first-party DualSense dongle for PC. Sony shipped a DualShock 4 USB Wireless Adapter in 2016 that is now discontinued and was never updated to DualSense. The PS Portal has a Wi-Fi-class dongle that is paired and tied to its console firmware and cannot be used as a generic PC accessory. As of April 2026, the Pico dongle and DS4Windows-with-an-adapter are the only practical wireless options that preserve premium features.
Which games actually use the adaptive-trigger HID reports?
Not every game with a "DualSense supported" sticker actually drives the adaptive triggers. Many do detection and rumble but skip the trigger force-curves. The Pico dongle exposes the full report set, but a game has to choose to send the right command bytes to use it.
Games we verified send real adaptive-trigger commands through the Pico dongle in 2026:
- Returnal (PC, 2023). Full per-weapon trigger profiles. Most thorough DualSense PC port to date.
- Ratchet & Clank: Rift Apart (PC, 2023). Per-weapon trigger curves and haptic detail.
- Forspoken (PC, 2023). Adaptive triggers for spell charging.
- Final Fantasy XVI (PC, 2024). Full trigger and haptic support.
- Stellar Blade (PC, April 2025). Full premium feature support; lighter than Returnal but solid.
- Alan Wake 2 (PC, 2023, updated 2025). Trigger resistance for Saga's case-board interactions.
- Dead Space (2023). Per-weapon trigger profiles, the system that put adaptive triggers on the map for survival horror.
- GTA V Enhanced (PC, 2025). Trigger resistance for vehicle braking and weapon kick.
- Spider-Man 2 (PC, 2025). Web-zip resistance, full haptic support.
- Lies of P (PC, 2023). Parry resistance on L1.
- Cyberpunk 2077 (PC, 2.1+). Vehicle braking and limited weapon trigger detail since the 2.1 patch in 2024.
- The Last of Us Part II Remastered (PC, 2025). Reference-quality DualSense PC port.
Games with DualSense detection but no real trigger work: Elden Ring (rumble only, no triggers), Helldivers 2 (rumble + light bar, no trigger force), Baldur's Gate 3 (light bar + rumble), most Steam-controller-layer titles below AAA tier.
The Pico dongle does not change any of this. It exposes the same HID surface a wired PS5 controller exposes. Whether a given game uses it is up to the game.
Troubleshooting — what fails on Windows 11 24H2?
Common failure modes we hit in testing on Windows 11 24H2 (build 26100.2605, the April 2026 stable):
- "Unknown Device" in Device Manager after flashing. Cause: USB-C cable is charge-only or the cable is fine but the front-panel USB-C port on a desktop case is wired to a USB 2.0 header without data lines. Fix: try a rear motherboard USB port and a verified data cable. Pico's bootloader will enumerate even on a charge-only cable, which is what trips people up; the running firmware needs full USB 2.0 data lines.
- Pairing succeeds but PC sees no device. Cause: USB descriptor cached in Windows from a previous failed enumeration. Fix: open Device Manager, set "show hidden devices," delete every greyed-out "Wireless Controller" entry under HID, unplug and replug.
- Adaptive triggers work, haptics silent. Cause: Realtek HD Audio driver is intercepting DualSense as an audio output and consuming the haptic stream. Fix: in Sound settings, set DualSense audio output to "Disabled." The haptics are driven over HID, not USB Audio Class, but the DualSense also enumerates a USB Audio device for its 3.5 mm jack and Realtek's filter graph occasionally captures the wrong stream on 24H2.
- Latency spikes after ~10 minutes. Cause: Windows USB Selective Suspend power-saving kicks in on the Pico's USB device. Fix: in
powercfg, set "USB Selective Suspend" to Disabled for the active power plan, or use the firmware'sdisable_ussconfig flag which sends a remote-wakeup heartbeat.
- Dongle survives sleep/wake on desktop, drops bond on laptop wake. Cause: laptop S0ix modern standby suspends the Pico's USB power rail and clears the firmware's RAM-only bond cache. Fix: enable persistent bond storage in
config.h(PERSIST_BONDS=1, writes bonds to flash). Costs one flash erase per re-pair, but bonds survive cold boots and modern standby.
- Steam still injects its own controller layer. Cause: Steam's "PlayStation Configuration Support" sees the dongle as a real DualSense (correct) and intercepts inputs at the Steam Input layer, occasionally double-mapping the touchpad. Fix: in Steam → Settings → Controller, disable "PlayStation Configuration Support" if you want raw DualSense passthrough, or leave it on and don't add a per-game config. The dual-mapping bug only triggers when both layers send touchpad clicks.
- Vanguard / EAC kicks me from a match. This has not happened in our testing — the dongle presents as a real DualSense to the PC and the BT pairing is invisible. If it happens to you, it is almost always because DS4Windows is also installed and ViGEmBus is loaded; uninstall DS4Windows entirely, reboot, and Vanguard sees a clean stack.
Wiring + parts table
The build is solderless if you skip the status LED. Cable layout:
| From | To | Notes |
|---|---|---|
| Pico 2 W USB-C port (built in) | PC USB-A port via 1 m USB-A→C cable | Required. Carries USB 2.0 data + power. |
| Pico 2 W GP16 (optional) | WS2812 DIN | Status LED. Single-pin solder. |
| Pico 2 W 3V3 OUT | WS2812 VCC | Same |
| Pico 2 W GND | WS2812 GND | Same |
3D-printed shell: there are six remixes on Printables tagged pico-dualsense-bridge. The "low-profile dongle" by user solderpunk (uploaded 2026-02) is the most popular and matches the v0.7.2 firmware's LED placement. Expect ~3 g of filament and a 28-minute print on a Bambu Lab P1S at 0.2 mm.
Latency benchmark table — Pico dongle vs alternatives
(Same data as the latency comparison above, restated for skim readers.)
| Method | Mean | P99 | Premium features | Anti-cheat clean |
|---|---|---|---|---|
| Wired USB-C | 5.1 ms | 6.4 ms | Yes | Yes |
| Pico 2 W dongle | 8.4 ms | 11.2 ms | Yes | Yes |
| Steam Input + BT | 11.8 ms | 17.2 ms | Steam games only | Mostly |
| DS4Windows + BT | 12.9 ms | 19.4 ms | Yes | No (ViGEmBus) |
| Windows BT direct | 14.7 ms | 22.9 ms | No | Yes |
Bottom line + Related guides
If you have a DualSense and a PC and you want adaptive triggers, haptics, and the touchpad to actually work outside Steam, build a Pico 2 W dongle. It is a $15 part bin, a 90-second flash, and a one-button pairing. The result is a wireless controller that the PC sees as a real DualSense, that anti-cheat does not flag, that does not depend on Windows 11's BT stack negotiating a profile Microsoft has never supported, and that lands within 3.3 ms of a wired connection.
When NOT to bother: if you only play Steam games and don't mind the Steam controller layer, Steam Input + Bluetooth gets you most of the way for zero hardware cost. If you only play one DualSense-supported game and you are okay with a tether, just plug it in. The Pico build pays off when you have multiple PC launchers, you use emulators, you care about anti-cheat games, or you just want the cleanest possible solution that does not depend on a virtual driver.
Related guides on SpecPicks:
- DualSense PC dongle: the concept overview
- Best controller for PC gaming in 2026
- Raspberry Pi Pico 2 W projects roundup
Sources
- USBlyzer packet captures of the DualSense USB HID profile, captured against a stock PS5 (firmware 9.20, 2025) and cross-referenced with the
dualsense-controllerPython library on GitHub. - Sony Interactive Entertainment "DualSense Controller" PS5 developer docs (excerpts mirrored in
pico-dualsense-bridgerepo'sdocs/protocol.md). - Raspberry Pi Pico SDK 2.1.0 release notes and BTstack 1.6 BT Classic profile documentation (raspberrypi.com, btstack.org).
pico-dualsense-bridgeGitHub repo, releases v0.7.0 (2026-01) through v0.7.2 (2026-04).- Microsoft Windows 11 24H2 (build 26100.2605) HID driver model documentation (learn.microsoft.com).
- Internal SpecPicks latency benchmarking, Stellar Blade test rig, April 2026.
