⚠️ This project is experimental and may not work on all systems, Bluetooth adapters, or DualSense firmware versions.
A C++ | C++/CLI Bluetooth-focused DualSense driver and control panel.
This project communicates directly with a DualSense controller over Bluetooth, reads input reports, sends output reports, controls LEDs, player indicators, mute light, audio/haptics reports, and can emulate an Xbox 360 controller through ViGEmBus.
Some features are already present in the codebase, but they are not fully implemented yet. Coming soon!
| Feature | Status | Notes |
|---|---|---|
| Lightbar RGB | ✔️ | Full control |
| Player Indicator LEDs | ✔️ | Full control |
| Mute Light | ✔️ | On / Off / Breathing |
| Adaptive Triggers | ✔️ | Various modes |
| Haptics / Speaker Audio | Experimental Opus audio support | |
| Touchpad Input | ✖️ | Coming soon! |
| Gyro / Accelerometer | ✖️ | Coming soon! |
| Battery Status | ✖️ | Coming soon! |
| USB Support | ✖️ | Not implemented |
| Xbox 360 Emulation | ✔️ | Through ViGEmBus |
| Windows Forms Control Panel | ✔️ | C++/CLI UI |
- Windows
- Visual Studio with C++/CLI support
- Windows SDK
- ViGEmBus driver installed
- ViGEmClient library
- Opus library
- A DualSense controller connected through Bluetooth
The program connects to a DualSense controller over Bluetooth and exchanges HID reports with it.
Input reports are used to read controller state:
- Buttons
- D-Pad
- Sticks
- Triggers
- Touchpad
- Gyro / accelerometer
- Battery status
Output reports are used to control the controller:
- RGB lightbar
- Player indicator LEDs
- Mute light
- Trigger effects
- Audio / haptics data
https://github.com/nefarius/ViGEmBus https://controllers.fandom.com/wiki/Sony_DualSense/Data_Structures https://github.com/awalol/DS5Dongle