All Projects → ViGEm → Bthps3

ViGEm / Bthps3

Licence: bsd-3-clause
Windows kernel-mode Bluetooth Profile & Filter Drivers for PS3 peripherals

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Bthps3

BetterJoyForDolphin
Allows the Nintendo Switch Pro Controller and Joycons to be used with the Dolphin Emulator
Stars: ✭ 44 (-53.19%)
Mutual labels:  driver, bluetooth
Betterjoy
Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput
Stars: ✭ 1,352 (+1338.3%)
Mutual labels:  driver, bluetooth
Shibari
Gaming input peripherals test platform for Windows
Stars: ✭ 136 (+44.68%)
Mutual labels:  driver, bluetooth
fix-linux-mouse
Hints how to fix USB mouse issues on Linux
Stars: ✭ 36 (-61.7%)
Mutual labels:  driver, bluetooth
SimpleBLE
The ultimate fully-fledged cross-platform BLE library, designed for simplicity and ease of use.
Stars: ✭ 122 (+29.79%)
Mutual labels:  driver, bluetooth
Rtl8723bs
Realtek SDIO Wi-Fi driver
Stars: ✭ 260 (+176.6%)
Mutual labels:  driver, bluetooth
nativeble
A fully-fledged cross-platform BLE library for desktop.
Stars: ✭ 15 (-84.04%)
Mutual labels:  driver, bluetooth
Mac Precision Touchpad
Windows Precision Touchpad Driver Implementation for Apple MacBook / Magic Trackpad
Stars: ✭ 5,107 (+5332.98%)
Mutual labels:  driver, bluetooth
Web Bluetooth Parrot Drone
Control a Parrot Mini Drone from your web browser using Web Bluetooth
Stars: ✭ 87 (-7.45%)
Mutual labels:  bluetooth
Ble Midi For Android
MIDI over Bluetooth LE driver for Android 4.3 or later
Stars: ✭ 90 (-4.26%)
Mutual labels:  bluetooth
Classicbluetooth
Android经典蓝牙工具类(cbt)------开关蓝牙、扫描蓝牙设备、连接配对、发送数据、接收数据、获取已配对设备
Stars: ✭ 87 (-7.45%)
Mutual labels:  bluetooth
Blueswift
Swift framework for easy connection with Bluetooth peripherals.
Stars: ✭ 88 (-6.38%)
Mutual labels:  bluetooth
Konashi Ios Sdk
konashi iOS SDK
Stars: ✭ 90 (-4.26%)
Mutual labels:  bluetooth
Btle Sniffer
Passively scan for Bluetooth Low Energy devices and attempt to fingerprint them
Stars: ✭ 87 (-7.45%)
Mutual labels:  bluetooth
Broadcom Wl
Broadcom Linux hybrid wireless driver (64-bit)
Stars: ✭ 92 (-2.13%)
Mutual labels:  driver
Spike Prime
Experiments with the LEGO Mindstorms (51515) and SPIKE Prime (45678)
Stars: ✭ 85 (-9.57%)
Mutual labels:  bluetooth
Lv drivers
TFT and touch pad drivers for LVGL embedded GUI library
Stars: ✭ 84 (-10.64%)
Mutual labels:  driver
Bose qc35 Ubuntu
Pair Bose QuietComfort 35 with Ubuntu over Bluetooth
Stars: ✭ 92 (-2.13%)
Mutual labels:  bluetooth
Sick scan
sick_scan is an open-source project to support the laser scanner of the company SICK using the ROS-framework
Stars: ✭ 92 (-2.13%)
Mutual labels:  driver
Pixelbot
Stars: ✭ 90 (-4.26%)
Mutual labels:  bluetooth

BthPS3

Windows kernel-mode Bluetooth Profile & Filter Drivers for PS3 peripherals.

