2016-01-19 18:57:46

by Manuel Reimer

[permalink] [raw]
Subject: PS3 controller (SIXAXIS) never gets into "IdleTimeout"

Hello,

I want to use my PS3 controller on my Linux system. This, so far, seems
to work pretty well, but if I forget to turn off the controller when
leaving my PC, then the battery keeps discharging until it is finally empty.

There is a setting "IdleTimeout" in "input.conf", but at least for me
this doesn't work for the PS3 controller.

I think the reason is, that the controller keeps sending information
even if it is placed on my desk and noone is touching it. If I run
"evtest" on the event device, created for the controller, then I get
something like this (only short snippet):

Event: time 1453228629.616457, -------------- SYN_REPORT ------------
Event: time 1453228629.651514, type 3 (EV_ABS), code 1 (ABS_Y), value 124
Event: time 1453228629.651514, type 3 (EV_ABS), code 61 (ABS_MT_TOOL_Y),
value 491
Event: time 1453228629.651514, -------------- SYN_REPORT ------------
Event: time 1453228629.683436, type 3 (EV_ABS), code 1 (ABS_Y), value 123
Event: time 1453228629.683436, type 3 (EV_ABS), code 2 (ABS_Z), value 132
Event: time 1453228629.683436, type 3 (EV_ABS), code 61 (ABS_MT_TOOL_Y),
value 490
Event: time 1453228629.683436, -------------- SYN_REPORT ------------

Seems like the controller keeps sending axis information even if the
axis aren't touched at all.

Is there any chance to add some handling into bluez to get the
controller disabled, even if it keeps sending information in "idle state"?

Thank you very much in advance.

Best regards,

Manuel


2016-01-22 15:50:07

by Manuel Reimer

[permalink] [raw]
Subject: Re: PS3 controller (SIXAXIS) never gets into "IdleTimeout"

On 01/19/2016 11:40 PM, Antonio Ospite wrote:
>> Seems like the controller keeps sending axis information even if the
>> axis aren't touched at all.
>>
>
> IIRC this is because the controller has a lot of axes and they end up in
> the multi touch range (ABS_MT_*) which apparently sends event
> continuously.
>
> I remember I did some experiments about remapping the axes to a more
> meaningful setup and there were some improvements but that work
> depended on some experimental changes to the linux input layer from
> David Herrmann (the ABS2 proposal) and I do not know if the latter ever
> reached mainline. This is a linux-input topic BTW.

I guess that those are just the numbers, used by Sony, directly sent
out, right?

> If you disconnect the device from bluez (either from an applet or from
> command line) the sixaxis should turn off.
>
> JFYI a possible hardware way is to keep pushed the PS button for some
> seconds, this also should turn the sixaxis off.

Both ways work. Thank you.

Just to be sure if this is not another linux-input topic:

If I first connect my PS3 controller via bluetooth, then all LEDs are
turned off after some flashing. I think a better default configuration
would be to set the first LED to be on. If all are off it is not obvious
that the controller is turned on...

Thanks in advance

Best regards,

Manuel

2016-01-19 22:40:26

by Antonio Ospite

[permalink] [raw]
Subject: Re: PS3 controller (SIXAXIS) never gets into "IdleTimeout"

On Tue, 19 Jan 2016 19:57:46 +0100
Manuel Reimer <[email protected]> wrote:

> Hello,
>

Hi Manuel,

> I want to use my PS3 controller on my Linux system. This, so far, seems
> to work pretty well, but if I forget to turn off the controller when
> leaving my PC, then the battery keeps discharging until it is finally empty.
>
> There is a setting "IdleTimeout" in "input.conf", but at least for me
> this doesn't work for the PS3 controller.
>
> I think the reason is, that the controller keeps sending information
> even if it is placed on my desk and noone is touching it. If I run
> "evtest" on the event device, created for the controller, then I get
> something like this (only short snippet):
>
> Event: time 1453228629.616457, -------------- SYN_REPORT ------------
> Event: time 1453228629.651514, type 3 (EV_ABS), code 1 (ABS_Y), value 124
> Event: time 1453228629.651514, type 3 (EV_ABS), code 61 (ABS_MT_TOOL_Y),
> value 491
> Event: time 1453228629.651514, -------------- SYN_REPORT ------------
> Event: time 1453228629.683436, type 3 (EV_ABS), code 1 (ABS_Y), value 123
> Event: time 1453228629.683436, type 3 (EV_ABS), code 2 (ABS_Z), value 132
> Event: time 1453228629.683436, type 3 (EV_ABS), code 61 (ABS_MT_TOOL_Y),
> value 490
> Event: time 1453228629.683436, -------------- SYN_REPORT ------------
>
> Seems like the controller keeps sending axis information even if the
> axis aren't touched at all.
>

IIRC this is because the controller has a lot of axes and they end up in
the multi touch range (ABS_MT_*) which apparently sends event
continuously.

I remember I did some experiments about remapping the axes to a more
meaningful setup and there were some improvements but that work
depended on some experimental changes to the linux input layer from
David Herrmann (the ABS2 proposal) and I do not know if the latter ever
reached mainline. This is a linux-input topic BTW.

> Is there any chance to add some handling into bluez to get the
> controller disabled, even if it keeps sending information in "idle state"?
>

If you disconnect the device from bluez (either from an applet or from
command line) the sixaxis should turn off.

JFYI a possible hardware way is to keep pushed the PS button for some
seconds, this also should turn the sixaxis off.

Ciao ciao,
Antonio

--
Antonio Ospite
http://ao2.it

A: Because it messes up the order in which people normally read text.
See http://en.wikipedia.org/wiki/Posting_style
Q: Why is top-posting such a bad thing?