partial success with PS3 sixaxis
Hi,
I've been trying to pair a PS3 sixaxis controller using bluez 5.14 I've had so far only partial success.
It connects, creates js0 and event0 devices, but after a few seconds it removes them.
The lights are always flashing.
I am on a Raspberry running ArchLinux.
This is the output of bluetoothctl
...
[bluetooth]# disconnect
[CHG] Device 00:0B:EB:63:F2:62 Connected: yes
[bluetooth]# disconnect show
[bluetooth]# disconnect 00:0B:EB:63:F2:62
Attempting to disconnect from 00:0B:EB:63:F2:62
Successful disconnected
[CHG] Device 00:0B:EB:63:F2:62 Connected: no
[CHG] Device 00:0B:EB:63:F2:62 Connected: yes
then in dmesg I can see
[ 2745.435967] sony 0005:054C:0268.0008: Fixing up Sony Sixaxis report descriptor [ 2745.452105] sony 0005:054C:0268.0008: unknown main item tag 0x0 [ 2745.471504] input: PLAYSTATION(R)3 Controller as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3.1/1-1.3.1:1.0/bluetooth/hci0/hci0:11/input7 [ 2745.472795] sony 0005:054C:0268.0008: input,hidraw0: BLUETOOTH HID v1.00 Joystick [PLAYSTATION(R)3 Controller] on 00:0b:0d:4c:94:a6 [ 2755.472242] sony: probe of 0005:054C:0268.0008 failed with error -5
the hardware should be ok as it works using sixad & sixpair.
any idea what could be going wrong?
I am not even sure if I am doing the right thing to pair, trust, connect etc... as I cannot google anything using bluez 5 + ps3. All the howtos are for sixad.
Andrea
Hi Andrea,
Quoted 33 lines · On Wednesday 12 of February 2014 21:31:12 Andrea wrote:
Hi,
I've been trying to pair a PS3 sixaxis controller using bluez 5.14 I've had so far only partial success.
It connects, creates js0 and event0 devices, but after a few seconds it removes them.
The lights are always flashing.
I am on a Raspberry running ArchLinux.
This is the output of bluetoothctl
...
[bluetooth]# disconnect
[CHG] Device 00:0B:EB:63:F2:62 Connected: yes
[bluetooth]# disconnect show
[bluetooth]# disconnect 00:0B:EB:63:F2:62
Attempting to disconnect from 00:0B:EB:63:F2:62
Successful disconnected
[CHG] Device 00:0B:EB:63:F2:62 Connected: no
[CHG] Device 00:0B:EB:63:F2:62 Connected: yesthen in dmesg I can see
[ 2745.435967] sony 0005:054C:0268.0008: Fixing up Sony Sixaxis report descriptor [ 2745.452105] sony 0005:054C:0268.0008: unknown main item tag 0x0 [ 2745.471504] input: PLAYSTATION(R)3 Controller as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3.1/1-1.3.1:1.0/bluetooth/hci0/hci0:11/input7 [ 2745.472795] sony 0005:054C:0268.0008: input,hidraw0: BLUETOOTH HID v1.00 Joystick [PLAYSTATION(R)3 Controller] on 00:0b:0d:4c:94:a6 [ 2755.472242] sony: probe of 0005:054C:0268.0008 failed with error -5
Quoted 5 lines
the hardware should be ok as it works using sixad & sixpair.
any idea what could be going wrong?
I am not even sure if I am doing the right thing to pair, trust, connect etc... as I cannot google anything using bluez 5 + ps3. All the howtos are for sixad.
This should "just work". Since 5.14 there is authorization needed when DS3 is connecting (device is not marked as trusted when connected on USB) so please make sure you have default agent registered.
I assume you are using bluetoothctl so do:
agent on
default-agent
Then you should get authorization request in bluetoothctl when DS3 is connecting.
Signature · 2 lines
Best regards, Szymon Janc
Quoted 7 lines · Szymon Janc
Hi Andrea,
This should "just work". Since 5.14 there is authorization needed when DS3 is connecting (device is not marked as trusted when connected on USB) so please make sure you have default agent registered.
Quoted 6 lines
I assume you are using bluetoothctl so do:
agent on
default-agentThen you should get authorization request in bluetoothctl when DS3 is connecting.
I think the problem is not authorisation (I do not get such a request, by I did use the trust command, so maybe it is not necessary any more). It gets connected, it creates /dev/input/js0 but it deletes it shortly after.
I run bluetoothd in debug mode and this is what it prints
bluetoothd[13678]: src/adapter.c:connected_callback() hci0 device 00:1B:FB:63:F2:64 connected eir_len 5 bluetoothd[13678]: profiles/input/server.c:connect_event_cb() Incoming connection from 00:1B:FB:63:F2:64 on PSM 17
bluetoothd[13678]: profiles/input/device.c:input_device_set_channel() idev 0x1dec160 psm 17 bluetoothd[13678]: profiles/input/server.c:confirm_event_cb()
bluetoothd[13678]: profiles/input/server.c:connect_event_cb() Incoming connection from 00:1B:FB:63:F2:64 on PSM 19
bluetoothd[13678]: profiles/input/device.c:input_device_set_channel() idev 0x1dec160 psm 19 bluetoothd[13678]: src/service.c:change_state() 0x1deb1c0: device 00:1B:FB:63:F2:64 profile input-hid state changed: disconnected -> connected (0)
bluetoothd[13678]: sixaxis: compatible device connected: PLAYSTATION(R)3 Controller (054C:0268)
< ===================================== here I disconnect manually, as /dev/input/js0 has already been deleted>
bluetoothd[13678]: src/service.c:change_state() 0x1deb1c0: device 00:1B:FB:63:F2:64 profile input-hid state changed: connected -> disconnecting (0)
bluetoothd[13678]: profiles/input/device.c:input_device_disconnect() bluetoothd[13678]: Input: disconnect /org/bluez/hci0/dev_00_1B_FB_63_F2_64 bluetoothd[13678]: profiles/input/device.c:ctrl_watch_cb() Device 00:1B:FB:63:F2:64 disconnected bluetoothd[13678]: profiles/input/device.c:intr_watch_cb() Device 00:1B:FB:63:F2:64 disconnected bluetoothd[13678]: src/service.c:change_state() 0x1deb1c0: device 00:1B:FB:63:F2:64 profile input-hid state changed: disconnecting -> disconnected (0)
bluetoothd[13678]: profiles/input/device.c:input_device_enter_reconnect_mode() path=/org/bluez/hci0/dev_00_1B_FB_63_F2_64 reconnect_mode=device
bluetoothd[13678]: src/adapter.c:dev_disconnected() Device 00:1B:FB:63:F2:64 disconnected, reason 2 bluetoothd[13678]: src/adapter.c:adapter_remove_connection()
bluetoothd[13678]: src/adapter.c:bonding_attempt_complete() hci0 bdaddr 00:1B:FB:63:F2:64 type 0 status 0xe
bluetoothd[13678]: src/device.c:device_bonding_complete() bonding (nil) status 0x0e bluetoothd[13678]: src/device.c:device_bonding_failed() status 14 bluetoothd[13678]: src/adapter.c:resume_discovery()
Halfway through I disconnected the controller with
disconnect XX:XX:XX:XX:XX in bluetoothtcl
at the same time in the kernel log I can see
Feb 15 12:08:29 alarmpi kernel: sony 0005:054C:0268.0010: Fixing up Sony Sixaxis report descriptor Feb 15 12:08:29 alarmpi kernel: sony 0005:054C:0268.0010: unknown main item tag 0x0 Feb 15 12:08:29 alarmpi kernel: input: PLAYSTATION(R)3 Controller as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3.1/1-1.3.1:1.0/blu Feb 15 12:08:29 alarmpi kernel: sony 0005:054C:0268.0010: input,hidraw0: BLUETOOTH HID v1.00 Joystick [PLAYSTATION(R)3 Controller] on 00: Feb 15 12:08:39 alarmpi kernel: sony: probe of 0005:054C:0268.0010 failed with error -5
which mention some issues with descriptor, tag and probe.
I am not too familiar with whom is responsible for /dev/input/js0? kernel? bluez? the sixaxis plugin?
Since this controller always works with the alternative sixad daemon, can I log the traffic and compare it? or maybe post it here so some of you guys can help me?
thank you
Hi Andrea,
Quoted 68 lines · On Saturday 15 of February 2014 12:10:39 Andrea wrote:
Quoted 7 lines · Szymon Janc
Hi Andrea,
This should "just work". Since 5.14 there is authorization needed when DS3 is connecting (device is not marked as trusted when connected on USB) so please make sure you have default agent registered.
Quoted 6 lines
I assume you are using bluetoothctl so do:
agent on
default-agentThen you should get authorization request in bluetoothctl when DS3 is connecting.
I think the problem is not authorisation (I do not get such a request, by I did use the trust command, so maybe it is not necessary any more). It gets connected, it creates
/dev/input/js0but it deletes it shortly after.I run bluetoothd in debug mode and this is what it prints
bluetoothd[13678]: src/adapter.c:connected_callback() hci0 device 00:1B:FB:63:F2:64 connected
eir_len5 bluetoothd[13678]: profiles/input/server.c:connect_event_cb() Incoming connection from 00:1B:FB:63:F2:64 on PSM 17
bluetoothd[13678]: profiles/input/device.c:input_device_set_channel() idev0x1dec160psm 17 bluetoothd[13678]: profiles/input/server.c:confirm_event_cb()
bluetoothd[13678]: profiles/input/server.c:connect_event_cb() Incoming connection from 00:1B:FB:63:F2:64 on PSM 19
bluetoothd[13678]: profiles/input/device.c:input_device_set_channel() idev0x1dec160psm 19 bluetoothd[13678]: src/service.c:change_state()0x1deb1c0: device 00:1B:FB:63:F2:64 profile input-hid state changed: disconnected -> connected (0)
bluetoothd[13678]: sixaxis: compatible device connected: PLAYSTATION(R)3 Controller (054C:0268)< ===================================== here I disconnect manually, as
/dev/input/js0has already been deleted>bluetoothd[13678]: src/service.c:change_state()
0x1deb1c0: device 00:1B:FB:63:F2:64 profile input-hid state changed: connected -> disconnecting (0)
bluetoothd[13678]: profiles/input/device.c:input_device_disconnect() bluetoothd[13678]: Input: disconnect /org/bluez/hci0/dev_00_1B_FB_63_F2_64 bluetoothd[13678]: profiles/input/device.c:ctrl_watch_cb() Device 00:1B:FB:63:F2:64 disconnected bluetoothd[13678]: profiles/input/device.c:intr_watch_cb() Device 00:1B:FB:63:F2:64 disconnected bluetoothd[13678]: src/service.c:change_state()0x1deb1c0: device 00:1B:FB:63:F2:64 profile input-hid state changed: disconnecting -> disconnected (0)
bluetoothd[13678]: profiles/input/device.c:input_device_enter_reconnect_mode() path=/org/bluez/hci0/dev_00_1B_FB_63_F2_64 reconnect_mode=device
bluetoothd[13678]: src/adapter.c:dev_disconnected() Device 00:1B:FB:63:F2:64 disconnected, reason 2 bluetoothd[13678]: src/adapter.c:adapter_remove_connection()
bluetoothd[13678]: src/adapter.c:bonding_attempt_complete() hci0 bdaddr 00:1B:FB:63:F2:64 type 0 status0xe
bluetoothd[13678]: src/device.c:device_bonding_complete() bonding (nil) status0x0ebluetoothd[13678]: src/device.c:device_bonding_failed() status 14 bluetoothd[13678]: src/adapter.c:resume_discovery()Halfway through I disconnected the controller with
disconnect XX:XX:XX:XX:XX in bluetoothtcl
at the same time in the kernel log I can see
Feb 15 12:08:29 alarmpi kernel: sony 0005:054C:0268.0010: Fixing up Sony Sixaxis report descriptor Feb 15 12:08:29 alarmpi kernel: sony 0005:054C:0268.0010: unknown main item tag 0x0 Feb 15 12:08:29 alarmpi kernel: input: PLAYSTATION(R)3 Controller as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3.1/1-1.3.1:1.0/blu Feb 15 12:08:29 alarmpi kernel: sony 0005:054C:0268.0010: input,hidraw0: BLUETOOTH HID v1.00 Joystick [PLAYSTATION(R)3 Controller] on 00: Feb 15 12:08:39 alarmpi kernel: sony: probe of 0005:054C:0268.0010 failed with error -5
Quoted 1 line
which mention some issues with descriptor, tag and probe.
Failing probe is a problem here. Do you use same dongle on RaspPi as on Fedora? I've seen that DS3 is not playing well with some controllers i.e. it doesn't work with one on my CSR 2.0 USB dongle.
Quoted 1 line
I am not too familiar with whom is responsible for
/dev/input/js0? kernel? bluez? the sixaxis plugin?
Kernel. sixaxis plugin is used only to associate DS3 with host controller (and to set LEDs).
Quoted 2 lines
Since this controller always works with the alternative sixad daemon, can I log the traffic and compare it? or maybe post it here so some of you guys can help me?
Yeap, btmon logs could give us some more info what is going on.
Signature · 2 lines
Best regards, Szymon Janc
Quoted 6 lines · Szymon Janc
Hi Andrea,
Failing probe is a problem here. Do you use same dongle on RaspPi as on Fedora? I've seen that DS3 is not playing well with some controllers i.e. it doesn't work with one on my CSR 2.0 USB dongle.
yes I seem to confirm it.
using kernel 3.10.xxx on Pi, the PS3 does not seem to work on any usb dongle
3.12 Fedora and 3.13 Pi with a CSR 4.0 it works (let's ignore the crashes on Pi which seems to be related to Pi USB stack). No LEDs.
3.12 Fedora and 3.13 Pi with a CSR 2.0, it pairs, connects but /dev/input/js0 is only readable for a few seconds then it stops reading events
3.13 Pi with a CSR 4.0 I sometimes get device timeout when I try "hciconfig hcio up"
What is strange here is that sixad was working with more dongles and more kernels.
So, to be concrete, my current issues are
1) no LEDs (you said it is going to be fixed in Linux 3.15)
2) CSR with dongle 2.0 produces a non usable /dev/input/js0
3) CSR 4.0 I cant always bring hci0 up
The 2 dongles I am using now are both reporting the same usb device id
0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
although they are very different 2.0 vs 4.0
Anything I can do to narrow down these last issues?
Quoted 10 lines
Quoted 2 lines
I am not too familiar with whom is responsible for
/dev/input/js0? kernel? bluez? the sixaxis plugin?Kernel. sixaxis plugin is used only to associate DS3 with host controller (and to set LEDs).
Quoted 2 lines
Since this controller always works with the alternative sixad daemon, can I log the traffic and compare it? or maybe post it here so some of you guys can help me?
Yeap, btmon logs could give us some more info what is going on.
Quoted 9 lines · Szymon Janc
Hi Andrea,
I assume you are using bluetoothctl so do:
agent on
default-agentThen you should get authorization request in bluetoothctl when DS3 is connecting.
Hi,
I have tried on a different laptop (no more the raspberry pi, where I still have the issues I reported in the other email), running Fedora 19.
I compiled bluez 5.14 and run it.
It is more stable and /dev/input/js0 is usable.
It is still not able to set the LEDs. This gets written in the output
Feb 15 16:55:02 localhost.localdomain bluetoothd[24620]: sixaxis: compatible device connected: PLAYSTATION(R)3 Contr Feb 15 16:55:02 localhost.localdomain kernel: input: PLAYSTATION(R)3 Controller as /devices/pci0000:00/0000:00:1d.1/ Feb 15 16:55:02 localhost.localdomain kernel: sony 0005:054C:0268.000E: input,hidraw0: BLUETOOTH HID v1.00 Joystick Feb 15 16:55:02 localhost.localdomain bluetoothd[24620]: sixaxis: failed to set LEDS (0 bytes written)
I have tried to log the traffic for bluez and sixad (where the LEDs work), to see you can find any difference.
http://pastebin.com/pExywtUk (this is the log from bluez where LEDs keep flashing)
http://pastebin.com/BgRUnamS (log from sixad where LEDs are set)
Happy to provide more if it can be of any help.
Andrea
Quoted 32 lines · Andrea
Quoted 9 lines · Szymon Janc
Hi Andrea,
I assume you are using bluetoothctl so do:
agent on
default-agentThen you should get authorization request in bluetoothctl when DS3 is connecting.
Hi,
I have tried on a different laptop (no more the raspberry pi, where I still have the issues I reported in the other email), running Fedora 19.
I compiled bluez 5.14 and run it.
It is more stable and/dev/input/js0is usable.It is still not able to set the LEDs. This gets written in the output
Feb 15 16:55:02 localhost.localdomain bluetoothd[24620]: sixaxis: compatible device connected: PLAYSTATION(R)3 Contr Feb 15 16:55:02 localhost.localdomain kernel: input: PLAYSTATION(R)3 Controller as /devices/pci0000:00/0000:00:1d.1/ Feb 15 16:55:02 localhost.localdomain kernel: sony 0005:054C:0268.000E: input,hidraw0: BLUETOOTH HID v1.00 Joystick Feb 15 16:55:02 localhost.localdomain bluetoothd[24620]: sixaxis: failed to set LEDS (0 bytes written)I have tried to log the traffic for bluez and sixad (where the LEDs work), to see you can find any difference.
Quoted 7 lines
http://pastebin.com/pExywtUk (this is the log from bluez where LEDs keep flashing)
http://pastebin.com/BgRUnamS (log from sixad where LEDs are set)Happy to provide more if it can be of any help.
Andrea
and this is the log from bluez 5.14 running on raspberry pi where /dev/input/js0 disappears after a few seconds.
Andrea
Hi Andrea,
Quoted 29 lines · On Saturday 15 of February 2014 20:41:58 Andrea wrote:
Quoted 9 lines · Szymon Janc
Hi Andrea,
I assume you are using bluetoothctl so do:
agent on
default-agentThen you should get authorization request in bluetoothctl when DS3 is connecting.
Hi,
I have tried on a different laptop (no more the raspberry pi, where I still have the issues I reported in the other email), running Fedora 19.
I compiled bluez 5.14 and run it.
It is more stable and/dev/input/js0is usable.It is still not able to set the LEDs. This gets written in the output
Feb 15 16:55:02 localhost.localdomain bluetoothd[24620]: sixaxis: compatible device connected: PLAYSTATION(R)3 Contr Feb 15 16:55:02 localhost.localdomain kernel: input: PLAYSTATION(R)3 Controller as /devices/pci0000:00/0000:00:1d.1/ Feb 15 16:55:02 localhost.localdomain kernel: sony 0005:054C:0268.000E: input,hidraw0: BLUETOOTH HID v1.00 Joystick Feb 15 16:55:02 localhost.localdomain bluetoothd[24620]: sixaxis: failed to set LEDS (0 bytes written)
Quoted 2 lines
I have tried to log the traffic for bluez and sixad (where the LEDs work), to see you can find any difference.
This is a known regression on kernels >3.9. Should be fixed in 3.15 AFAIR.
Quoted 7 lines
http://pastebin.com/pExywtUk (this is the log from bluez where LEDs keep flashing)
http://pastebin.com/BgRUnamS (log from sixad where LEDs are set)Happy to provide more if it can be of any help.
Andrea
Signature · 2 lines
Best regards, Szymon Janc
Quoted 5 lines · Szymon Janc
Hi Andrea,
This is a known regression on kernels >3.9. Should be fixed in 3.15 AFAIR.
you really mean 3.15? not even 3.14?
then, my last issue is the following:
on Fedora 19 x86 things work with a Bluetooth 4.0 dongle
0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
running 3.12.11 (Fedora version)
unfortunately on a Raspberry Pi ARM6, Arch Linux with kernel 3.13.3 I get a strange kernel oops after a random time of successful usage (could be 1 minute or 2 days)
I struggle to get a meaningful stack trace (the whole system dies, need to attach a serial console), would you know of any issues on this architecture? it seems to be a NULL pointer exception. The same crash happens with a different dongle (older bluetooth 2 from broadcom)
thanks
Hi Andrea,
Quoted 8 lines · On Saturday 22 of February 2014 09:19:15 Andrea wrote:
Quoted 5 lines · Szymon Janc
Hi Andrea,
This is a known regression on kernels >3.9. Should be fixed in 3.15 AFAIR.
you really mean 3.15? not even 3.14?
AFAIK yes, this regression was only spotted in mid December when sixaxis patches were submitted and proper fix turns out to be not that trivial.
Quoted 10 lines
then, my last issue is the following:
on Fedora 19 x86 things work with a Bluetooth 4.0 dongle
0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
running 3.12.11 (Fedora version)
Quoted 6 lines
unfortunately on a Raspberry Pi ARM6, Arch Linux with kernel 3.13.3 I get a strange kernel oops after a random time of successful usage (could be 1 minute or 2 days)
I struggle to get a meaningful stack trace (the whole system dies, need to attach a serial console), would you know of any issues on this architecture? it seems to be a NULL pointer exception. The same crash happens with a different dongle (older bluetooth 2 from broadcom)
I haven't seen any issues on my PC but I wasn't using it on any ARM device.
Signature · 2 lines
Best regards, Szymon Janc