wvffle
January 29, 2025, 9:15am
1
Is there a way to control the fingerprint LED colors on AMD Ryzen™ 7040 devices?
Trying to set the LED color with ectool works only for auto
, off
and white
. Setting it to different colors returns:
[nix-shell:~]$ sudo ectool led power red
EC result 3 (INVALID_PARAM)
[nix-shell:~]$ sudo ectool led power yellow
EC result 3 (INVALID_PARAM)
[nix-shell:~]$ sudo ectool led power auto
[nix-shell:~]$ sudo ectool led power off
[nix-shell:~]$ sudo ectool led power white
When I run ectool led power query
, I get this. Does that mean that other colors aren’t supported at all?
Brightness range for LED 1:
red : 0x0
green : 0x0
blue : 0x0
yellow : 0x0
white : 0x64
amber : 0x0
Here’s my BIOS and EC firmware versions from framework_tool --versions
:
UEFI BIOS
Version: 03.05
Release Date: 03/29/2024
EC Firmware
Build version: "azalea_v3.4.113353-ec:b4c1fb,os:7b88e1,cmsis:4aa3ff 2024-03-26 07:10:22 lotus@ip-172-26-3-226"
RO Version: "azalea_v3.4.113353-ec:b4c1fb,os"
RW Version: "azalea_v3.4.113353-ec:b4c1fb,os"
Current image: RO
1 Like
inffy
January 29, 2025, 9:17am
2
As far as I know the only color supported is white.
It can also be set in BIOS although it is white only
How are you so sure the physical power LED is RGB and not just white? I haven’t seen it come on as any color other than white.
The fingerprint power key supports RGWY only on the Framework Laptop 13 (11th Gen Intel Core), and maybe the 12th.
Newer hardware only supports white.
I don’t know about AMD but I’m running this little bash script on my Framework 13 (13th Gen) and it works just fine
{ pkgs, ... } : {
systemd.services.luciole = {
wantedBy = [ "fprintd.service" ];
description = "changes the power LED color based on fprintd events";
serviceConfig = {
User = "root";
ExecStart = pkgs.writeShellScript "luciole" ''
declare -A COLORS=(
[default]="0 0 0 0 1 0" # white
[scan]="0 0 0 0 0 1" # amber
[success]="0 1 0 0 0 0" # green
[fail]="1 0 0 0 0 0" # red
)
brightness() {
echo $1 > /sys/class/leds/chromeos:multicolor:power/brightness
}
color() {
echo "''${COLORS[$1]}" > /sys/class/leds/chromeos:multicolor:power/multi_intensity
This file has been truncated. show original
It’s using sysfs and not ectool though.
wvffle
January 30, 2025, 10:13am
7
That’s a pity, having a colored indicator would be cool to have on all frameworks
Thank you all for information!
This seems to change the power led, not the fingerprint reader led.
The name is indeed confusing as the fingerprint reader is also the power button.
It definitely changes the led around the fingerprint reader.
On the AMD Framework 13, I don’t have /sys/class/leds/chromeos:multicolor:power
, just the following ones:
chromeos::kbd_backlight/
chromeos:multicolor:charging/
chromeos:white:power/
so this doesn’t work for me. I tries messing the the items in chromeos:white:power
but that just seems to turn the white color off.
inffy
January 30, 2025, 7:01pm
11
And you shouldn’t even see anything other, but as the power/fingerprint led is white only
wvffle
January 30, 2025, 7:10pm
12
While playing I saw that after changing sysfs values, any change to the power led with framework_tool does not work until reboot.
Is there any way to precisely control the power LED?