Controling Raspberry Pi Power and Status Light

One thing that has been irritating me for a while on the Pi serving the bedroom television is the red glow cast on the wall emitted by the power light. During the day it is unnoticeable but at night the flickering of the SD card activity LED and the glow of the power light can prove to be quite annoying.

Instead of resorting to taping over the lights to block them out, it is possible to disable them using software as they are connected to GPIO pins.

 

Activity LED

The green LED (ACT) is accessible via

/sys/class/leds/led0/

  and is normally tied to activity on the SD card.

This link to activity is established by something called a trigger and can be modified by altering the contents of the trigger file associated with the LED. It can be disabled by changing its value to “none” (

echo none >/sys/class/leds/led0/trigger

) and restored by echoing the memory card to the file (

echo mmc0 >/sys/class/leds/led0/trigger

).

The LED can be turned off (

echo 0 >/sys/class/leds/led0/brightness

) or on (

echo 1 >/sys/class/leds/led0/brightness

) by altering the value stored in the brightness file. Strictly speaking the brightness can be a value between 0 and 255, however the LEDs are on digital pins, so a value of 1 or higher is interpreted as on.

 

Power LED (Excludes RPi3)

The red LED (PWR) is accessible via 

/sys/class/leds/led1/

 .

Similarly this can be turned on and off by modifying the brightness value stored in the brightness file.

echo 0 >/sys/class/leds/led1/brightness

 and 

echo 1 >/sys/class/leds/led1/brightness

 

OpenELEC

Adding the below lines to the autostart file (

/storage/.config/autostart.sh

) on OpenELEC will automatically disable to two LEDs on startup

echo 0 > /sys/class/leds/led0/brightness
echo 0 > /sys/class/leds/led1/brightness

 

Other Triggers

As mentioned above, it’s possible to do a few fancy bits using triggers. Two examples are the “heartbeat” and “timer” based triggers.

Interchange

led0

  and

led1 

 as desired in the following examples.

 

Heartbeat Trigger – The higher the system load the faster the LED blinks

The heartbeat module first needs to be loaded using

modprobe ledtrig-heartbeat

 . It can now be added to the LED’s trigger file

echo heartbeat >/sys/class/leds/led0/trigger

 .

 

Timer Trigger – Control the blink rate of the LED

Load the timer kernel module using

modprobe ledtrig-timer

  and add it to the LED’s trigger file

echo timer > /sys/class/leds/led0/trigger

 .

In this example to turn the LED on for 1 second and then off for 3 seconds:

echo 1000 > /sys/class/leds/led0/delay_on
echo 3000 > /sys/class/leds/led0/delay_off

 

Ethernet LED’s

For completeness it is also possible to disable or modify the actions of the Ethernet port’s LED’s. This topic on the Raspberry Pi forums contains the instructions on how to do just that.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *