Join Us and become a Member for a Verified Badge to access private areas with the latest PS4 PKGs.
Not open for further replies.
Recently StanfordRoboticsClub shared on Github a collection of methods using a DualShock 4 PS4 Controller with UDPComms, which is a Python library to enable communication between different processes over a network using UDP (User Datagram Protocol) for developers. :geek:

Download: / GIT

According to the it currently works in Python, but should be relatively simple to extend to C to run on embedded devices like Arduino.


The library also comes with the rover command that can be used to interact with the messages manually.

Command Description
rover peek port print messages sent on port port
rover poke port rate send messages to port once every rate milliseconds. Type message in json format and press return
There are more commands used for starting and stopping services described in THIS repo.

Known issues:

Macs have issues sending large messages. They are fine receiving them. I think it is related to THIS issue. I wonder does it work on Linux by chance (as the packets happen to be in order) but so far we didn't have issues.
this set of files should produce the necessary keys for the GP2040-CE PS4 Mode. You can quickly find it via google search but i've decided to put it here for you to use. This will make the device be able to skip 8 minute timeout
  • (789.79 KB - includes ds4sig.bin,,, jedi_flash-Aug_3_2013.bin, jedi_flash, Aug_3_2013.idc, and ps4nonce.bin via GodzIvan)
emulating ps4 controller without 8 minute timeout

From the included
# ds4
Tools for working with DualShock 4

With fw of controller, it is possible to do interesting things like:
 * flash custom fw to controller
 * learn how all aspects of controller works
 * implement native pairing on other host devices
 * present custom hardware as "official" DS4 to PS4

- GodzIvan -

Working ????
JoystickUDP Collection of Methods Using a PS4 Controller with UDPComms.jpg


Not open for further replies.