chrippa / ds4drv

A Sony DualShock 4 userspace driver for Linux
MIT License
1.05k stars 213 forks source link

PS4 controller randomly stops sending packets, stays connected #198

Open codicusmaximus opened 2 years ago

codicusmaximus commented 2 years ago

I have had this issue ever since I first set up ds4drv over a year ago. It has been the same behavior with different Raspberry Pis as well.

The controller connects and works perfectly, but after anywhere between 10 minutes and 4 hours the controller stops sending button updates yet remains connected (LED stays on the same, bluetooth device shows on the list as connected, etc.). I need to hold the PS button for 10+ seconds to force the controller off and then turn it back on again to resolve the issue.

I finally got tired of this behavior and I'm trying to get to the bottom of it, so I did a bluetooth packet capture

In the screenshot, look at the Time column (second column). You can see the updates flowing (88 byte length packets) and then a 23 second gap. This is the controller updates stopping to flow, and then me turning the controller off and then back on again. There are no other suspicious bluetooth packets that I can see that would cause the controller to stop sending packets. Does the PS4 controller need an occasional poke every few minutes/seconds to keep sending the updates or does it just transmit forever? Why would it just all of a sudden stop sending the updates?

Wireshark_vucie4EsFN

andreaskargakos commented 1 year ago

Hi @codicusmaximus, I am facing the very same issue. Did you manage to resolve it? I am trying to reconnect to the controller via bluetoothctl as a workaround, but it fails since the device shuts down after disconnect.