On-Board-LEDs des Raspberry Pi steuern

Es gibt sicher 1000 Anleitungen, wie Sie eine Leuchtdiode über einen Vorwiderstand mit einem GPIO-Pin verbinden und diese dann per Python, bash oder in sonst einer Programmiersprache ein- und wieder ausschalten. Aber wussten Sie, dass Sie auch manche im Raspberry Pi eingebauten LEDs per Software ein- und ausschalten können?

Update 20.8.2017: Die LED-Steuerung durch das gpio-Kommando funktioniert nur beim Raspberry Pi 2, nicht beim Raspberry Pi 3.

Im Folgenden beziehe ich mich auf den Raspberry Pi 2, Modell B sowie auf den Raspberry Pi 3, ebenfalls Modell B. Bei diesen Modellen gibt es vier LEDs. Zwei sind in die Ethernet-Buchse integriert und nicht Thema dieses Beitrags. Die beiden anderen befinden sich am Beginn der GPIO-Leiste (Pi 2) bzw. neben der USB-Buchse zur Stromversorgung (Pi 3):

  • Die grüne LED (Status-LED = led0) flackert üblicherweise, wenn Daten von/zur SD-Karte übertragen werden.
  • Die rote LED (Power-LED = led1) zeigt an, dass der Raspberry Pi mit der Stromversorgung verbunden ist.

Das Verhalten dieser beider LED wird durch /sys/class/leds/led<n>/trigger bestimmt. Standardmäßig gelten die folgenden Einstellungen:

cat /sys/class/leds/led0/trigger 
  none [mmc0] timer oneshot heartbeat backlight 
  gpio cpu0 cpu1 cpu2 cpu3 default-on input
cat /sys/class/leds/led1/trigger 
  none mmc0 timer oneshot heartbeat backlight 
  gpio cpu0 cpu1 cpu2 cpu3 default-on [input] 

Indem Sie beide trigger-Dateien mit none überschreiben, können Sie selbst die Kontrolle über die LEDs übernehmen:

sudo sh -c 'echo none > /sys/class/leds/led0/trigger'
sudo sh -c 'echo none > /sys/class/leds/led1/trigger'

Um eine LED ein- bzw. aus zu schalten, schreiben Sie 1 bzw. 0 in /sys/class/leds/led1/brightness:

sudo sh -c 'echo 0 > /sys/class/leds/led0/brightness'  # grüne LED aus
sudo sh -c 'echo 1 > /sys/class/leds/led1/brightness'  # rote LED ein

Ein- und Ausschalten per gpio-Kommando (nur Raspberry Pi 2!)

Vorausgesetzt, dass die trigger auf none steht, können Sie die LEDs des Raspberry Pi 2 auch mit GPIO-Kommandos steuern. Der grünen LED ist der GPIO 47 zugeordnet (in BCM-Nummerierung), der roten LED 35. Mit dem Wiring-Pi-Kommando gpio können Sie die LEDs auch ohne sudo ein- und ausschalten:

gpio -g  write 47 1  # grüne LED ein
gpio -g  write 47 0
gpio -g  write 35 1  # rote LED ein
gpio -g  write 35 0

Achtung: Die gpio-Steuerung funktioniert beim Raspberry Pi 3 nicht mehr. Die Steuerung per echo funktioniert hingegen bei beiden Modellen.

Quellen