Leds BlinkM driver¶
The leds-blinkm driver supports the devices of the BlinkM family.
They are RGB-LED modules driven by a (AT)tiny microcontroller andcommunicate through I2C. The default address of these modules is0x09 but this can be changed through a command. By this you coulddaisy-chain up to 127 BlinkMs on an I2C bus.
The device accepts RGB and HSB color values through separate commands.Also you can store blinking sequences as “scripts” inthe controller and run them. Also fading is an option.
The interface this driver provides is 3-fold:
a) LED multicolor class interface for use with triggers¶
The registration follows the scheme:
blinkm-<i2c-bus-nr>-<i2c-device-nr>:rgb:indicator$ ls -h /sys/class/leds/blinkm-1-9:rgb:indicatorbrightness device max_brightness multi_index multi_intensity power subsystem trigger uevent
Hue is controlled by the multi_intensity file and lightness is controlled bythe brightness file.
The order in which to write the intensity values can be found in multi_index.Exactly three values between 0 and 255 must be written to multi_intensity tochange the color:
$ echo 255 100 50 > multi_intensity
The overall lightness be changed by writing a value between 0 and 255 to thebrightness file.
b) LED class interface for use with triggers¶
The registration follows the scheme:
blinkm-<i2c-bus-nr>-<i2c-device-nr>-<color>$ ls -h /sys/class/leds/blinkm-6-*/sys/class/leds/blinkm-6-9-blue:brightness device max_brightness power subsystem trigger uevent/sys/class/leds/blinkm-6-9-green:brightness device max_brightness power subsystem trigger uevent/sys/class/leds/blinkm-6-9-red:brightness device max_brightness power subsystem trigger uevent
(same is /sys/bus/i2c/devices/6-0009/leds)
We can control the colors separated into red, green and blue andassign triggers on each color.
E.g.:
$ cat blinkm-6-9-blue/brightness05$ echo 200 > blinkm-6-9-blue/brightness$$ modprobe ledtrig-heartbeat$ echo heartbeat > blinkm-6-9-green/trigger$
b) Sysfs group to control rgb, fade, hsb, scripts ...¶
This extended interface is available as folder blinkmin the sysfs folder of the I2C device.E.g. below /sys/bus/i2c/devices/6-0009/blinkm
$ ls -h /sys/bus/i2c/devices/6-0009/blinkm/blue green red test
Currently supported is just setting red, green, blueand a test sequence.
E.g.:
$ cat *000000#Write into test to start test sequence!#$ echo 1 > test$$ echo 255 > red$
as of 07/2024
dl9pf <at> gmx <dot> dejstrauss <at> mailbox <dot> org