User Tools

Site Tools


Getting the PS3 Dual Shock controller working with Raspberry Pi

Note that some Bluetooth dongles don't work properly with these drivers. I'm using a cheap CSR-chip-based dongle. Info from .

  • Update the Raspberry Pi:
    $ sudo apt-get update; sudo apt-get upgrade
  • Install Bluetooth:
    $ sudo apt-get install bluez-utils bluez-compat bluez-hcidump checkinstall libusb-dev libbluetooth-dev joystick
  • Check dongle:
    $ hciconfig
    hci0:   Type: BR/EDR  Bus: USB
            BD Address: 00:15:83:CE:A5:7C  ACL MTU: 310:10  SCO MTU: 64:8
            UP RUNNING PSCAN 
            RX bytes:1489 acl:0 sco:0 events:74 errors:0
            TX bytes:1276 acl:0 sco:0 commands:73 errors:0
  • Download and compile controller. See .
    $ mkdir sixaxis ; cd sixaxis ; wget ; gcc -o sixpair sixpair.c -lusb
  • Plug in the PS3 controller through a USB mini-B cable. Raspberry Pis with not so many ports may need to use a USB hub.
  • Run the sixpair program.
    $ sudo ./sixpair
    Current Bluetooth master: 78:dd:08:11:3c:9c
    Setting master bd_addr to 00:15:83:ce:a5:7c
  • Download and compile the SixAxis joystick manager. During the checkinstall process just accept the defaults. Manager reference: Manager manual:
    $ wget
    $ tar -xzvf QtSixA-1.5.1-src.tar.gz
    $ cd QtSixA-1.5.1/sixad
    $ make
    $ sudo mkdir -p /var/lib/sixad/profiles
    $ sudo checkinstall
  • Unplug the SixAxis controller
  • Manually pair.
    $sudo sixad --start
    sixad-bin[6851]: started
    sixad-bin[6851]: sixad started, press the PS button now
    sixad-bin[6851]: unable to connect to sdp session
    sixad-bin[6851]: Connected Sony Computer Entertainment Wireless Controller (04:76:6E:4C:06:F8)
  • Set to run at bootup.
    $ sudo update-rc.d sixad defaults
    $ sudo reboot
  • Test the controller. You should see the values change as you move the joysticks.
    $ sudo jstest /dev/input/js0
designs/interfacing/pi/ps3controller.txt · Last modified: 2015/04/29 20:21 by raymondsheh