Zum Inhalt

Raspberry Pi Stromversorgung, PoE+ & Aktive Kühlung im Detail

Erstellt: 08.11.2026 Zuletzt aktualisiert: 08.11.2026

Management Summary: Mit steigenden Taktraten und dem Betrieb stromhungriger Peripherie wie schnellen M.2 NVMe SSDs und USB-3.0-Festplatten sind Stromversorgung und thermisches Management zentrale Systemfaktoren. Der Raspberry Pi 5 benötigt unter Volllast ein 27W USB-PD Netzteil (5,1V / 5,0A). Reicht die Stromstärke nicht aus, schlägt eine automatische Firmware-Schutzschaltung zu, die den Gesamtstrom für alle USB-Buchsen drastisch auf magere 600 mA drosselt. Dieser Leitfaden dekonstruiert die USB-PD-Aushandlung, zeigt wie man Spannungseinbrüche (Voltage Droop) verhindert, PoE+ (IEEE 802.3at) im Serverschrank einsetzt, USV-Akkus über I2C automatisiert und die Lüfterkurve des Active Coolers optimiert.

  • Das 27W USB-PD Protokoll


    Die maßgeschneiderte 5,1V / 5A Aushandlung verstehen und die 1,6A USB-Gesamtstromstärke per Firmware-Befehl freischalten.

  • IEEE 802.3at PoE+ HATs


    Gigabit-Netzwerk und 25W isolierte Gleichspannung über ein einziges Cat-6-Kabel direkt aus dem Enterprise-Switch einspeisen.

  • USV-Akku-Automatisierung


    18650 Li-Ionen-Akkus über I2C-Telemetrie überwachen und bei Stromausfall einen sauberen, automatisierten Shutdown auslösen.

  • Lüfterkurven & Kühlung


    Die 4-Pin PWM-Lüfterschwellen in /boot/firmware/config.txt feintunen und thermische Reserven mit stress-ng verifizieren.


1. Das 27W USB-PD Protokoll auf dem Raspberry Pi 5

Der Raspberry Pi 5 verfügt über einen modernen DA9091 Strommanagement-Chip (PMIC), der beim Anstecken über die CC-Leitungen des USB-C-Kabels mit dem Netzteil kommuniziert:

%%{init: {'flowchart': {'wrappingWidth': 350}}}%%
flowchart TB
    PSU["USB-PD 3.0 Netzteil"]
    PI_PMIC["Pi 5 DA9091 PMIC"]
    CHECK{"Wird 5V / 5A (27W) ausgehandelt?"}

    subgraph ModeFull["Offizielles 27W Leistungsprofil"]
        FULL["Volle Hardware-Freigabe<br/>USB-Gesamtstrom: 1,6 Ampere<br/>Alle 4 USB-Ports & NVMe voll versorgt"]
    end

    subgraph ModeLimited["Standard 15W Profil"]
        THROTTLE["Stromsparmodus aktiv<br/>Warnung: Unable to deliver 5A<br/>USB-Ports auf 600 mA gedeckelt"]
    end

    PSU <-->|"CC-Pins: PD-Aushandlung"| PI_PMIC
    PI_PMIC --> CHECK
    CHECK -->|"Ja (Offizielles 27W Netzteil)"| ModeFull
    CHECK -->|"Nein (Standard 15W Ladegerät)"| ModeLimited
    ModeFull --> ModeLimited

Das 5,0V / 5,0A USB-C Problem

Handelsübliche USB-PD-Netzteile für Notebooks liefern hohe Wattzahlen, indem sie die Spannung erhöhen (z. B. 9V/3A, 12V/3A, 20V/5A). Der Raspberry Pi benötigt am Stromeingang jedoch zwingend 5 Volt. Fast alle normalen 30W–65W Notebook-Netzteile liefern bei 5V aber nur maximal 3,0A (15W).

Um 27W bei 5V bereitzustellen, signalisiert das offizielle Raspberry Pi 27W USB-C Netzteil ein proprietäres PD-Profil mit 5,1V bei 5,0A.

Die 600-mA-Begrenzung per Firmware aufheben

Verwendet man ein sehr hochwertiges 15W–20W Netzteil und möchte externe USB-Festplatten oder eine NVMe-SSD betreiben, kann die künstliche 600-mA-Sperre in /boot/firmware/config.txt manuell außer Kraft gesetzt werden:

/boot/firmware/config.txt (Vollen USB-Strom erzwingen)
# Volle 1,6A USB-Stromstärke auch ohne 5A-Netzteilerkennung freigeben
usb_max_current_enable=1

Unterspannungs-Risiko bei usb_max_current_enable=1

Aktiviere diesen Parameter nur, wenn das Netzteil absolut laststabil ist und die Spannung unter Schreiblast niemals unter 4,63V absackt. Bricht die Spannung ein, drohen spontane Reboots und Dateisystem-Schäden!


2. Der Spannungsabfall im Kabel (Voltage Droop)

