Setting up Sixaxis Controller (Android) with Ubuntu

Before reading this article I am assuming you already have .
If you do not, you can test if sixaxis works on your device by downloading their .

Once you have one of these apps and you are up to pairing the controller, you have to connect it to your computer to change the Bluetooth address the controller points to. You could find a windows computer and do it on that, but if Ubuntu is your primary computer and you want to use Ubuntu you can simply follow this guide.

1. Make sure your computer has libusb installed by running the following command in a terminal window:

sudo apt-get install libusb-dev libusb-0.1-4

2. Download , a utility to change the Bluetooth address of your controller. Save the page to somewhere you can easily navigate to in your terminal, if you don't know how to navigate in your terminal just save it to your home directory.

3. Go back to your terminal window and make sure you are in the directory you saved the file to (skip this if you saved it to your home directory)

4. Now run the following command to compile the sixpair file into an executable program:

gcc -o sixpair sixpair.c -lusb

5. Now open the app on the phone and look for the local Bluetooth address which should read as "XX:XX:XX:XX:XX:XX", keep that screen up as you follow the next step.

6. Sixpair by default when run changes the bluetooth address to be the computer's bluetooth address. This is not what we want, we want it to be the phone's (or tablet's) Bluetooth address. To do this we need to pass the address as a parameter to the program as follows (remember to have the device plugged in over usb before running the following command):

sudo ./sixpair "XX:XX:XX:XX:XX:XX"

But replace the XX:XX:XX:XX:XX:XX with your devices local Bluetooth address.
Here is a screenshot of a successful change of a controllers Bluetooth address where my phone's address was "6c:83:36:da:e1:2a":

7. Unplug your controller and make sure the driver is running on your phone by clicking the "start" button within Sixaxis. Once both of these have been done, press the PS button on your controller and you should see on your phone something like "Client 1 connected [Battery status: X]".

8. You can now set-up some touch profiles (via: Menu Key->Preferences) to start playing phone games with your controller!

sixpair.c