How can I use unlicensed controllers on the PS4?
Given that I use a PS4 and already have a few controllers that I want to use with the PS4 instead of buying almost the same controller licensed for the PS4 or void warranties of controllers, what options do I have?
Disclosure, I'm not the author of this software, just a user with the problem in the question who prefers FOSS software.
Use GIMX over Bluetooth with the Playstation 4
In this example you use a desktop, laptop or Raspberry Pi running Linux to which you connect the controllers and input devices you want to use plus a Dualshock 4 (DS4) controller. The DS4 in this setup is required for authentication and will get polled periodically by the Playstation 4 (PS4), so it needs to stay connected this way. While you can still use the DS4, I do recommend a spare DS4. All input and authentication data is sent from the computer to the console via Bluetooth. The adapter you are going to build from a Teensy board in the next section is required for the initial pairing process of a new controller to the PS4. Basically the adapter is a man in the middle between the DS4 controller and the PS4 during the initial connection setup.
More information is available on the blog, the FAQ, the forum and the wiki.
Hardware requirements and cost
The required Teensy 2.0 USB development board costs about $16. I bought mine from an online store in Germany for about 22€ with shipping included.
Depending on the reliability of your existing Bluetooth solution you may need to buy a Bluetooth dongle with a certain chip, prices range from $5 to $15. A USB to serial TTL converter for the complete DIY adatper isn't needed in this example, but since these are cheap you might want to get one too.
You can find suggestions for other hardware components to build your DIY adapter, but the Teensy 2.0 is recommended. Don't buy a Teensy with another version number like Teensy 3.0, that is a different chip which is not supported.
GIMX supported consoles and controllers
As far as I am aware Xbox, Xbox 360, Xbox One, Playstation 3 and Playstation 4 are currently supported.
It doesn't matter if the input devices are connected to the computer via USB, Bluetooth or something else. You can use every controller or device that is detected by the host operating system – Linux in this case – as an input device and you can map buttons and functionality as you like.
Playstation 4 force feedback wheel support functionality that currently needs funding.
Installation and instructions for pairing the DS4
On Ubuntu download and install the Debian package for your platform. You should also install the gksu
package, otherwise you might get the "Can't restart bluetoothd" error message.
In this example we only need the EMUPS4PAIRING firmware and the Teensy Loader to flash it. You can download the other firmwares here. Extract contents of the individual zip files after download.
Pairing the DS4
Note that pairing does not need to be performed every time. If you use a dedicated DS4 regularly it ideally needs to be done only once. After that you can put the Teensy somewhere safe until you need it.
- Flash the Teensy board with the firmware
- Be sure that you have followed the instructions to install
49-teensy.rules
and gave the binary proper permissions, otherwise you would need to usegksu
. - Start the Teensy Loader, select the firmware (
atmega32u4.hex
), connect the Teensy, enable automatic mode and push the button on the Teensy board. You can disconnect the Teensy after the flashing succeeded.
- Be sure that you have followed the instructions to install
- Create a new connection
- Start the GIMX launcher, select
Bluetooth/PS4
for output and click the new button to create a new pairing connection. - In the next window select the Bluetooth dongle you want to use.
- Now connect the DS4 you want to use to your computer with a USB cable and confirm the dialogue box. Select the DS4 in the next window, then disconnect it.
- Connect the Teensy to your computer and confirm the dialogue box.
- Connect the Teensy to the PS4, wait a few seconds and connect the Teensy with your computer again.
- Start the GIMX launcher, select
Troubleshooting: Remove devices in the Bluetooth menu of the PS4 when the DS4 connects directly to the PS4 instead of GIMX.
Video demonstration
I cramped a test setup onto my desk and made a video demonstrating paring and usage for GIMX version 3.5, it's only about 2:30 minutes long.
Don't be confused about the red button on the fightstick not working as expected in the video, it was swapped with another button in my custom configuration.
Using GIMX with the PS4
Controller configuration
- You can download configurations from within GIMX, search the forum for a particular configuration or create your own, which is nothing more than detecting an event on the controller device and assigning an action.
- Note that triggers L2/R2 on Playstation and LT/RT on Xbox are axis events, even if these are just buttons on your controller.
- You can ignore everything about mouse calibration if you do not want to setup a mouse.
- You can include multiple devices in your configuration, but they must all be connected when you start the connection, GIMX will warn you about devices that are not connected.
Start the connection
- Open GIMX launcher if you haven't and select the appropriate parameters.
- Output:
Bluetooth/PS4
- Pairing: the one you just created
- Input:
Physical devices
- Config: the one you want to use
- Output:
- Click the Start button.
- Push the PS button on the DS4 you paired.
Press Shift+Esc on the keyboard to end the connection.
You may need to restart your bluetooth service for normal desktop operation, example on Ubuntu: sudo service bluetooth restart
Datel fightsticks are compatible with PS4, sort of. You can use them in-game on Ultra Street Fighter 4 for example, however you cannot navigate the menu outside the game app using the fightstick.
The same goes for MadCatz Fightsticks.