javausbgamepadhid-deviceplaystation4

How to send an output report to a DS4 Controller connected via USB?


I'm having some problems changing the led and rumble on a DS4 controller, the project I'm working on is in Java, currently I can receive de inputData from all the buttons on the controller. But the when I try to send the outputData the code ends with: Process finished with exit code -1073740940 (0xC0000374).

I think the problem is the byte that I'm trying to send the outputData, 0x11(byte 17), in the bluetooth documentation thats the correct byte, but I could not found the USB documentation so I assumed it was the same byte because for the inputData it is.

If anyone can help me by saying the correct byte or if you think the problem is another thing i would be happy to receive any guidance.

(Sorry english is not my mother lenguage, not my father either haha)

I tried to send a outputReport to the DS4 controller, but i failed to do so. I expect the problem is the byte that I'm using 0x11(byte 17). That is the byte for the bluetooth outputReport, but I'm not sure if it is for the USB as well.


Solution

  • DualShock 4 uses different report formats over USB and Bluetooth. USB output report 0x05 is the closest match to Bluetooth output report 0x11 but there are a few differences. Check out dualshock4_output_report_usb and dualshock4_output_report_bt in hid-playstation.c to see how the reports differ.