Jedes Kabel besitzt einen elektrischen Innenwiderstand. Fließt ein hoher Strom von 5 Ampere durch ein dünnes Kupferkabel, geht unterwegs wertvolle Spannung verloren:

Spannungsabfall (V_drop) = Strom (I) × Leitungswiderstand (R)

Bei 5 Ampere Stromfluss: - Ein billiges 1-Meter-Ladekabel mit dünnen 28 AWG Adern hat einen Gesamtwiderstand von ca. 0,4 Ω. Der Spannungsabfall beträgt: 5A × 0,4 Ω = 2,0V! Am Pi kommen nur noch unbrauchbare 3,1V an – sofortiger Absturz. - Ein hochwertiges Kabel mit dicken 20 AWG Adern hat lediglich ~0,04 Ω Widerstand. Der Abfall liegt bei unkritischen 0,2V.

%%{init: {'flowchart': {'wrappingWidth': 350}}}%%
flowchart TB
    PSU["Netzteil<br/>Liefert 5,10 V"]
    CABLE["1m dünnes Kabel (0,3 Ω Widerstand)<br/>Spannungsabfall: ~0,90 V"]
    BOARD["Pi USB-C Buchse<br/>Spannung bricht auf 4,20 V ein (< 4,63 V)<br/>Unterspannungs-Absturz!"]

    PSU --> CABLE
    CABLE --> BOARD

Kernspannung im laufenden Betrieb prüfen

Mit vcgencmd lässt sich die aktuelle Kernspannung direkt auslesen:

Kernspannung abfragen
vcgencmd measure_volts core

3. Power-over-Ethernet (IEEE 802.3at PoE+)

Im Server-Rack oder bei verteilten IoT-Gateways ist ein separates USB-C-Netzteil pro Rechner unpraktisch. Power-over-Ethernet (PoE) führt Strom und Gigabit-Netzwerk über ein einziges Netzwerkkabel zusammen:

%%{init: {'flowchart': {'wrappingWidth': 350}}}%%
flowchart TB
    SWITCH["PoE+ Switch im Serverschrank<br/>(IEEE 802.3at: 30W @ 48V DC)"]
    CABLE["Cat-6 Netzwerkkabel<br/>(Bis zu 100m, 48V + Gigabit-Daten)"]
    POE_HAT["Raspberry Pi PoE+ HAT<br/>(Schaltwandler 48V auf 5,1V)"]
    PI["Raspberry Pi 5 Platine<br/>(Stabile 5,1V / 4,5A Versorgung)"]

    SWITCH --> CABLE
    CABLE --> POE_HAT
    POE_HAT --> PI

Die PoE-Standards im Vergleich

PoE-Standard Switch-Leistung Verfügbar am Endgerät Empfohlener Einsatz
802.3af (Klassisches PoE) 15,4 W @ 48V ~12,95 W Raspberry Pi 3B+ (reicht für nackte Platine).
802.3at (PoE+) 30,0 W @ 48V ~25,5 W Raspberry Pi 4 & Pi 5 (inkl. NVMe-SSDs und USB-Last).
802.3bt (PoE++) 60W – 90W 51W – 71W Industrielle Multi-Kamera- und KI-Appliances.

Enterprise-Vorteil

Hängt der zentrale PoE-Switch im Serverraum an einer USV (Batterie-Puffer), sind automatisch alle angeschlossenen Raspberry Pis gegen Stromausfälle abgesichert – ganz ohne Batterien an den einzelnen Boards!


4. Unterbrechungsfreie Stromversorgung (USV) & Shutdown-Skript

Für Außenstationen und autarke Edge-Systeme sichert ein USV-HAT mit zwei 18650 Li-Ionen-Zellen den Betrieb bei Stromausfällen ab:

%%{init: {'flowchart': {'wrappingWidth': 600, 'subGraphTitleMargin': {'top': 15, 'bottom': 15}}}}%%
flowchart TB
    WALL["230V Steckdose"] --> CHG["USV-HAT Ladeschaltung"]
    BATT["2× 18650 Li-Ion Zellen (3,7V 3000mAh)"] <--> CHG
    CHG -->|"Gepufferte 5,1V Versorgung"| PI_SYS["Raspberry Pi System"]

    subgraph I2C_Telemetrie["I2C Telemetrie-Bus (0x36)"]
        GAUGE["MAX17048 Akkustand-Sensor"]
        DAEMON["Python Shutdown-Daemon"]
        GAUGE -.->|"Füllstand % & Spannung"| DAEMON
    end

    DAEMON -->|"Akkustand < 10%"| SHUTDOWN["sudo poweroff (Geordnet)"]

Produktions-Daemon zur Akkuüberwachung

Folgendes Python-Skript fragt einen gängigen MAX17048 Fuel-Gauge-Sensor über den I2C1-Bus (0x36) ab und leitet bei Erreichen der Reserve einen sauberen Shutdown ein:

/usr/local/bin/ups_battery_monitor.py
#!/usr/bin/env python3
"""USV-Akkuüberwachung und automatischer Notfall-Shutdown."""

import os
import sys
import time
import smbus2