Build status GitHub All Releases Discord Website GitHub followers Twitter Follow

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 enhances 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 causing the PS3 peripherals connections to get denied on the default Windows stack. The profile driver attempts to distinguish the 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 like a HID-minidriver) and "raw" mode (powering the PDO up without a function driver and exposing it to user-land) for maximum flexibility and future-proofing. The PSM filter only attaches to Bluetooth class devices and unloads itself if the underlying enumerator isn't USB.

The solution consists of the following individual projects:

  • BthPS3 - Multi-purpose kernel-mode driver. Function driver for service PDO exposed by BTHENUM (Microsoft), Bluetooth profile (L2CAP server service) and bus driver for PS3 wireless peripherals.
  • BthPS3PSM - Lower filter driver for BTHUSB, patching L2CAP packets. Required for profile driver to receive L2CAP traffic.
  • BthPS3Util - User-land command-line utility for managing driver installation tasks and configuration changes.
  • BthPS3CfgUI - User-land GUI utility to safely edit driver settings.
  • BthPS3SetupHelper - Library hosting utility functions for driver management.
  • BthPS3CA - Custom Actions for WiX-based setup.
  • BthPS3Setup - WiX-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
  • Setup (WiX project and assets) - BSD-3-Clause
  • User-land utilities (BthPS3Util.exe, BthPS3CfgUI.exe) - MIT

For details, please consult the individual LICENSE files.

Environment

BthPS3 components (drivers, utilities) are developed, designed and tested for Windows 7 SP1 or newer (x86, x64).

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 equals Bluetooth 2.0 + EDR) and higher. Anything lower than that is not advised and not supported. Check your particular chip firmware version in Device Manager prior to installing the drivers:

MB0xeRakoP.png

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

P37N2cgWdG.png

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

How to build

Prerequisites

You can build individual projects of the solution within Visual Studio.

Documentation

Take a look at the project page for more information.

Device tree

Below representation attempts to visualize the relationships between the drivers and devices involved (near host hardware on the bottom, towards exposed child devices on top):

     +----------------------+                                +----------------------+
     |    Navigation PDO    +<----------+         +--------->+      Motion PDO      |
     +----------------------+           |         |          +----------------------+
                                        |         |
                                        |         |
                                        |         |
                                        |         |
                                        |         |
+----------------------+          +-----+---------+------+         +----------------------+
|      SIXAXIS PDO     +<---------+ Profile & Bus Driver +-------->+     Wireless PDO     |
+----------------------+          |     (BthPS3.sys)     |         +----------------------+
                                  +----------+-----------+
                                             ^
                                             |
                                             v
                                  +----------+-----------+
                                  | Bluetooth Enumerator |
                                  |    (bthenum.sys)     |
                                  +----------+-----------+
                                             ^
                                             |
                                             v
                                  +----------+-----------+
                                  |     bthport.sys      |
                                  +----------+-----------+
                                             ^
                                             |
                                             v
                                  +----------+-----------+
                                  |      bthusb.sys      |
                                  +----------+-----------+
                                             ^
                                             |
                                             v
                                  +----------+-----------+
                                  | BthPS3PSM.sys filter |
                                  +----------+-----------+
                                             ^
                                             |
                                             v
                                  +----------+-----------+
                                  |       USB Stack      |
                                  +----------+-----------+
                                             ^
                                             |
                                             v
                                  +----------+-----------+
                                  | USB Bluetooth dongle |
                                  +----------------------+

Installation

Pre-built binaries and instructions are provided by Nefarius Software Solutions e.U. and available as an all-in-one setup (note: officially supports Windows 10 only).

Support

If facing issues please search on the forums first for similar cases and possible solutions.

Contributing

This project was birthed out of curiosity and the drive to learn more about Bluetooth drivers for Microsoft Windows (and a lingering love for the DualShock 3). If it brought you joy please consider checking out the Sponsor-Button on top and toss a coin to your Developer, O' Valley of Gamers 😃

Sources & 3rd party credits

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].