BthPS3
Windows kernel-mode Bluetooth Profile & Filter Drivers for PS3 peripherals
Install / Use
/learn @nefarius/BthPS3README
<img src="icon.png" align="left" />BthPS3
Windows kernel‑mode Bluetooth profile and filter drivers for PS3 peripherals.
Quick start
For end users who just want to use their PS3 controllers on Windows.
- Check requirements
- OS: Windows 10 or 11, x64 or ARM64 (see Environment).
- Bluetooth adapter: must meet the LMP version requirements (see Supported Bluetooth host devices in Environment).
- Controller: PlayStation(R) 3 peripherals (SIXAXIS/DualShock 3, PS Move Navigation & Motion Controllers).
- Download the installer
- Go to the latest release page.
- Download the current BthPS3 installer (
.msi).
- Install the drivers
- Close any applications using your Bluetooth adapter or controller.
- Run the downloaded installer as an administrator and follow the on‑screen instructions.
- Reboot Windows when prompted.
- Pair your controller (via companion tools, not Windows UI)
- Do not use the built‑in Windows Bluetooth pairing dialog for PS3 controllers; it will not work correctly and can interfere with proper operation.
- Use supported companion tools (such as DsHidMini) and follow the pairing instructions in the project documentation.
- Ensure the controller is first connected via USB if required, then let the companion tool handle Bluetooth pairing as described.
- Verify operation
If you run into issues, carefully read the documentation and FAQ before opening a GitHub issue.
Pronunciation
/biː θriː/
About
TL;DR: these drivers allow popular PlayStation(R) 3 gaming peripherals (SIXAXIS/DualShock 3, PS Move Navigation & Motion Controllers) to connect to Windows via Bluetooth without losing any standard functionality.
This set of Windows kernel‑mode drivers extends the standard (a.k.a. vanilla) Bluetooth stack (Microsoft/Broadcom/Toshiba/Intel/...) with an additional L2CAP server service (profile driver) and a USB lower‑filter driver, gracefully working around the reserved PSMs issue that causes PS3 peripheral connections to be denied on the default Windows stack. The profile driver attempts to distinguish incoming device types based on their reported remote names and exposes their HID Control and HID Interrupt channels via simple bus child devices (a.k.a. PDOs). The profile/bus driver supports both “regular” operation modes (requiring a proper function driver such as a HID minidriver) and “raw” mode (powering the PDO up without a function driver and exposing it to userland) for maximum flexibility and future‑proofing. The PSM filter attaches only to Bluetooth‑class devices and unloads itself if the underlying enumerator is not USB.
The solution consists of the following individual projects:
BthPS3– multipurpose kernel‑mode driver: function driver for service PDO exposed byBTHENUM(Microsoft), Bluetooth profile (L2CAP server service), and bus driver for PS3 wireless peripherals.BthPS3PSM– lower‑filter driver forBTHUSB, patching L2CAP packets and rerouting L2CAP traffic to the profile driver.BthPS3CfgUI– userland GUI utility to safely edit driver settings.BthPS3Util– userland CLI utility to modify filter‑driver settings.BthPS3Installer– WiXSharp-based setup for driver installation and removal.
Licensing
This solution contains BSD‑3‑Clause and MIT licensed components:
- Drivers (
BthPS3.sys,BthPS3PSM.sys) – BSD‑3‑Clause - Installer/Setup (WiXSharp project and assets) – BSD‑3‑Clause
- Userland utilities (
BthPS3CfgUI.exe) – MIT
For details, please consult the individual LICENSE files.
This is a community project and is not affiliated with Sony Interactive Entertainment Inc. in any way. “PlayStation”, “PSP”, “PS2”, “PS one”, “DUALSHOCK” and “SIXAXIS” are registered trademarks of Sony Interactive Entertainment Inc.
Environment
BthPS3 components can run on Windows 10 version 1507 or newer (x64, ARM64).
<details> <summary>Supported Bluetooth host devices</summary>Supported Bluetooth host devices
The BthPS3 profile driver and supported devices have been tested successfully with host devices following Link Manager Protocol (LMP) core specification version 3 (which corresponds to Bluetooth 2.0 + EDR) and higher. Anything lower than that is not recommended and is not supported. Check your particular chip firmware version in Device Manager prior to installing the drivers:

When loaded onto an unsupported host radio, device boot will fail with STATUS_DEVICE_POWER_FAILURE:

For a list of tested devices, consult the extended documentation.
Link Manager versions
| LMP | Bluetooth version | | --- | ------------------- | | 0 | Bluetooth 1.0b | | 1 | Bluetooth 1.1 | | 2 | Bluetooth 1.2 | | 3 | Bluetooth 2.0 + EDR | | 4 | Bluetooth 2.1 + EDR | | 5 | Bluetooth 3.0 + HS | | 6 | Bluetooth 4.0 | | 7 | Bluetooth 4.1 | | 8 | Bluetooth 4.2 | | 9 | Bluetooth 5 | | 10 | Bluetooth 5.1 | | 11 | Bluetooth 5.2 |
</details>Installation
Prebuilt binaries and installation instructions are provided by Nefarius Software Solutions e.U. and are available via the setup. Official support covers Windows 10/11 x64/ARM64 only; issues filed for any other version or architecture will be discarded.
Check out the companion solution DsHidMini for using the controller in games.
How to build
Knowledge of how to build and (test-)sign Windows drivers is required for creating usable builds. This is outside the scope of the project documentation.
<details> <summary>Build instructions and details</summary>Prerequisites
- Step 1: Install Visual Studio 2022
- On the
Workloadstab underDesktop & Mobile, select at least.NET desktop developmentandDesktop development with C++.

- On the
Individual componentstab, search for and select theSpectre-mitigate libs (Latest)for all architectures you wish to build for.

- On the
- Step 2: Install Windows 11, version 22H2 SDK
- Step 3: Install Windows 11, version 22H2 WDK
- Step 4: Install the WiX Toolset v3.14.0.6526 (or newer)
- Step 5: Set up and build Microsoft DMF
- Step 6: Set up and build Domito
You can build individual projects of the solution within Visual Studio.
Branches
The project uses the following branch strategy:
master– stable code base, in sync with tagged public releasesdevel– work‑in‑progress changes, mostly larger changes spanning a couple of PRs
Build artifacts
Tagged CI builds are mirrored to the buildbot web server; use at your own risk, no support provided.
</details>Support & documentation
Everything you need to know is documented on the project page. Please read it carefully before considering filing an issue.
Not being able to connect your controller is not a bug report. Read the FAQ and accept what is written there.
<details> <summary>Architecture overview</summary>Device tree
The diagram below visualizes the relationships between the drivers and devices involved (host hardware at the bottom, exposed child devices towards the top):
+----------------------+ +----------------------+
| Navigation PDO +<----------+ +--------->+ M
