Sony Sixaxis Controller does not work over bluetooth

Bug #124743 reported by Francisco Athens
250
This bug affects 53 people
Affects Status Importance Assigned to Milestone
Ubuntu PS3 Port
New
Undecided
Unassigned
bluez (Ubuntu)
Invalid
Wishlist
Unassigned

Bug Description

Sixaxis controller has limited functionality as a USB device (no motion sensor axis support) but is not able to pair and be recognized from Feisty install. External tools are needed to allow it to pair, but kernel support may also be required.

Please see:
http://ubuntuforums.org/showthread.php?p=2983423#post2983423

tools and patch available here:
http://www.pabr.org/sixlinux/sixlinux.en.html

Bluetooth packet log from attempt on OS X:
http://mt.creativepony.com/drop-box/PacketLogger%20Sixaxis%20Bluetooth.pklg.zip

description: updated
Revision history for this message
Dennis Dirdjaja (dcd-ditsch) wrote :

Yes, I can confirm that.

Revision history for this message
Brian Murray (brian-murray) wrote :

Thank you for taking the time to report this bug and helping to make Ubuntu better. The issue that you reported is one that should be reproducable with the live environment of the Desktop CD of the development release - Gutsy Gibbon. It would help us greatly if you could test with it so we can work on getting it fixed in the actively developed kernel. You can find out more about the development release at http://www.ubuntu.com/testing/ . Thanks again and we appreciate your help.

Changed in linux-source-2.6.20:
assignee: nobody → brian-murray
status: Confirmed → Incomplete
Revision history for this message
dobey (dobey) wrote :

In my attempt to get the SIXAXIS working, I've been unable to do so. However, I've discovered that the kernel does appear to have the necessary patches to make it work. What's missing in feisty is the bluez-utils patch to hidd to make it work. I've built a package with this patch, and am able to connect to the SIXAXIS over bluetooth. However, pushing the buttons on the gamepad does nothing, over either usb or bluetooth.

Revision history for this message
dobey (dobey) wrote :

It does appear that the USB connection works. However, whenever I try to set the joypad buttons in zsnes, the application locks up, so I'm unable to use the sixaxis with zsnes. Running jstest in a terminal though, the analog sticks, and gamepad buttons do work, all except for the select button, which appears to be the 17th button, and the device gets limited to 16. In bluetooth mode, the sixaxis seems to connect, but is apparently not being set to operational or something, as jstest fails to read signal from the buttons.

Changed in linux-source-2.6.20:
assignee: brian-murray → nobody
importance: Undecided → Low
status: Incomplete → Confirmed
Revision history for this message
Francisco Athens (freelikegnu) wrote :

I tested in Tribe 4 Gutsy Xubuntu and it appears to be working well now.

connect the sixaxis via USB
compile and run sixpair from
http://www.pabr.org/sixlinux/sixlinux.en.html

then disconnect the sixaxis from usb

follow instructions from above site to pair and connect.
I had to run sudo:

$ sudo hidd --server --nocheck -n
press the clear middle clear button on the sixaxis
and you should get something like:
hidd[8332]: Bluetooth HID daemon
hidd[8332]: New HID device 00:19:C1:xx:xx:xx (Sony Computer Entertainment Wireless Controller)

then this may not be necessary:
$ sudo modprobe joydev

get a nice calibration program

$sudo apt-get install jscalibrator
$jscalibrator

you should see the program respond to the sixaxis from bluetooth! Calibrate and save then try using zsnes. Zsnes seems to behave nicely with this joypad now.

Thanks for making this work!!!

Revision history for this message
Francisco Athens (freelikegnu) wrote :

Some additional observations:
*It seems the pressure sensitivity for the buttons has been disabled so they do not show up as axis on jscalibrator.
*Though the two anolog sticks appear to function properly in JSCalibrate zsnes will not recognize them (maybe this is a workaround)
*There is still no support for the motion sensing ability in the sixaxis.

I'm not sure if the above issues have anything to do with the bluez-utils or perhaps something else needs help.
Having to using various utils as root (sudo) to enable this (and perhaps other bluetooth devices) makes it seem more difficult than it should be.

Revision history for this message
dobey (dobey) wrote :