I2C_BUS = 1
I2C_ADDR = 0x36  # I2C-Adresse des MAX17048 Sensors
SOC_REGISTER = 0x04  # Register für Ladestand in %
VOLTAGE_REGISTER = 0x02  # Register für Zellenspannung
SHUTDOWN_SCHWELLE_PROZENT = 10.0


def lies_akku_telemetrie():
    bus = smbus2.SMBus(I2C_BUS)
    try:
        # Ladestand in Prozent auslesen
        soc_raw = bus.read_word_data(I2C_ADDR, SOC_REGISTER)
        soc_bytes = [(soc_raw & 0xFF), (soc_raw >> 8)]
        soc = soc_bytes[0] + (soc_bytes[1] / 256.0)

        # Zellenspannung in Volt auslesen
        volt_raw = bus.read_word_data(I2C_ADDR, VOLTAGE_REGISTER)
        volt_bytes = [(volt_raw & 0xFF), (volt_raw >> 8)]
        spannung = ((volt_bytes[0] << 4) | (volt_bytes[1] >> 4)) * 1.25 / 1000.0

        return soc, spannung
    finally:
        bus.close()


def main():
    print("[USV-DIENST] Überwachung gestartet.")
    while True:
        try:
            soc, volt = lies_akku_telemetrie()
            print(f"[TELEMETRIE] Akkuladung: {soc:.1f}% | Spannung: {volt:.3f}V")

            if soc <= SHUTDOWN_SCHWELLE_PROZENT:
                print(f"[KRITISCH] Akkustand ({soc:.1f}%) unter Schwelle ({SHUTDOWN_SCHWELLE_PROZENT}%)!")
                print("[NOTFALL] Leite geordneten System-Shutdown ein, um die SD-Karte zu schützen...")
                os.system("sudo /usr/sbin/poweroff")
                sys.exit(0)

        except Exception as fehler:
            print(f"[WARNUNG] I2C-Abfrage fehlgeschlagen: {fehler}")

        time.sleep(30)


if __name__ == "__main__":
    main()

5. Aktive Kühlung & PWM-Lüfterkurven-Tuning

Der offizielle Raspberry Pi 5 Active Cooler nutzt einen 4-poligen PWM-Lüfter mit Drehzahlrückmeldung (Tachometer), der direkt auf den dedizierten FAN-Steckplatz der Platine passt:

Raspberry Pi 5 FAN-Anschluss:
[ Pin 1: GND (Schwarz) ] [ Pin 2: 5V (Rot) ] [ Pin 3: Tacho (Gelb) ] [ Pin 4: PWM (Blau) ]

Echtzeit-Temperatur und Lüfterstatus abfragen

Temperatur und Lüfterstufe ablesen
# 1. Temperatur in Milligrad Celsius abfragen (z.B. 48500 = 48,5 °C)
cat /sys/class/thermal/thermal_zone0/temp | awk '{printf "SoC-Temperatur: %.1f °C\n", $1/1000}'

# 2. Aktive Lüfterstufe abfragen (0 = Aus, 1 = Leise, 2 = Mittel, 3 = Schnell, 4 = Maximum)
cat /sys/class/thermal/cooling_device0/cur_state

Lüfterschwellen in /boot/firmware/config.txt anpassen

Standardmäßig bleibt der Lüfter bis 50°C vollkommen still. Für 24/7-Server unter Dauervollast empfiehlt sich ein aggressiveres Profil:

/boot/firmware/config.txt (Server-Kühlprofil)
# Stufe 0: Bei 45°C leise anlaufen (PWM-Wert 75 von 255)
dtparam=fan_temp0=45000
dtparam=fan_temp0_speed=75

# Stufe 1: Bei 55°C mittlere Drehzahl (PWM-Wert 125 von 255)
dtparam=fan_temp1=55000
dtparam=fan_temp1_speed=125

# Stufe 2: Bei 65°C hohe Drehzahl (PWM-Wert 175 von 255)
dtparam=fan_temp2=65000
dtparam=fan_temp2_speed=175

# Stufe 3: Bei 75°C volle 100 % Lüfterleistung zur Verhinderung von Throttling
dtparam=fan_temp3=75000
dtparam=fan_temp3_speed=255

Härtetest unter Volllast mit stress-ng

Prüfe die Kühlleistung unter 100 % Dauerlast auf allen 4 CPU-Kernen:

Stresstest durchführen
sudo apt install -y stress-ng
stress-ng --cpu 4 --cpu-method matrixprod --timeout 300s --metrics-brief

Nächste Schritte

Mit stabiler Stromversorgung und optimaler Kühlung steht dem Einsatz von High-Speed NVMe-SSDs über den PCIe-Port nichts mehr im Weg:

  • Nächstes Kapitel: Speicherarchitektur & PCIe NVMe Boot


    M.2 NVMe HATs montieren, PCIe Gen 3 Geschwindigkeiten freischalten, EEPROM-Boot-Order konfigurieren und ZRAM-Swap optimieren.

    Zum NVMe-Speicher