Listing 2
Lüfter ansteuern
### Lüfter an $ pigs w 4 1 ### Lüfter aus $ pigs w 4 0 ### PWM auf 8 KHz $ pigs pfs 4 8000 ### PWM aus $ pigs p 4 0 ### PWM 100 Prozent $ pigs p 4 255 ### PWM langsamste Drehzahl $ pigs p 4 70 ### PWM etwa 50 Prozent $ pigs p 4 180
Nun lässt sich der Lüfter zwar per GPIO ansteuern, doch stellt sich die Frage, anhand welchen Messwerts das erfolgen soll. Hier hilft der Linux-Kernel des Raspberry Pi weiter: Die Temperatur der CPU lässt sich mit dem schlichten Kommando aus der zweiten Zeile von Listing 3 auslesen. Auf dieser Grundlage steuert das Skript den Lüfter abhängig von der CPU-Temperatur stufenweise an. Bei 50 Grad Celsius läuft der Lüfter langsam an, bei mehr als 60 Grad Celsius schaltet er auf volle Drehzahl. Die Lüftung schaltet ab, sobald die Temperatur unter 40 Grad Celsius fällt. Die Werte lassen sich an die jeweiligen Bedürfnisse anpassen.
Listing 3
Lüfter automatisch ansteuern
#!/bin/bash TEMP=$(cat /sys/class/thermal/thermal_zone0/temp) RV=$(pigs pfs 4 8000) if (( $TEMP > 50000)) then pigs p 4 70 fi if (( $TEMP > 60000)) then pigs p 4 255 fi if (( $TEMP < 40000)) then pigs p 4 0 fi
Das Skript führen Sie nun über einen Cron-Job aus, der jede Minute die Temperatur misst und entsprechend reagiert – schon haben Sie eine temperaturabhängige Lüftersteuerung. Alles in allem ist das schon eine recht gute Lösung für das eingangs beschriebene Problem. Nach wie vor übernimmt aber ein minderwertiger Lüfter die Kühlung. Daher sehen wir uns im nächsten Abschnitt an, wie sich ein richtig guter Lüfter ansteuern lässt.
Die Luxusvariante
Geht es darum, einen PC leise aktiv zu kühlen, empfehlen sich die Geräte der Firma Noctua als erste Wahl. Wie immer im Leben kostet gute Qualität mehr Geld. Das für den Raspberry geeignete Modell NF-A4x10 [2] schlägt mit etwa 15 Euro zu Buche. Dafür beträgt die Herstellergarantie für den Lüfter allerdings auch 6 Jahre. Die Produktwebseite fasst alle wissenswerten Daten zum NF-A4x10 zusammen [3]. Falls Sie sich für die genauen technischen Werte des Quirls interessieren, werden Sie im White Paper [4] dazu fündig.
Um den Noctua-Lüfter mit dem RasPi anzusteuern, benötigen Sie auch eine kleine Elektronik, die aber nur das PWM-Signal über einen Open-Collector-Ausgang an den Lüfter weitergibt. Bei einer Verbindung darüber spielen unterschiedliche Betriebsspannungspegel der verschiedenen Geräte keine Rolle. Den zugehörigen Schaltplan zeigt Abbildung 4.
Weil er sich in der Grabbelkiste fand, kommt hier wieder der Transistor BC337-40 zum Zug, auch wenn er für diesen Anwendungsfall überdimensioniert ist. Der Noctua-Lüfter selbst bringt eine Elektronik mit, die das PWM-Signal auswertet und den Lüfter entsprechend ansteuert. Dadurch lässt sich die Drehzahl des Motors viel feiner steuern als bei unserem ersten Versuch.
Obwohl der Lüfter laut Dokumentation ein PWM-Signal mit 25 kHz benötigt, kommt er auch sehr gut mit den 8 kHz der Hardware-PWM des RasPi zurecht. Den Raspberry Pi dazu zu überreden, ein 25-kHz-Signal zu liefern, erweist sich als schwierige Aufgabe. Da der Open-Collector-Eingang das Signal invertiert, gilt es, die Werte für den Versuch etwas anzupassen (Listing 4). Ihnen fällt sicher auf, dass die Spanne, in der sich das PWM-Signal verarbeiten lässt, hier viel größer ausfällt als bei den Tests mit den günstigen Lüftern. Die geförderte Luftmenge liegt deutlich höher, und das bei einer erheblich geringeren Geräuschentwicklung.
Listing 4
Angepasste Werte
### PWM auf 8 kHz $ pigs pfs 4 8000 ### PWM aus $ pigs p 4 255 ### PWM 100 Prozent $ pigs p 4 0 ### PWM langsamste Drehzahl $ pigs p 4 244 ### PWM etwa 50 Prozent $ pigs p 4 122
Um den Noctua zu betreiben, passen Sie einfach das Skript aus dem ersten Versuch entsprechend an. Alternativ dazu gibt es Projekte bei Github, die passenden Code bereitstellen. Der in Python geschriebene Code des Raspberry-Pi-PWM-Fan-Control [5] lässt sich leicht anpassen und errechnet das PWM-Signal anhand der Temperatur. Die Lösung arbeitet eleganter als die einfache Schaltschwelle aus Listing 3.
Fazit
Wer seinen RasPi 4 bis an die Grenzen auslasten möchte, kommt um eine aktive Lüftung nicht herum. Die günstigen Lüfter, die den Gehäusen beiliegen, lassen sich selbst mit zusätzlicher Elektronik und trickreicher Programmierung nicht besonders gut an die Kühlbedürfnisse des Raspberry Pi anpassen.
Mit einem etwas teureren Lüfter fahren Sie auf jeden Fall besser, zumal er vermutlich auch mehrere Raspberry-Generationen überlebt. Der Autor wünscht Ihnen viel Spaß bei Basteleien mit den Pi – und immer schön cool bleiben! (tle)
Der Autor
Martin Mohr erlebte die komplette Entwicklung der modernen Computertechnik live mit. Nach dem Studium entwickelte er überwiegend Java-Applikationen. Mit dem Raspberry Pi erwachte seine alte Liebe zur Elektronik wieder.
Infos
- Pigpio: https://abyz.me.uk/rpi/pigpio/
- PWM-Lüfter Noctua NF-A4x10 5V bei Amazon: https://www.amazon.de/Noctua-NF-A4x10-5V-PWM-Premium-L%C3%BCfter/dp/B07DXS86G7/
- Herstellerseite zum NF-A4x10: https://noctua.at/de/products/fan/nf-a4x10-5v-pwm
- Whitepaper zum NF-A4x10: https://noctua.at/pub/media/wysiwyg/Noctua_PWM_specifications_white_paper.pdf
- Raspberry Pi PWM Fan Control: https://github.com/DriftKingTW/Raspberry-Pi-PWM-Fan-Control/blob/master/fan_control.py






