Re: LEDs with hardware-accelerated patterns, suspend indication

From: Hans de Goede
Date: Tue Jun 15 2021 - 08:17:20 EST


<I accidentally dropped the Cc list when mailing Jafar, I'm restoring it now>

Hi All,

On 6/12/21 10:21 PM, Jafar Akhondali wrote:
> Hi Hans,
> Sorry for the late reply.
> there are two categories of keyboard lighting modes:
> 1. static
> 2. dynamic
>
> In static mode, any of 4 zones can be configured to show specific color,
> independently.
>
> In dynamic mode, there is no control over specific zones.
> It's only possible to set some: color, speed, direction
> and: [R]ed,[G]reen, [B]lue
>
> so in dynamic mode, the user can't control zones,
> the dynamic effects take care of that.

So we have 4 zones, which are individual controllable, so which should
probably be modeled as individual LED class devices. But when we enable
the hardware effects, then the individual addressing goes away and we
set one effect which applies to all zones.

Jafar, do I understand this correctly?

Pavel, how should this be mapped to the led-class API?

Some ideas:

a) Only add the new lpattern to the main zone?
2) Add the new lpattern to all zones, but only make it
writable in the main zone ?

Regards,

Hans




> On Mon, Jun 7, 2021 at 11:58 PM Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
>>
>> Hi,
>>
>> On 6/4/21 10:57 PM, Jafar Akhondali wrote:
>>> Hi Hans,
>>>
>>> On Sat, Jun 5, 2021 at 12:58 AM Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
>>>>
>>>> Hi Pavel,
>>>>
>>>> Jafar can you explain how this works in a bit more detail. I get
>>>> the feeling that from a hardware-API pov there are no individual
>>>> addressable LEDs, yet some effects do program individual LEDs
>>>> differently then their neighbors ? Or am I just misunderstanding
>>>> what some of the effects do ?
>>> Sure, Acer predator helios 300 got a 4-zone RGB keyboard.
>>> Some of the mentioned modes like "wave" accept less configurable
>>> parameters, such as color.
>>> This is because the effect itself changes the color. So yes, there is
>>> no per-key rgb at least in this model,
>>> and the lowest possible change is to change each zone.
>>> You can watch a video of keyboard demo here(check after 2:05):
>>> https://www.youtube.com/watch?v=eAfAwNiIWbA
>>> Above uses PredatorSense, which is Acer's official gaming control app.
>>> Also, my patch provides only support for effects, and not static coloring.
>>> As a workaround for static coloring, it's possible to use a effect
>>> with zero speed,
>>> so it looks like static coloring til I can figure how static coloring
>>> is implemented.
>>>
>>> The whole config for my patch accepts 16 bytes which configures different modes.
>>> I've also created a CLI interface for configuring this steps, so you
>>> can check required params
>>> from there too:
>>> https://github.com/JafarAkhondali/acer-helios-300-rgb-keyboard-linux-module/blob/main/facer_rgb.py
>>>
>>> Hope this helps, and thanks for adding me.
>>
>> Thank you for the extra info, looking at the video it seems that the
>> wave effect is cycling through the colors of the rainbow, but at the
>> same time it also seems that say starts in zone 1 and then moves to
>> zone 2 (while zone 1 becomes say purple) and then after that the red
>> moves to zone 3 and then zone 2 becomes purple. Did I see that
>> correct ? And is this just caused by the software not starting the
>> cycle effect in the different zones at the same time, or is this actual
>> the intended wave effect ?
>>
>> What I'm trying to ask here is if the 4 zones are fully independent,
>> e.g. one could be in wave effect while the other 3 zones do something
>> else, or are certain effects multi-zone effects?
>>
>> Regards,
>>
>> Hans
>>
>