According to the sixaxis bluetooth page (http://www.pabr.org/sixlinux/sixlinux.en.html), yes, the accelerometer data is not yet supported. Also not supported yet are battery status, LEDs, remote wake-up, and bluetooth encryption. The accelerometer is not supported in USB either. In USB mode, most of the buttons so show up with analog support through the different axes. However, they also have digital button signals.

I probably would suggest trying snes9x instead of zsnes. I've not had any luck getting the ps3 controller to work with zsnes or fceu, however, the analog sticks and all of the buttons, except for select, do seem to work in snes9x. Select appears to be the 17th digital button on the controller, and joydev seems to be limited to 16 digital buttons. I've mapped the PS button to select instead on my machine.

That said, I haven't gotten the device to work over bluetooth on my feisty install. I'm not sure if I'm doing something wrong, or if it's just not working because of the kernel, or if the device itself is having a problem. I can get it to pair just fine, but the button press data fails to get sent over bluetooth to my machine.

Revision history for this message
Mario Limonciello (superm1) wrote :

There hasn't been any updates to this bug in a long time. Can someone please see where this is at on Intrepid packages and give an update?

Changed in bluez:
status: Confirmed → Incomplete
importance: Low → Wishlist
Revision history for this message
dobey (dobey) wrote :

I am not sure exactly how to get the device set up in Intrepid. The instructions on http://www.pabr.org/sixlinux/sixlinux.en.html do not seem to be valid for the newer bluez any more. Running hidd --server --nocheck -n doesn't print anything when I press the PS button on the controller. The hacks mentioned in http://thread.gmane.org/gmane.linux.bluez.devel/14354 might work, but I have not yet had a chance to try them.

Revision history for this message
zzt4 (sonic-boom-4) wrote :

I have successfully configured my DualShock 3 controller to work with Intrepid Ibex over both USB and Bluetooth. I simply made sure bluez-utils was not installed on my system, then followed the tutorial at: http://psubuntu.com/forums/viewtopic.php?f=4&t=37

However, you must refer to a later post that has someone who has reposted a live link to a .deb package for a patched bluez-utils version 3.19

Install that and you should be all set. Following the tutorial works like a charm.

Revision history for this message
falkTX (Old) (falk-t-j) wrote :

I'm working on an application to do this automatically.

For now, I have made a simple GUI based on zenity.
You can connect and disconnect it, and it doesn't not require downgrade bluez-utils.
(It runs on 32-bit, 64-bit, sparc and powerpc)

Check:
http://ubuntuforums.org/showthread.php?t=973112

Revision history for this message
Baptiste Mille-Mathias (bmillemathias) wrote :
tags: added: patch
Revision history for this message
falkTX (Old) (falk-t-j) wrote :

I've tested this patch in the past, and it didn't worked...

Anyway, my small script became a known application by now:
http://qtsixa.sourceforge.net/

It supports LEDs, accelerometers and rumble.
PS3 Keypads too

Revision history for this message
jtniehof (jtniehof) wrote :

Most of the guides out there are for old versions of bluez (3.x). I have applied the patch from Fedora and made a debdiff against the version in oneiric. With this patch applied, all I need to do is plug the controller in via USB once for the pairing, then unplug and use the PS button to connect. Note this is gamepad only, no rumble or accelerometer support. I haven't reviewed the guts of the patch (I assume the Fedora devs have); I'm only responsible for the packaging.

My main reference was http://www.netswarm.net/sixaxis-support/

Note there's a brainstorm for this: http://brainstorm.ubuntu.com/idea/3232

Revision history for this message
zw (iwilcox) wrote :

I've done the same thing as Jonathan Niehof in the previous comment (#14) but for Precise, probably not as neatly (my deb-fu isn't strong), and including another component (a dirty fix to kick hid-sony into action). I also rolled a .deb. The attached patch is against a freshly apt-get source'd, unpacked bluez_4.98.orig.tar.gz. For the .deb and details of what's in it and why, see https://iwilcox.me.uk/2012/sixaxis-ubuntu .

My political opinion: It's a shame that kernel support for PS3 HID peripherals is already in the mainline but userspace is lagging behind. I put this down to BlueZ's poor upstream "code-and-forget" approach to maintenance. The devs seem unresponsive and/or indifferent (based on http://thread.gmane.org/gmane.linux.bluez.kernel/15308/ ). If a distribution's users want this, they're better off developing it themselves and asking the package maintainer to accept it as a package patch, as Fedora has done with this, and the package maintainer is better off making their own decision on the patch rather than waiting for BlueZ to do anything.

So, subscribers/users, register above as "This bug affects me" if you haven't already to encourage the maintainers to make a decision on the attached patches.

Changed in bluez (Ubuntu):
status: Incomplete → Confirmed
Revision history for this message
Blade (nadia-xy) wrote :

Following on from the work of previous posters, I've built a version with the SIXAXIS pairing patch for Trusty and uploaded it to a ppa at https://launchpad.net/~nadia-xy/+archive/ppa. Hopefully if/when Ubuntu moves to Bluez 5 this won't be an issue anymore as Bluez 5 appears to support this in recent versions without patching.

Revision history for this message
James (jamestheawesomedude) wrote :

Have the devs given up on merging one of the many patches for this?

tags: added: bluez-classic
Revision history for this message
Konrad Zapałowicz (kzapalowicz) wrote :

This is reported against an old version of Ubuntu and many things has changed since then. Because of that we won't fix this issue however if this behavior repeats on a modern version please fill a bug report against it and we will take it from there.

Changed in bluez (Ubuntu):
status: Confirmed → Invalid
Revision history for this message
Dan Dart (dandart) wrote :

It certainly does repeat on a modern version (16.04). I can't get it to be seen at all via bluetooth, only to be used via USB.

Revision history for this message
James (jamestheawesomedude) wrote :

@dandart, I just tested the controller on Xubuntu 16.04 (technically Mint 18 XFCE), and it works out-of-the-box with the default Bluetooth stack.

The only thing is, you still have to use sixpair to "pair" the PS3 controller to that bluetooth adapter (PS3 controllers' pairing system is not the actual standardized "bluetooth pairing" system).

BUT, once sixpair has been run, the PS3 controller shows up to the system default vanilla Bluetooth stack as a Joystick device that works in e.g., RetroArch.

Is it possible that your device does not support a new enough version of Bluetooth?

Revision history for this message
Yisrael Dov Lebow (yisraeldov) wrote :

@jamestheawesomedude I also have issues with the PS3 controller in 16.04. I can't get it to pair over bluetooth and it constantly rumbles.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

dandart, all: If you continue to have issues then please log a new bug using this command:
   ubuntu-bug bluez

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.