Der Erfolg und die Beliebtheit der Raspberry-Pi-Boards sind sicherlich wohlverdient, aber im Laufe der Zeit haben viele Benutzer das Fehlen eines An/Ausschalters bemerkt und sich darüber beschwert. Schließlich wurde die gewünschte Taste dem neuen Raspberry-Pi 5-Modell hinzugefügt, aber Besitzer früherer Modelle könnten dieses Projekt nützlich finden.

Raspberry Pi smart power button main
Raspberry Pi Smart Power Button project.

Einfache Verkabelung

Zubehör, das dem Raspberry Pi die Funktionalität eines An/Aus-Schalters verleiht, ist nichts Neues. Es gibt sowohl kommerzielle als auch DIY-Angebote, vom einfachen Kabel mit einem Schalter bis hin zu ausgeklügelten HATs (Hardware Attached on Top). Die Lösung, die ich vorschlage, hat jedoch den Vorteil einer recht einfachen Schaltung und erfordert keine Programmierung oder Installation von Skripten oder automatischen Startdiensten.

Einige wenige Bauteile und das Hinzufügen von drei Textzeilen in die Datei config.txt ermöglichen es, das Raspberry Pi-Board auf Knopfdruck einzuschalten, das Betriebssystem korrekt herunterzufahren (auch in Headless-Systemen) und die Stromversorgung des Boards automatisch zu unterbrechen, ohne den USB-Stecker abziehen zu müssen, wodurch die Stromaufnahme auf Null reduziert wird.

Abonnieren
Tag-Benachrichtigung zu Raspberry Pi jetzt abonnieren!

Konfigurieren der Pins

Die in Bild 1 dargestellte Schaltung muss zwischen einem Standard-Netzteil und der Raspberry-Pi-Platine installiert und außerdem mit zwei verfügbaren generischen GPIO-Pins an der 40-poligen Stiftleiste verbunden werden. Bevor die Schaltung angeschlossen wird, muss das Verhalten dieser beiden Pins mit einer Funktion definiert werden, die in den neuesten Versionen des Raspberry Pi OS eingeführt wurde.

240545-001-94-V3_page-00011
Bild 1. Schaltplan der Smart-Power-Taste.

Diese Funktion ist als Device Tree Overlays bekannt und ermöglicht es, Anweisungen für den Betrieb der Hardware in Textform in die config.txt Datei einzufügen. Diese Datei, die bei jedem Start des Betriebssystems geladen wird, befindet sich in der bootfs-Partition auf der Micro-SD-Karte des Betriebssystems. Sie ist auch von Windows aus leicht zugänglich und kann mit jedem Texteditor geändert werden. Die folgenden drei Anweisungen müssen am Ende der Datei eingefügt werden:

 

gpio=23=op,dh

 

Damit wird GPIO23 als Ausgang auf 1 (HIGH) gesetzt.

 

dtoverlay=gpio-poweroff,gpiopin=23,active_low,active_delay_ms=10000

 

Dadurch wird GPIO23 auf Low gesetzt, wenn der sichere Shutdown abgeschlossen ist.

 

dtoverlay=gpio-shutdown,gpio_pin=24,active_low=1,gpio_pull=up,debounce=3000

 

Damit wird eine sichere Abschaltung eingeleitet, wenn GPIO24 länger als 3 s auf Low gehalten wird. GPIO24 ist als Eingang mit Pull-up eingestellt.

Ein Beispiel für eine geänderte Datei config.txt ist einschließlich der Kommentare in Bild 2 dargestellt.

Rpi power button fig2
Bild 2. Beispiel einer geänderten Datei config.txt, einschließlich der Kommentare.

Die Schaltung

Jetzt wird die Funktionsweise der Schaltung deutlicher. Durch Drücken und Halten der Taste SW1 wird der MOSFET Q1 (P-Kanal) eingeschaltet. Dadurch wird die Raspberry-Pi-Platine mit Strom versorgt und das Betriebssystem gebootet. Innerhalb von etwa 1 s wird GPIO23 auf High geschaltet, die blaue LED leuchtet, der MOSFET Q2 (N-Kanal) schaltet sich ein und sperrt Q1, und die Taste kann losgelassen werden.

Wenn Sie den Raspberry Pi über das Startmenü auf dem OS-Desktop herunterfahren, geht am Ende des Vorgangs (Safe Shutdown) GPIO23 auf low, die blaue LED, Q1 und Q2 schalten sich aus und die Stromversorgung des Boards wird unterbrochen. Derselbe Effekt wird erzielt, wenn der Taster länger als 3 s gedrückt wird. Nach dieser Zeit aktiviert GPIO24 den Safe Shutdown, ohne dass der Benutzer auf das Betriebssystem zugreifen muss, was in Headless-Systemen sehr nützlich ist.

Rpi power button fig3
Bild 3. Bauteilseite (oben) und Lötseite (unten) des Prototyps, aufgebaut auf einer kleinen lötbaren Steckplatine.

Um mit der Beschreibung der Schaltung fortzufahren: C1 und R1 verhindern, dass Q1 sich einschaltet, wenn die Stromversorgung angeschlossen ist. D1 und D2 schützen GPIO24 vor der 5-V-Spannung, die am Gate von Q1 (über R1) anliegt, wenn Q2 ausgeschaltet ist. R4 ist der Pulldown-Widerstand für das Gate von Q2, und R2 und R3 schützen die GPIOs vor zu hohem Strom. Der MOSFET Q1 wurde wegen seines geringen Einschaltwiderstands (circa 16 mΩ bei VGS = -4,5 V) ausgewählt, um den Spannungsabfall und die Verlustleistung zu minimieren.

Der fertige Prototyp ist in Bild 3 zu sehen. Er wurde auf einer kleinen lötbaren Steckplatine realisiert, der in die Nähe des Raspberry-Pi-Boards passt.


Anmerkung der Redaktion: Dieser Artikel (240546-02) soll in der Elektor Circuit Special 2025 erscheinen.


Abonnieren
Tag-Benachrichtigung zu Circuits & Circuit Design jetzt abonnieren!