Raspberry Pi Pinout – Interaktives GPIO Board
Zuletzt aktualisiert: November 2026
Unser interaktives Raspberry Pi GPIO Pinout zeigt alle 40 GPIO-Pins auf einen Blick – klicke auf einen Pin für BCM-Nummer, Funktion und Codebeispiel. Das Layout ist bei Pi 3, Pi 4, Pi 5, Pi 400 und Zero 2 W identisch. Offizielle Referenz: raspberrypi.com/documentation/computers/raspberry-pi.html
👉 Klicke auf einen Pin, USB, Ethernet, WLAN, Bluetooth oder den Ein/Aus-Schalter für Details.
Nummerierung / Namensschemas der GPIO Pins
Die Nummerierung der GPIOs ist uneinheitlich und kann verwirrend sein – auch ich muss in eigenen Beiträgen immer wieder nachschauen, welche Angabe gemeint ist. Am einfachsten ist die physikalische Nummerierung, da sie unter allen Raspberry-Pi-Modellen gleich ist.
Die drei gängigen Nummerierungen
- Physikalische Nummerierung (Board) – Pin 1 ist der Pin mit dem quadratischen Lötpad auf der Rückseite des Raspberry Pi. Zählung von oben links nach unten rechts.
- BCM-Nummerierung – Bezeichnet die GPIO-Pins nach der Broadcom-SoC-Pinbelegung (z. B. GPIO2, GPIO3). Wird von Python-Bibliotheken wie
RPi.GPIOundgpiozeroverwendet. - WiringPi-Nummerierung – Eigenes Schema der WiringPi-Bibliothek, heute kaum noch relevant.
Empfehlung: Verwendet die BCM-Nummerierung – sie ist der Standard in aktuellen Tutorials und Bibliotheken.
Wichtig: Raspberry Pi 5
Beim Raspberry Pi 5 werden alle GPIO-Pins über den neuen RP1-I/O-Coprozessor gesteuert. Das physikalische 40-Pin-Layout ist identisch, das ursprüngliche RPi.GPIO läuft dort aber nicht. Alte Skripte mit import RPi.GPIO laufen meist über rpi-lgpio weiter, das Raspberry Pi OS seit Oktober 2024 mitbringt (auf älteren Installationen: sudo apt install python3-rpi-lgpio). Für neue Projekte nehmt ihr gpiozero oder lgpio. Auch beim Pi 5 gilt: Alle GPIO-Pins arbeiten mit 3,3-V-Logik und sind nicht 5V-tolerant.
USB-Ports
Die Anzahl und Geschwindigkeit der USB-Ports hängt vom Raspberry-Pi-Modell ab:
| Modell | USB-Ports |
|---|---|
| Raspberry Pi 5 | 2× USB 3.0 (5 Gbit/s) + 2× USB 2.0 |
| Raspberry Pi 4 Model B | 2× USB 3.0 (5 Gbit/s) + 2× USB 2.0 |
| Raspberry Pi 400 | 2× USB 3.0 + 1× USB 2.0 |
| Raspberry Pi 3 Model B+ | 4× USB 2.0 |
| Raspberry Pi Zero 2 W | 1× Micro-USB OTG (USB 2.0) |
Bei älteren Modellen (Pi 1–3) teilen sich USB-Controller und Ethernet-Port denselben Bus, was den Durchsatz begrenzt. Ab dem Pi 4 sind USB 3.0 und Gigabit-Ethernet vollständig getrennt.
Pro USB-Port sind Geräte mit bis zu 500 mA (USB 2.0) bzw. 900 mA (USB 3.0) vorgesehen. Für Festplatten ohne eigene Stromversorgung empfiehlt sich ein aktiver USB-Hub.
Ethernet-Port
Der Ethernet-Port ist modellabhängig:
| Modell | Ethernet |
|---|---|
| Raspberry Pi 5 | Gigabit Ethernet (echter Gbit, PoE+ mit HAT) |
| Raspberry Pi 4 Model B | Echter Gigabit Ethernet |
| Raspberry Pi 3 Model B+ | Gigabit Ethernet über USB 2.0 (max. ~300 Mbit/s) |
| Raspberry Pi 3 Model B | 100 Mbit/s Fast Ethernet |
| Raspberry Pi Zero 2 W | Kein Ethernet (nur WLAN) |
Ab dem Raspberry Pi 4 ist der Ethernet-Controller direkt an den PCIe-Bus angebunden – damit werden echte Gigabit-Geschwindigkeiten erreicht. Network Boot (Booten ohne SD-Karte über Netzwerk) ist ab Pi 3 möglich und bei Pi 4/5 standardmäßig aktiviert.
WLAN-Info
| Modell | WLAN | Bluetooth |
|---|---|---|
| Raspberry Pi 5 | Dual-Band 802.11ac (2,4 + 5 GHz) | Bluetooth 5.0 / BLE |
| Raspberry Pi 4 Model B | Dual-Band 802.11ac (2,4 + 5 GHz) | Bluetooth 5.0 / BLE |
| Raspberry Pi 3 Model B+ | Dual-Band 802.11ac (2,4 + 5 GHz) | Bluetooth 4.2 / BLE |
| Raspberry Pi 3 Model B | 2,4 GHz 802.11n | Bluetooth 4.1 |
| Raspberry Pi Zero 2 W | 2,4 GHz 802.11 b/g/n | Bluetooth 4.2 / BLE |
| Raspberry Pi Zero W | 2,4 GHz 802.11 b/g/n | Bluetooth 4.1 |
Tipp: Bei WLAN-Nutzung auf älteren Modellen (Pi 3) Bluetooth deaktivieren, da beide Module den gleichen Chip nutzen und sich gegenseitig beeinflussen können. Ab Pi 4 ist das kein Problem mehr.
Die Einrichtung des WLANs am Raspberry Pi ist in diesem Artikel beschrieben.
Bluetooth
Seit dem Raspberry Pi 3 ist Bluetooth inklusive Bluetooth Low Energy (BLE) fest an Bord – WLAN und Bluetooth teilen sich dabei einen gemeinsamen Funkchip samt Antenne.
| Modell | Bluetooth |
|---|---|
| Raspberry Pi 5 / Pi 500 | Bluetooth 5.0 / BLE |
| Raspberry Pi 4 Model B / Pi 400 | Bluetooth 5.0 / BLE |
| Raspberry Pi 3 Model B+ | Bluetooth 4.2 / BLE |
| Raspberry Pi 3 Model B | Bluetooth 4.1 |
| Raspberry Pi Zero 2 W | Bluetooth 4.2 / BLE |
| Raspberry Pi Zero W | Bluetooth 4.1 |
Bluetooth und die serielle Schnittstelle
Auf Pi 3 und Pi 4 belegt Bluetooth standardmäßig die schnelle Hardware-UART (PL011) – die serielle Schnittstelle an den Pins 8/10 läuft dann nur über die langsamere Mini-UART. Wer die GPIO-UART stabil braucht (z. B. für GPS-Module), kann Bluetooth mit dtoverlay=disable-bt in der config.txt deaktivieren. Beim Raspberry Pi 5 besteht das Problem nicht mehr, da der RP1-Controller eigene UARTs bereitstellt.
Geräte koppelt ihr am einfachsten über das Bluetooth-Menü des Desktops oder im Terminal mit bluetoothctl. Die Einrichtung ist in diesem Artikel beschrieben.
Pin 1 – 3,3V Spannungsversorgung
Spannung: 3,3VTyp: VersorgungMax. Strom: 50mA gesamt
Der physikalische Pin 1 liefert eine konstante Spannung von 3,3V, gespeist vom internen Spannungsregler des Raspberry Pi. Die maximale Belastung pro Pin betraegt 16 mA. Werden mehrere 3,3V-Pins gleichzeitig genutzt, darf die Gesamtbelastung ueber alle 3,3V-GPIOs 50 mA nicht ueberschreiten. Zwillings-Pin mit gleicher Funktion: Pin 17. Den Pin 1 erkennt man immer am quadratischen Loetpad auf der Platinenrueckseite.
Typische Verwendung
- Versorgung von 3,3V-Sensoren (BME280, DHT22, OLED-Displays)
- Referenzspannung fuer Pegelwandler (3,3V auf 5V)
- Versorgung von Mikrocontrollern (Arduino Pro Mini 3,3V)
Achtung: Zu hohe Stromabnahme kann die 3,3V-Schiene destabilisieren und den Pi zum Absturz bringen. Keine kurzschlussfeste Absicherung vorhanden.
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 2 – 5V Spannungsversorgung
Spannung: 5VTyp: VersorgungStrom: PSU-abhaengig
Der physikalische Pin 2 ist direkt mit der 5V-Versorgungsleitung des Raspberry Pi verbunden. Die Spannung kommt ungefiltert vom Netzteil. Zwillings-Pin: Pin 4.
Der verfuegbare Strom haengt vom Netzteil ab. Ein offizielles Raspberry Pi 5 Netzteil (27W USB-C) liefert bis zu 5A. Fuer angeschlossene Verbraucher sollte ein Reserve von mindestens 500 mA fuer den Pi selbst einkalkuliert werden.
Typische Verwendung
- Versorgung von 5V-Geraeten (Luefter, 5V-Relais, Servo-Treiber)
- Einspeisung einer externen 5V-Quelle (statt USB-Versorgung)
- Versorgung von Pegelwandlern (5V-Seite)
Achtung: GPIO-Pins sind nur fuer 3,3V ausgelegt. Niemals 5V direkt an GPIO-Pins anlegen!
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 3 – BCM 2 (GPIO2) – I2C Bus 1 SDA (Datenleitung)
Phys. Pin: 3BCM: 2Typ: I2C SDABus: 1
Der physikalische Pin 3 (BCM GPIO2) ist die Datenleitung (SDA) des I2C-Bus 1. I2C (Inter-Integrated Circuit) ist ein 2-Draht-Seriellbus, bei dem Daten synchron zwischen einem Master (Raspberry Pi) und mehreren Slaves (Sensoren, Displays) uebertragen werden. Beide Leitungen benoetigen Pull-Up-Widerstaende (typisch 4,7 kOhm – viele Module haben diese bereits integriert).
I2C aktivieren: sudo raspi-config → Interfacing Options → I2C → Enable, dann neu starten.
Angeschlossene Geraete anzeigen:
i2cdetect -y 1Python-Codebeispiel (smbus2)
import smbus2
bus = smbus2.SMBus(1) # I2C-Bus 1
addr = 0x76 # Beispiel: BME280
# Register lesen
value = bus.read_byte_data(addr, 0xD0)
print(f"Chip-ID: {value:#x}")
bus.close()Typische Verwendung
- Temperatur-/Luftdruck-Sensoren (BME280, BMP180, BMP280)
- OLED-Displays (SSD1306)
- Echtzeituhr-Module (DS3231)
- A/D-Wandler (ADS1115)
- GPIO-Expander (MCP23017)
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | SDA1 | SA3 | LCD_VSYNC | AVEOUT_VSYNC | AVEIN_VSYNC | – |
| Pi 4, 400 | SDA1 | SA3 | LCD_VSYNC | SPI3_MOSI | CTS2 | SDA3 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 2 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SPI0_CE3 | DPI_VSYNC | CTS1 | SDA1 | IR_RX0 | SPI2_SIO0 |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 4 – 5V Spannungsversorgung
Spannung: 5VTyp: VersorgungStrom: PSU-abhaengig
Der physikalische Pin 4 ist direkt mit der 5V-Versorgungsleitung des Raspberry Pi verbunden. Die Spannung kommt ungefiltert vom Netzteil. Zwillings-Pin: Pin 2.
Der verfuegbare Strom haengt vom Netzteil ab. Ein offizielles Raspberry Pi 5 Netzteil (27W USB-C) liefert bis zu 5A. Fuer angeschlossene Verbraucher sollte ein Reserve von mindestens 500 mA fuer den Pi selbst einkalkuliert werden.
Typische Verwendung
- Versorgung von 5V-Geraeten (Luefter, 5V-Relais, Servo-Treiber)
- Einspeisung einer externen 5V-Quelle (statt USB-Versorgung)
- Versorgung von Pegelwandlern (5V-Seite)
Achtung: GPIO-Pins sind nur fuer 3,3V ausgelegt. Niemals 5V direkt an GPIO-Pins anlegen!
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 5 – BCM 3 (GPIO3) – I2C Bus 1 SCL (Taktleitung)
Phys. Pin: 5BCM: 3Typ: I2C SCLBus: 1
Der physikalische Pin 5 (BCM GPIO3) ist die Taktleitung (SCL) des I2C-Bus 1. I2C (Inter-Integrated Circuit) ist ein 2-Draht-Seriellbus, bei dem Daten synchron zwischen einem Master (Raspberry Pi) und mehreren Slaves (Sensoren, Displays) uebertragen werden. Beide Leitungen benoetigen Pull-Up-Widerstaende (typisch 4,7 kOhm – viele Module haben diese bereits integriert).
I2C aktivieren: sudo raspi-config → Interfacing Options → I2C → Enable, dann neu starten.
Angeschlossene Geraete anzeigen:
i2cdetect -y 1Python-Codebeispiel (smbus2)
import smbus2
bus = smbus2.SMBus(1) # I2C-Bus 1
addr = 0x76 # Beispiel: BME280
# Register lesen
value = bus.read_byte_data(addr, 0xD0)
print(f"Chip-ID: {value:#x}")
bus.close()Typische Verwendung
- Temperatur-/Luftdruck-Sensoren (BME280, BMP180, BMP280)
- OLED-Displays (SSD1306)
- Echtzeituhr-Module (DS3231)
- A/D-Wandler (ADS1115)
- GPIO-Expander (MCP23017)
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | SCL1 | SA2 | LCD_HSYNC | AVEOUT_HSYNC | AVEIN_HSYNC | – |
| Pi 4, 400 | SCL1 | SA2 | LCD_HSYNC | SPI3_SCLK | RTS2 | SCL3 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 3 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SPI0_CE2 | DPI_HSYNC | RTS1 | SCL1 | IR_TX0 | SPI2_SCLK |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 6 – Ground (GND / Masse)
Spannung: 0V / GNDTyp: Masse
Der physikalische Pin 6 ist ein Masse-Pin (Ground, GND). Er bildet das gemeinsame Bezugspotenzial fuer alle Schaltungen am Raspberry Pi. Das 40-Pin-Header besitzt insgesamt 8 Ground-Pins (Pins 6, 9, 14, 20, 25, 30, 34, 39).
Tipps
- Bei mehreren Sensoren je einen eigenen GND-Pin verwenden (vermeidet Spannungsabfaelle)
- GND-Pin und Signalpin moeglichst nahe beieinander belegen (kurze Leitungen = weniger Stoereinstrahlung)
- Bei Motortreibern einen separaten GND fuer die Lastseite vorsehen
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 7 – BCM 4 (GPIO4) – GPCLK0 (General Purpose Clock)
Phys. Pin: 7BCM: 4Typ: GPIO / GPCLKFrequenz (Pi 1–4): bis ca. 125MHz
Der physikalische Pin 7 (BCM GPIO4) ist im Standardmodus ein freier GPIO. Im ALT0-Modus steht er als General Purpose Clock 0 (GPCLK0) zur Verfuegung und erzeugt ein Hardware-Taktsignal ohne CPU-Last. Beim Pi 1 bis 3 lässt sich die Frequenz ab ca. 4,7 kHz einstellen, beim Pi 4 ab ca. 13 kHz. Als Obergrenze nennt das Datenblatt ca. 125 MHz, an stark belasteten Pins weniger. Am Pi 5 erzeugt der RP1-Chip den Takt, GPCLK0 ist dort die Funktion a0.
Hinweis zu pigpio
Frühere Anleitungen erzeugen den Takt mit pigpio. Das läuft auf dem Raspberry Pi 5 nicht, und auf aktuellem Raspberry Pi OS gibt es den pigpio-Dienst nicht mehr als Paket.
Typische Verwendung
- Taktsignal fuer externe ICs (Ethernet-Controller, Audiocodecs)
- Frequenzgenerator / Testsignal
- Synchronisation externer Schaltungen
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | GPCLK0 | SA1 | DPI_D0 | AVEOUT_VID0 | AVEIN_VID0 | ARM_TDI |
| Pi 4, 400 | GPCLK0 | SA1 | DPI_D0 | SPI4_CE0_N | TXD3 | SDA3 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 4 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | GPCLK0 | DPI_D0 | TXD2 | SDA2 | RI0 | SPI3_CE0 |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 8 – BCM 14 (GPIO14) – UART TXD0 (Sendeleitung)
Phys. Pin: 8BCM: 14Typ: UART TXD0Pegel: 3,3V
Der physikalische Pin 8 (BCM GPIO14) ist die Sendeleitung (TXD0) der primaeren UART-Schnittstelle. UART (Universal Asynchronous Receiver Transmitter) uebertraegt Daten seriell ohne separates Taktsignal. Typische Baudrate: 115200 baud. Der Pegel betraegt 3,3V – fuer Verbindungen mit 5V-Systemen (Arduino) ist ein Pegelwandler noetig.
UART aktivieren: In /boot/firmware/config.txt (Pi 5) bzw. /boot/config.txt (Pi 4) am Ende hinzufuegen: enable_uart=1
In /boot/cmdline.txt den Eintrag console=serial0,115200 entfernen, damit die Linux-Konsole den Port nicht blockiert. Danach neu starten.
Python-Codebeispiel (pyserial)
import serial
ser = serial.Serial("/dev/serial0", baudrate=115200, timeout=1)
ser.write(b"Hallo vom Raspberry Pi!n")
line = ser.readline()
print(line.decode("utf-8", errors="replace"))
ser.close()Typische Verwendung
- Serielles Terminal / Debug-Konsole (USB-UART-Adapter)
- Kommunikation mit Arduino, ESP32, GPS-Modulen
- Ansteuerung von Bluetooth-Modulen (HC-05/06)
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | TXD0 | SD6 | DPI_D10 | AVEOUT_VID10 | AVEIN_VID10 | TXD1 |
| Pi 4, 400 | TXD0 | SD6 | DPI_D10 | SPI5_MOSI | CTS5 | TXD1 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 14 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | PWM0_CHAN2 | DPI_D10 | CTS4 | SDA3 | TXD0 | SPI5_SIO0 |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 9 – Ground (GND / Masse)
Spannung: 0V / GNDTyp: Masse
Der physikalische Pin 9 ist ein Masse-Pin (Ground, GND). Er bildet das gemeinsame Bezugspotenzial fuer alle Schaltungen am Raspberry Pi. Das 40-Pin-Header besitzt insgesamt 8 Ground-Pins (Pins 6, 9, 14, 20, 25, 30, 34, 39).
Tipps
- Bei mehreren Sensoren je einen eigenen GND-Pin verwenden (vermeidet Spannungsabfaelle)
- GND-Pin und Signalpin moeglichst nahe beieinander belegen (kurze Leitungen = weniger Stoereinstrahlung)
- Bei Motortreibern einen separaten GND fuer die Lastseite vorsehen
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 10 – BCM 15 (GPIO15) – UART RXD0 (Empfangsleitung)
Phys. Pin: 10BCM: 15Typ: UART RXD0Pegel: 3,3V
Der physikalische Pin 10 (BCM GPIO15) ist die Empfangsleitung (RXD0) der primaeren UART-Schnittstelle. UART (Universal Asynchronous Receiver Transmitter) uebertraegt Daten seriell ohne separates Taktsignal. Typische Baudrate: 115200 baud. Der Pegel betraegt 3,3V – fuer Verbindungen mit 5V-Systemen (Arduino) ist ein Pegelwandler noetig.
UART aktivieren: In /boot/firmware/config.txt (Pi 5) bzw. /boot/config.txt (Pi 4) am Ende hinzufuegen: enable_uart=1
In /boot/cmdline.txt den Eintrag console=serial0,115200 entfernen, damit die Linux-Konsole den Port nicht blockiert. Danach neu starten.
Python-Codebeispiel (pyserial)
import serial
ser = serial.Serial("/dev/serial0", baudrate=115200, timeout=1)
ser.write(b"Hallo vom Raspberry Pi!n")
line = ser.readline()
print(line.decode("utf-8", errors="replace"))
ser.close()Typische Verwendung
- Serielles Terminal / Debug-Konsole (USB-UART-Adapter)
- Kommunikation mit Arduino, ESP32, GPS-Modulen
- Ansteuerung von Bluetooth-Modulen (HC-05/06)
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | RXD0 | SD7 | DPI_D11 | AVEOUT_VID11 | AVEIN_VID11 | RXD1 |
| Pi 4, 400 | RXD0 | SD7 | DPI_D11 | SPI5_SCLK | RTS5 | RXD1 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 15 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | PWM0_CHAN3 | DPI_D11 | RTS4 | SCL3 | RXD0 | SPI5_SCLK |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 11 – BCM 17 (GPIO17)
Phys. Pin: 11BCM: 17Typ: GPIOPegel: 3,3V
Der physikalische Pin 11 entspricht dem BCM GPIO17. Er ist ein frei konfigurierbarer General Purpose I/O-Pin und kann per Software als Eingang (Input) oder Ausgang (Output) betrieben werden. Der Logikpegel betraegt 3,3V (HIGH) bzw. 0V (LOW). Der Pin unterstuetzt interne konfigurierbare Pull-Up- und Pull-Down-Widerstaende. Im ALT3-Modus als UART0 RTS0, im ALT4-Modus als SPI1 CE1 nutzbar.
Raspberry Pi 5: Auf dem Pi 5 uebernimmt der RP1-Chip die GPIO-Steuerung. Das ursprüngliche RPi.GPIO läuft dort nicht. Alter Code mit import RPi.GPIO läuft meist über rpi-lgpio, das Raspberry Pi OS seit Oktober 2024 mitbringt (sonst sudo apt install python3-rpi-lgpio). Für neuen Code gpiozero oder lgpio verwenden.
Python-Codebeispiel
import lgpio # alle Modelle inkl. Pi 5
# oder: import RPi.GPIO as GPIO # am Pi 5 ueber rpi-lgpio
h = lgpio.gpiochip_open(0)
lgpio.gpio_claim_output(h, 17) # BCM 17 als Ausgang
lgpio.gpio_write(h, 17, 1) # HIGH (3,3V)
lgpio.gpio_write(h, 17, 0) # LOW (0V)
lgpio.gpiochip_close(h)Typische Verwendung
- LED oder Relais schalten
- Taster einlesen
- Digitales Signal senden
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | FL1 | SD9 | DPI_D13 | RTS0 | SPI1_CE1_N | RTS1 |
| Pi 4, 400 | – | SD9 | DPI_D13 | RTS0 | SPI1_CE1_N | RTS1 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 17 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SPI1_CE1 | DPI_D13 | DSI1_TE_EXT | – | RTS0 | – |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 12 – BCM 18 (GPIO18) – PWM0
Phys. Pin: 12BCM: 18Typ: GPIO / PWMHW-PWM: Kanal 0 (Pi 5: 2)
Der physikalische Pin 12 (BCM GPIO18) unterstuetzt neben der normalen GPIO-Funktion auch Hardware-PWM (Kanal 0, am Pi 5 Kanal 2). Pulsweitenmodulation (PWM) erzeugt ein Rechtecksignal mit variabler Einschaltdauer (Duty Cycle). Hardware-PWM wird direkt vom internen Timer-Block generiert und verursacht keine CPU-Last.
Python-Codebeispiel (Software-PWM via lgpio)
import lgpio, time
h = lgpio.gpiochip_open(0)
lgpio.gpio_claim_output(h, 18)
# Software-PWM: Frequenz 50 Hz, Duty Cycle 50%
lgpio.tx_pwm(h, 18, 50, 50)
time.sleep(2)
lgpio.tx_pwm(h, 18, 50, 0) # Stoppen
lgpio.gpiochip_close(h)Typische Verwendung
- RC-Servo ansteuern (50 Hz, 1-2 ms Pulsbreite)
- LED-Helligkeit dimmen
- Luefterdrehzahl regeln
- Audioausgabe (Low-Budget DAC)
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | PCM_CLK | SD10 | DPI_D14 | I2CSL_SDA_MOSI | SPI1_CE0_N | PWM0 |
| Pi 4, 400 | PCM_CLK | SD10 | DPI_D14 | SPI6_CE0_N | SPI1_CE0_N | PWM0_0 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 18 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SPI1_CE0 | DPI_D14 | I2S0_SCLK | PWM0_CHAN2 | I2S1_SCLK | GPCLK1 |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 13 – BCM 27 (GPIO27)
Phys. Pin: 13BCM: 27Typ: GPIOPegel: 3,3V
Der physikalische Pin 13 entspricht dem BCM GPIO27. Er ist ein frei konfigurierbarer General Purpose I/O-Pin und kann per Software als Eingang (Input) oder Ausgang (Output) betrieben werden. Der Logikpegel betraegt 3,3V (HIGH) bzw. 0V (LOW). Der Pin unterstuetzt interne konfigurierbare Pull-Up- und Pull-Down-Widerstaende.
Raspberry Pi 5: Auf dem Pi 5 uebernimmt der RP1-Chip die GPIO-Steuerung. Das ursprüngliche RPi.GPIO läuft dort nicht. Alter Code mit import RPi.GPIO läuft meist über rpi-lgpio, das Raspberry Pi OS seit Oktober 2024 mitbringt (sonst sudo apt install python3-rpi-lgpio). Für neuen Code gpiozero oder lgpio verwenden.
Python-Codebeispiel
import lgpio # alle Modelle inkl. Pi 5
# oder: import RPi.GPIO as GPIO # am Pi 5 ueber rpi-lgpio
h = lgpio.gpiochip_open(0)
lgpio.gpio_claim_output(h, 27) # BCM 27 als Ausgang
lgpio.gpio_write(h, 27, 1) # HIGH (3,3V)
lgpio.gpio_write(h, 27, 0) # LOW (0V)
lgpio.gpiochip_close(h)Typische Verwendung
- Allgemeiner GPIO
- LED / Buzzer steuern
- Taster / Sensor einlesen
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | SD0_DAT3 | TE1 | DPI_D23 | SD1_DAT3 | ARM_TMS | – |
| Pi 4, 400 | SD0_DAT3 | – | DPI_D23 | SD1_DAT3 | ARM_TMS | SPI6_CE1_N |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 27 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SD0_DAT3 | DPI_D23 | I2S0_SDO3 | MIC_DAT1 | I2S1_SDO3 | SPI1_CE1 |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 14 – Ground (GND / Masse)
Spannung: 0V / GNDTyp: Masse
Der physikalische Pin 14 ist ein Masse-Pin (Ground, GND). Er bildet das gemeinsame Bezugspotenzial fuer alle Schaltungen am Raspberry Pi. Das 40-Pin-Header besitzt insgesamt 8 Ground-Pins (Pins 6, 9, 14, 20, 25, 30, 34, 39).
Tipps
- Bei mehreren Sensoren je einen eigenen GND-Pin verwenden (vermeidet Spannungsabfaelle)
- GND-Pin und Signalpin moeglichst nahe beieinander belegen (kurze Leitungen = weniger Stoereinstrahlung)
- Bei Motortreibern einen separaten GND fuer die Lastseite vorsehen
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 15 – BCM 22 (GPIO22)
Phys. Pin: 15BCM: 22Typ: GPIOPegel: 3,3V
Der physikalische Pin 15 entspricht dem BCM GPIO22. Er ist ein frei konfigurierbarer General Purpose I/O-Pin und kann per Software als Eingang (Input) oder Ausgang (Output) betrieben werden. Der Logikpegel betraegt 3,3V (HIGH) bzw. 0V (LOW). Der Pin unterstuetzt interne konfigurierbare Pull-Up- und Pull-Down-Widerstaende.
Raspberry Pi 5: Auf dem Pi 5 uebernimmt der RP1-Chip die GPIO-Steuerung. Das ursprüngliche RPi.GPIO läuft dort nicht. Alter Code mit import RPi.GPIO läuft meist über rpi-lgpio, das Raspberry Pi OS seit Oktober 2024 mitbringt (sonst sudo apt install python3-rpi-lgpio). Für neuen Code gpiozero oder lgpio verwenden.
Python-Codebeispiel
import lgpio # alle Modelle inkl. Pi 5
# oder: import RPi.GPIO as GPIO # am Pi 5 ueber rpi-lgpio
h = lgpio.gpiochip_open(0)
lgpio.gpio_claim_output(h, 22) # BCM 22 als Ausgang
lgpio.gpio_write(h, 22, 1) # HIGH (3,3V)
lgpio.gpio_write(h, 22, 0) # LOW (0V)
lgpio.gpiochip_close(h)Typische Verwendung
- Allgemeiner GPIO
- Schaltausgang
- Interrupt-Eingang
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | SD0_CLK | SD14 | DPI_D18 | SD1_CLK | ARM_TRST | – |
| Pi 4, 400 | SD0_CLK | SD14 | DPI_D18 | SD1_CLK | ARM_TRST | SDA6 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 22 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SD0_CLK | DPI_D18 | I2S0_SDI1 | SDA3 | I2S1_SDI1 | – |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 16 – BCM 23 (GPIO23)
Phys. Pin: 16BCM: 23Typ: GPIOPegel: 3,3V
Der physikalische Pin 16 entspricht dem BCM GPIO23. Er ist ein frei konfigurierbarer General Purpose I/O-Pin und kann per Software als Eingang (Input) oder Ausgang (Output) betrieben werden. Der Logikpegel betraegt 3,3V (HIGH) bzw. 0V (LOW). Der Pin unterstuetzt interne konfigurierbare Pull-Up- und Pull-Down-Widerstaende.
Raspberry Pi 5: Auf dem Pi 5 uebernimmt der RP1-Chip die GPIO-Steuerung. Das ursprüngliche RPi.GPIO läuft dort nicht. Alter Code mit import RPi.GPIO läuft meist über rpi-lgpio, das Raspberry Pi OS seit Oktober 2024 mitbringt (sonst sudo apt install python3-rpi-lgpio). Für neuen Code gpiozero oder lgpio verwenden.
Python-Codebeispiel
import lgpio # alle Modelle inkl. Pi 5
# oder: import RPi.GPIO as GPIO # am Pi 5 ueber rpi-lgpio
h = lgpio.gpiochip_open(0)
lgpio.gpio_claim_output(h, 23) # BCM 23 als Ausgang
lgpio.gpio_write(h, 23, 1) # HIGH (3,3V)
lgpio.gpio_write(h, 23, 0) # LOW (0V)
lgpio.gpiochip_close(h)Typische Verwendung
- Allgemeiner GPIO
- LED-Steuerung
- Tastersignal einlesen
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | SD0_CMD | SD15 | DPI_D19 | SD1_CMD | ARM_RTCK | – |
| Pi 4, 400 | SD0_CMD | SD15 | DPI_D19 | SD1_CMD | ARM_RTCK | SCL6 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 23 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SD0_CMD | DPI_D19 | I2S0_SDO1 | SCL3 | I2S1_SDO1 | – |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 17 – 3,3V Spannungsversorgung
Spannung: 3,3VTyp: VersorgungMax. Strom: 50mA gesamt
Der physikalische Pin 17 liefert eine konstante Spannung von 3,3V, gespeist vom internen Spannungsregler des Raspberry Pi. Die maximale Belastung pro Pin betraegt 16 mA. Werden mehrere 3,3V-Pins gleichzeitig genutzt, darf die Gesamtbelastung ueber alle 3,3V-GPIOs 50 mA nicht ueberschreiten. Zwillings-Pin mit gleicher Funktion: Pin 1.
Typische Verwendung
- Versorgung von 3,3V-Sensoren (BME280, DHT22, OLED-Displays)
- Referenzspannung fuer Pegelwandler (3,3V auf 5V)
- Versorgung von Mikrocontrollern (Arduino Pro Mini 3,3V)
Achtung: Zu hohe Stromabnahme kann die 3,3V-Schiene destabilisieren und den Pi zum Absturz bringen. Keine kurzschlussfeste Absicherung vorhanden.
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 18 – BCM 24 (GPIO24)
Phys. Pin: 18BCM: 24Typ: GPIOPegel: 3,3V
Der physikalische Pin 18 entspricht dem BCM GPIO24. Er ist ein frei konfigurierbarer General Purpose I/O-Pin und kann per Software als Eingang (Input) oder Ausgang (Output) betrieben werden. Der Logikpegel betraegt 3,3V (HIGH) bzw. 0V (LOW). Der Pin unterstuetzt interne konfigurierbare Pull-Up- und Pull-Down-Widerstaende.
Raspberry Pi 5: Auf dem Pi 5 uebernimmt der RP1-Chip die GPIO-Steuerung. Das ursprüngliche RPi.GPIO läuft dort nicht. Alter Code mit import RPi.GPIO läuft meist über rpi-lgpio, das Raspberry Pi OS seit Oktober 2024 mitbringt (sonst sudo apt install python3-rpi-lgpio). Für neuen Code gpiozero oder lgpio verwenden.
Python-Codebeispiel
import lgpio # alle Modelle inkl. Pi 5
# oder: import RPi.GPIO as GPIO # am Pi 5 ueber rpi-lgpio
h = lgpio.gpiochip_open(0)
lgpio.gpio_claim_output(h, 24) # BCM 24 als Ausgang
lgpio.gpio_write(h, 24, 1) # HIGH (3,3V)
lgpio.gpio_write(h, 24, 0) # LOW (0V)
lgpio.gpiochip_close(h)Typische Verwendung
- Allgemeiner GPIO
- HC-SR04 Echo-Pin
- Tastersignal einlesen
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | SD0_DAT0 | SD16 | DPI_D20 | SD1_DAT0 | ARM_TDO | – |
| Pi 4, 400 | SD0_DAT0 | SD16 | DPI_D20 | SD1_DAT0 | ARM_TDO | SPI3_CE1_N |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 24 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SD0_DAT0 | DPI_D20 | I2S0_SDI2 | – | I2S1_SDI2 | SPI2_CE1 |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 19 – BCM 10 (GPIO10) – SPI0 MOSI (Master-Out Slave-In)
Phys. Pin: 19BCM: 10Typ: SPI0 MOSIBus: 0
Der physikalische Pin 19 (BCM GPIO10) ist die Master-Out Slave-In (MOSI) des SPI-Bus 0. SPI (Serial Peripheral Interface) ist ein synchrones 4-Draht-Seriellprotokoll nach dem Master-Slave-Prinzip mit hohen Datentransferraten (bis zu mehreren MHz). Im Gegensatz zu I2C benoetigt jedes SPI-Geraet eine eigene Chip-Enable-Leitung (CE).
SPI aktivieren: sudo raspi-config → Interfacing Options → SPI → Enable, dann neu starten.
SPI-Leitungen im Ueberblick
- MOSI (Pin 19 / 38) – Master sendet, Slave empfaengt
- MISO (Pin 21 / 35) – Slave sendet, Master empfaengt
- SCLK (Pin 23 / 40) – Taktsignal vom Master
- CE0/CE1/CE2 (Pin 24 / 26 / 36) – Chip-Enable (Slave-Auswahl)
Python-Codebeispiel (spidev)
import spidev
spi = spidev.SpiDev()
spi.open(0, 0) # Bus 0, CE0
spi.max_speed_hz = 1000000
# Byte senden und gleichzeitig empfangen
response = spi.xfer2([0x01, 0x80, 0x00])
print(f"Antwort: {response}")
spi.close()Typische Verwendung
- SPI-Displays (ILI9341, ST7789)
- A/D-Wandler (MCP3008)
- RFID-Module (RC522)
- Beschleunigungssensoren (MPU6000)
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | SPI0_MOSI | SD2 | DPI_D6 | AVEOUT_VID6 | AVEIN_VID6 | – |
| Pi 4, 400 | SPI0_MOSI | SD2 | DPI_D6 | I2CSL_SDA_MOSI | CTS4 | SDA5 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 10 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SPI0_MOSI | DPI_D6 | CTS3 | SDA1 | – | SPI4_SIO1 |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 20 – Ground (GND / Masse)
Spannung: 0V / GNDTyp: Masse
Der physikalische Pin 20 ist ein Masse-Pin (Ground, GND). Er bildet das gemeinsame Bezugspotenzial fuer alle Schaltungen am Raspberry Pi. Das 40-Pin-Header besitzt insgesamt 8 Ground-Pins (Pins 6, 9, 14, 20, 25, 30, 34, 39).
Tipps
- Bei mehreren Sensoren je einen eigenen GND-Pin verwenden (vermeidet Spannungsabfaelle)
- GND-Pin und Signalpin moeglichst nahe beieinander belegen (kurze Leitungen = weniger Stoereinstrahlung)
- Bei Motortreibern einen separaten GND fuer die Lastseite vorsehen
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 21 – BCM 9 (GPIO9) – SPI0 MISO (Master-In Slave-Out)
Phys. Pin: 21BCM: 9Typ: SPI0 MISOBus: 0
Der physikalische Pin 21 (BCM GPIO9) ist die Master-In Slave-Out (MISO) des SPI-Bus 0. SPI (Serial Peripheral Interface) ist ein synchrones 4-Draht-Seriellprotokoll nach dem Master-Slave-Prinzip mit hohen Datentransferraten (bis zu mehreren MHz). Im Gegensatz zu I2C benoetigt jedes SPI-Geraet eine eigene Chip-Enable-Leitung (CE).
SPI aktivieren: sudo raspi-config → Interfacing Options → SPI → Enable, dann neu starten.
SPI-Leitungen im Ueberblick
- MOSI (Pin 19 / 38) – Master sendet, Slave empfaengt
- MISO (Pin 21 / 35) – Slave sendet, Master empfaengt
- SCLK (Pin 23 / 40) – Taktsignal vom Master
- CE0/CE1/CE2 (Pin 24 / 26 / 36) – Chip-Enable (Slave-Auswahl)
Python-Codebeispiel (spidev)
import spidev
spi = spidev.SpiDev()
spi.open(0, 0) # Bus 0, CE0
spi.max_speed_hz = 1000000
# Byte senden und gleichzeitig empfangen
response = spi.xfer2([0x01, 0x80, 0x00])
print(f"Antwort: {response}")
spi.close()Typische Verwendung
- SPI-Displays (ILI9341, ST7789)
- A/D-Wandler (MCP3008)
- RFID-Module (RC522)
- Beschleunigungssensoren (MPU6000)
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | SPI0_MISO | SD1 | DPI_D5 | AVEOUT_VID5 | AVEIN_VID5 | – |
| Pi 4, 400 | SPI0_MISO | SD1 | DPI_D5 | I2CSL_SDI_MISO | RXD4 | SCL4 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 9 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SPI0_MISO | DPI_D5 | RXD3 | SCL0 | – | SPI4_SIO0 |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 22 – BCM 25 (GPIO25)
Phys. Pin: 22BCM: 25Typ: GPIOPegel: 3,3V
Der physikalische Pin 22 entspricht dem BCM GPIO25. Er ist ein frei konfigurierbarer General Purpose I/O-Pin und kann per Software als Eingang (Input) oder Ausgang (Output) betrieben werden. Der Logikpegel betraegt 3,3V (HIGH) bzw. 0V (LOW). Der Pin unterstuetzt interne konfigurierbare Pull-Up- und Pull-Down-Widerstaende.
Raspberry Pi 5: Auf dem Pi 5 uebernimmt der RP1-Chip die GPIO-Steuerung. Das ursprüngliche RPi.GPIO läuft dort nicht. Alter Code mit import RPi.GPIO läuft meist über rpi-lgpio, das Raspberry Pi OS seit Oktober 2024 mitbringt (sonst sudo apt install python3-rpi-lgpio). Für neuen Code gpiozero oder lgpio verwenden.
Python-Codebeispiel
import lgpio # alle Modelle inkl. Pi 5
# oder: import RPi.GPIO as GPIO # am Pi 5 ueber rpi-lgpio
h = lgpio.gpiochip_open(0)
lgpio.gpio_claim_output(h, 25) # BCM 25 als Ausgang
lgpio.gpio_write(h, 25, 1) # HIGH (3,3V)
lgpio.gpio_write(h, 25, 0) # LOW (0V)
lgpio.gpiochip_close(h)Typische Verwendung
- Allgemeiner GPIO
- Reset-Signal fuer externe Chips
- LED-Indikator
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | SD0_DAT1 | SD17 | DPI_D21 | SD1_DAT1 | ARM_TCK | – |
| Pi 4, 400 | SD0_DAT1 | SD17 | DPI_D21 | SD1_DAT1 | ARM_TCK | SPI4_CE1_N |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 25 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SD0_DAT1 | DPI_D21 | I2S0_SDO2 | MIC_CLK | I2S1_SDO2 | SPI3_CE1 |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 23 – BCM 11 (GPIO11) – SPI0 SCLK (Taktsignal)
Phys. Pin: 23BCM: 11Typ: SPI0 SCLKBus: 0
Der physikalische Pin 23 (BCM GPIO11) ist die Taktsignal (SCLK) des SPI-Bus 0. SPI (Serial Peripheral Interface) ist ein synchrones 4-Draht-Seriellprotokoll nach dem Master-Slave-Prinzip mit hohen Datentransferraten (bis zu mehreren MHz). Im Gegensatz zu I2C benoetigt jedes SPI-Geraet eine eigene Chip-Enable-Leitung (CE).
SPI aktivieren: sudo raspi-config → Interfacing Options → SPI → Enable, dann neu starten.
SPI-Leitungen im Ueberblick
- MOSI (Pin 19 / 38) – Master sendet, Slave empfaengt
- MISO (Pin 21 / 35) – Slave sendet, Master empfaengt
- SCLK (Pin 23 / 40) – Taktsignal vom Master
- CE0/CE1/CE2 (Pin 24 / 26 / 36) – Chip-Enable (Slave-Auswahl)
Python-Codebeispiel (spidev)
import spidev
spi = spidev.SpiDev()
spi.open(0, 0) # Bus 0, CE0
spi.max_speed_hz = 1000000
# Byte senden und gleichzeitig empfangen
response = spi.xfer2([0x01, 0x80, 0x00])
print(f"Antwort: {response}")
spi.close()Typische Verwendung
- SPI-Displays (ILI9341, ST7789)
- A/D-Wandler (MCP3008)
- RFID-Module (RC522)
- Beschleunigungssensoren (MPU6000)
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | SPI0_SCLK | SD3 | DPI_D7 | AVEOUT_VID7 | AVEIN_VID7 | – |
| Pi 4, 400 | SPI0_SCLK | SD3 | DPI_D7 | I2CSL_SCL_SCLK | RTS4 | SCL5 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 11 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SPI0_SCLK | DPI_D7 | RTS3 | SCL1 | – | SPI4_SCLK |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 24 – BCM 8 (GPIO8) – SPI0 CE0 (Chip Enable 0)
Phys. Pin: 24BCM: 8Typ: SPI0 CE0Bus: 0
Der physikalische Pin 24 (BCM GPIO8) ist das Chip-Enable 0 (CE0, auch Chip Select) des SPI-Bus 0. Mit dem CE-Signal waehlt der Master den gewuenschten Slave-Chip aus, indem er die Leitung auf LOW zieht. Ueber CE0 kann ein weiteres SPI-Geraet am selben Bus betrieben werden.
Weitere SPI-Leitungen: MOSI (Pin 19/38), MISO (Pin 21/35), SCLK (Pin 23/40), CE0 (Pin 24), CE1 (Pin 26), CE2 (Pin 36).
Typische Verwendung
- Zweites SPI-Geraet neben CE0 betreiben (z.B. zwei RFID-Module)
- Display auf CE0, Speicher-IC auf CE1
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | SPI0_CE0_N | SD0 | DPI_D4 | AVEOUT_VID4 | AVEIN_VID4 | – |
| Pi 4, 400 | SPI0_CE0_N | SD0 | DPI_D4 | I2CSL_CE_N | TXD4 | SDA4 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 8 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SPI0_CE0 | DPI_D4 | TXD3 | SDA0 | – | SPI4_CE0 |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 25 – Ground (GND / Masse)
Spannung: 0V / GNDTyp: Masse
Der physikalische Pin 25 ist ein Masse-Pin (Ground, GND). Er bildet das gemeinsame Bezugspotenzial fuer alle Schaltungen am Raspberry Pi. Das 40-Pin-Header besitzt insgesamt 8 Ground-Pins (Pins 6, 9, 14, 20, 25, 30, 34, 39).
Tipps
- Bei mehreren Sensoren je einen eigenen GND-Pin verwenden (vermeidet Spannungsabfaelle)
- GND-Pin und Signalpin moeglichst nahe beieinander belegen (kurze Leitungen = weniger Stoereinstrahlung)
- Bei Motortreibern einen separaten GND fuer die Lastseite vorsehen
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 26 – BCM 7 (GPIO7) – SPI0 CE1 (Chip Enable 1)
Phys. Pin: 26BCM: 7Typ: SPI0 CE1Bus: 0
Der physikalische Pin 26 (BCM GPIO7) ist das Chip-Enable 1 (CE1, auch Chip Select) des SPI-Bus 0. Mit dem CE-Signal waehlt der Master den gewuenschten Slave-Chip aus, indem er die Leitung auf LOW zieht. Ueber CE1 kann ein weiteres SPI-Geraet am selben Bus betrieben werden.
Weitere SPI-Leitungen: MOSI (Pin 19/38), MISO (Pin 21/35), SCLK (Pin 23/40), CE0 (Pin 24), CE1 (Pin 26), CE2 (Pin 36).
Typische Verwendung
- Zweites SPI-Geraet neben CE0 betreiben (z.B. zwei RFID-Module)
- Display auf CE0, Speicher-IC auf CE1
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | SPI0_CE1_N | SWE_N_SRW_N | DPI_D3 | AVEOUT_VID3 | AVEIN_VID3 | – |
| Pi 4, 400 | SPI0_CE1_N | SWE_N_SRW_N | DPI_D3 | SPI4_SCLK | RTS3 | SCL4 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 7 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SPI0_CE1 | DPI_D3 | RTS2 | SCL3 | DSR0 | SPI3_SCLK |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 27 – BCM 0 (GPIO0) – I2C ID EEPROM SDA (Datenleitung)
Phys. Pin: 27BCM: 0Typ: I2C EEPROM SDA
Der physikalische Pin 27 (BCM GPIO0) gehoert zum speziellen I2C-Bus 0, der ausschliesslich fuer die automatische Erkennung von HAT-Aufsteckplatinen (Hardware Attached on Top) reserviert ist. Beim Start liest der Raspberry Pi ueber diesen Bus ein EEPROM auf dem HAT aus und konfiguriert sich automatisch.
Wichtig: Dieser Bus ist nicht fuer eigene Sensoren geeignet – er wird von der GPU-Firmware gesteuert. Fuer eigene I2C-Geraete stattdessen I2C-Bus 1 (Pin 3 + Pin 5) verwenden.
Typische Verwendung
- HAT EEPROM-Erkennung (automatisch, kein Nutzercode noetig)
- Im Ausnahmefall: Bus 0 kann in config.txt freigegeben werden:
dtparam=i2c0=on
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | SDA0 | SA5 | PCLK | AVEOUT_VCLK | AVEIN_VCLK | – |
| Pi 4, 400 | SDA0 | SA5 | PCLK | SPI3_CE0_N | TXD2 | SDA6 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 0 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SPI0_SIO3 | DPI_PCLK | TXD1 | SDA0 | – | SPI2_CE0 |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 28 – BCM 1 (GPIO1) – I2C ID EEPROM SCL (Taktleitung)
Phys. Pin: 28BCM: 1Typ: I2C EEPROM SCL
Der physikalische Pin 28 (BCM GPIO1) gehoert zum speziellen I2C-Bus 0, der ausschliesslich fuer die automatische Erkennung von HAT-Aufsteckplatinen (Hardware Attached on Top) reserviert ist. Beim Start liest der Raspberry Pi ueber diesen Bus ein EEPROM auf dem HAT aus und konfiguriert sich automatisch.
Wichtig: Dieser Bus ist nicht fuer eigene Sensoren geeignet – er wird von der GPU-Firmware gesteuert. Fuer eigene I2C-Geraete stattdessen I2C-Bus 1 (Pin 3 + Pin 5) verwenden.
Typische Verwendung
- HAT EEPROM-Erkennung (automatisch, kein Nutzercode noetig)
- Im Ausnahmefall: Bus 0 kann in config.txt freigegeben werden:
dtparam=i2c0=on
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | SCL0 | SA4 | DE | AVEOUT_DSYNC | AVEIN_DSYNC | – |
| Pi 4, 400 | SCL0 | SA4 | DE | SPI3_MISO | RXD2 | SCL6 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 1 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SPI0_SIO2 | DPI_DE | RXD1 | SCL0 | – | SPI2_SIO1 |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 29 – BCM 5 (GPIO5)
Phys. Pin: 29BCM: 5Typ: GPIOPegel: 3,3V
Der physikalische Pin 29 entspricht dem BCM GPIO5. Er ist ein frei konfigurierbarer General Purpose I/O-Pin und kann per Software als Eingang (Input) oder Ausgang (Output) betrieben werden. Der Logikpegel betraegt 3,3V (HIGH) bzw. 0V (LOW). Der Pin unterstuetzt interne konfigurierbare Pull-Up- und Pull-Down-Widerstaende. Im ALT0-Modus als GPCLK1 nutzbar.
Raspberry Pi 5: Auf dem Pi 5 uebernimmt der RP1-Chip die GPIO-Steuerung. Das ursprüngliche RPi.GPIO läuft dort nicht. Alter Code mit import RPi.GPIO läuft meist über rpi-lgpio, das Raspberry Pi OS seit Oktober 2024 mitbringt (sonst sudo apt install python3-rpi-lgpio). Für neuen Code gpiozero oder lgpio verwenden.
Python-Codebeispiel
import lgpio # alle Modelle inkl. Pi 5
# oder: import RPi.GPIO as GPIO # am Pi 5 ueber rpi-lgpio
h = lgpio.gpiochip_open(0)
lgpio.gpio_claim_output(h, 5) # BCM 5 als Ausgang
lgpio.gpio_write(h, 5, 1) # HIGH (3,3V)
lgpio.gpio_write(h, 5, 0) # LOW (0V)
lgpio.gpiochip_close(h)Typische Verwendung
- Allgemeiner GPIO
- GPCLK1 im ALT0-Modus
- Digitales Signal senden
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | GPCLK1 | SA0 | DPI_D1 | AVEOUT_VID1 | AVEIN_VID1 | ARM_TDO |
| Pi 4, 400 | GPCLK1 | SA0 | DPI_D1 | SPI4_MISO | RXD3 | SCL3 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 5 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | GPCLK1 | DPI_D1 | RXD2 | SCL2 | DTR0 | SPI3_SIO1 |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 30 – Ground (GND / Masse)
Spannung: 0V / GNDTyp: Masse
Der physikalische Pin 30 ist ein Masse-Pin (Ground, GND). Er bildet das gemeinsame Bezugspotenzial fuer alle Schaltungen am Raspberry Pi. Das 40-Pin-Header besitzt insgesamt 8 Ground-Pins (Pins 6, 9, 14, 20, 25, 30, 34, 39).
Tipps
- Bei mehreren Sensoren je einen eigenen GND-Pin verwenden (vermeidet Spannungsabfaelle)
- GND-Pin und Signalpin moeglichst nahe beieinander belegen (kurze Leitungen = weniger Stoereinstrahlung)
- Bei Motortreibern einen separaten GND fuer die Lastseite vorsehen
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 31 – BCM 6 (GPIO6)
Phys. Pin: 31BCM: 6Typ: GPIOPegel: 3,3V
Der physikalische Pin 31 entspricht dem BCM GPIO6. Er ist ein frei konfigurierbarer General Purpose I/O-Pin und kann per Software als Eingang (Input) oder Ausgang (Output) betrieben werden. Der Logikpegel betraegt 3,3V (HIGH) bzw. 0V (LOW). Der Pin unterstuetzt interne konfigurierbare Pull-Up- und Pull-Down-Widerstaende. Im ALT0-Modus als GPCLK2 nutzbar.
Raspberry Pi 5: Auf dem Pi 5 uebernimmt der RP1-Chip die GPIO-Steuerung. Das ursprüngliche RPi.GPIO läuft dort nicht. Alter Code mit import RPi.GPIO läuft meist über rpi-lgpio, das Raspberry Pi OS seit Oktober 2024 mitbringt (sonst sudo apt install python3-rpi-lgpio). Für neuen Code gpiozero oder lgpio verwenden.
Python-Codebeispiel
import lgpio # alle Modelle inkl. Pi 5
# oder: import RPi.GPIO as GPIO # am Pi 5 ueber rpi-lgpio
h = lgpio.gpiochip_open(0)
lgpio.gpio_claim_output(h, 6) # BCM 6 als Ausgang
lgpio.gpio_write(h, 6, 1) # HIGH (3,3V)
lgpio.gpio_write(h, 6, 0) # LOW (0V)
lgpio.gpiochip_close(h)Typische Verwendung
- Allgemeiner GPIO
- GPCLK2 im ALT0-Modus
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | GPCLK2 | SOE_N_SE | DPI_D2 | AVEOUT_VID2 | AVEIN_VID2 | ARM_RTCK |
| Pi 4, 400 | GPCLK2 | SOE_N_SE | DPI_D2 | SPI4_MOSI | CTS3 | SDA4 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 6 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | GPCLK2 | DPI_D2 | CTS2 | SDA3 | DCD0 | SPI3_SIO0 |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 32 – BCM 12 (GPIO12) – PWM0
Phys. Pin: 32BCM: 12Typ: GPIO / PWMHW-PWM: Kanal 0
Der physikalische Pin 32 (BCM GPIO12) unterstuetzt neben der normalen GPIO-Funktion auch Hardware-PWM (Kanal 0). Pulsweitenmodulation (PWM) erzeugt ein Rechtecksignal mit variabler Einschaltdauer (Duty Cycle). Hardware-PWM wird direkt vom internen Timer-Block generiert und verursacht keine CPU-Last.
Python-Codebeispiel (Software-PWM via lgpio)
import lgpio, time
h = lgpio.gpiochip_open(0)
lgpio.gpio_claim_output(h, 12)
# Software-PWM: Frequenz 50 Hz, Duty Cycle 50%
lgpio.tx_pwm(h, 12, 50, 50)
time.sleep(2)
lgpio.tx_pwm(h, 12, 50, 0) # Stoppen
lgpio.gpiochip_close(h)Typische Verwendung
- RC-Servo ansteuern (50 Hz, 1-2 ms Pulsbreite)
- LED-Helligkeit dimmen
- Luefterdrehzahl regeln
- Audioausgabe (Low-Budget DAC)
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | PWM0 | SD4 | DPI_D8 | AVEOUT_VID8 | AVEIN_VID8 | ARM_TMS |
| Pi 4, 400 | PWM0_0 | SD4 | DPI_D8 | SPI5_CE0_N | TXD5 | SDA5 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 12 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | PWM0_CHAN0 | DPI_D8 | TXD4 | SDA2 | AAUD_LEFT | SPI5_CE0 |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 33 – BCM 13 (GPIO13) – PWM1
Phys. Pin: 33BCM: 13Typ: GPIO / PWMHW-PWM: Kanal 1
Der physikalische Pin 33 (BCM GPIO13) unterstuetzt neben der normalen GPIO-Funktion auch Hardware-PWM (Kanal 1). Pulsweitenmodulation (PWM) erzeugt ein Rechtecksignal mit variabler Einschaltdauer (Duty Cycle). Hardware-PWM wird direkt vom internen Timer-Block generiert und verursacht keine CPU-Last.
Python-Codebeispiel (Software-PWM via lgpio)
import lgpio, time
h = lgpio.gpiochip_open(0)
lgpio.gpio_claim_output(h, 13)
# Software-PWM: Frequenz 50 Hz, Duty Cycle 50%
lgpio.tx_pwm(h, 13, 50, 50)
time.sleep(2)
lgpio.tx_pwm(h, 13, 50, 0) # Stoppen
lgpio.gpiochip_close(h)Typische Verwendung
- RC-Servo ansteuern (50 Hz, 1-2 ms Pulsbreite)
- LED-Helligkeit dimmen
- Luefterdrehzahl regeln
- Audioausgabe (Low-Budget DAC)
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | PWM1 | SD5 | DPI_D9 | AVEOUT_VID9 | AVEIN_VID9 | ARM_TCK |
| Pi 4, 400 | PWM0_1 | SD5 | DPI_D9 | SPI5_MISO | RXD5 | SCL5 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 13 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | PWM0_CHAN1 | DPI_D9 | RXD4 | SCL2 | AAUD_RIGHT | SPI5_SIO1 |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 34 – Ground (GND / Masse)
Spannung: 0V / GNDTyp: Masse
Der physikalische Pin 34 ist ein Masse-Pin (Ground, GND). Er bildet das gemeinsame Bezugspotenzial fuer alle Schaltungen am Raspberry Pi. Das 40-Pin-Header besitzt insgesamt 8 Ground-Pins (Pins 6, 9, 14, 20, 25, 30, 34, 39).
Tipps
- Bei mehreren Sensoren je einen eigenen GND-Pin verwenden (vermeidet Spannungsabfaelle)
- GND-Pin und Signalpin moeglichst nahe beieinander belegen (kurze Leitungen = weniger Stoereinstrahlung)
- Bei Motortreibern einen separaten GND fuer die Lastseite vorsehen
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 35 – BCM 19 (GPIO19) – SPI1 MISO (Master-In Slave-Out)
Phys. Pin: 35BCM: 19Typ: SPI1 MISOBus: 1
Der physikalische Pin 35 (BCM GPIO19) ist die Master-In Slave-Out (MISO) des SPI-Bus 1. SPI (Serial Peripheral Interface) ist ein synchrones 4-Draht-Seriellprotokoll nach dem Master-Slave-Prinzip mit hohen Datentransferraten (bis zu mehreren MHz). Im Gegensatz zu I2C benoetigt jedes SPI-Geraet eine eigene Chip-Enable-Leitung (CE).
SPI aktivieren: sudo raspi-config → Interfacing Options → SPI → Enable, dann neu starten.
SPI-Leitungen im Ueberblick
- MOSI (Pin 19 / 38) – Master sendet, Slave empfaengt
- MISO (Pin 21 / 35) – Slave sendet, Master empfaengt
- SCLK (Pin 23 / 40) – Taktsignal vom Master
- CE0/CE1/CE2 (Pin 24 / 26 / 36) – Chip-Enable (Slave-Auswahl)
Python-Codebeispiel (spidev)
import spidev
spi = spidev.SpiDev()
spi.open(1, 0) # Bus 1, CE0
spi.max_speed_hz = 1000000
# Byte senden und gleichzeitig empfangen
response = spi.xfer2([0x01, 0x80, 0x00])
print(f"Antwort: {response}")
spi.close()Typische Verwendung
- SPI-Displays (ILI9341, ST7789)
- A/D-Wandler (MCP3008)
- RFID-Module (RC522)
- Beschleunigungssensoren (MPU6000)
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | PCM_FS | SD11 | DPI_D15 | I2CSL_SCL_SCLK | SPI1_MISO | PWM1 |
| Pi 4, 400 | PCM_FS | SD11 | DPI_D15 | SPI6_MISO | SPI1_MISO | PWM0_1 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 19 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SPI1_MISO | DPI_D15 | I2S0_WS | PWM0_CHAN3 | I2S1_WS | – |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 36 – BCM 16 (GPIO16) – SPI1 CE2 (Chip Enable 2)
Phys. Pin: 36BCM: 16Typ: SPI1 CE2Bus: 1
Der physikalische Pin 36 (BCM GPIO16) ist das Chip-Enable 2 (CE2, auch Chip Select) des SPI-Bus 1. Mit dem CE-Signal waehlt der Master den gewuenschten Slave-Chip aus, indem er die Leitung auf LOW zieht. Ueber CE2 kann ein weiteres SPI-Geraet am selben Bus betrieben werden.
Weitere SPI-Leitungen: MOSI (Pin 19/38), MISO (Pin 21/35), SCLK (Pin 23/40), CE0 (Pin 24), CE1 (Pin 26), CE2 (Pin 36).
Typische Verwendung
- Zweites SPI-Geraet neben CE0 betreiben (z.B. zwei RFID-Module)
- Display auf CE0, Speicher-IC auf CE1
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | FL0 | SD8 | DPI_D12 | CTS0 | SPI1_CE2_N | CTS1 |
| Pi 4, 400 | – | SD8 | DPI_D12 | CTS0 | SPI1_CE2_N | CTS1 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 16 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SPI1_CE2 | DPI_D12 | DSI0_TE_EXT | – | CTS0 | – |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 37 – BCM 26 (GPIO26)
Phys. Pin: 37BCM: 26Typ: GPIOPegel: 3,3V
Der physikalische Pin 37 entspricht dem BCM GPIO26. Er ist ein frei konfigurierbarer General Purpose I/O-Pin und kann per Software als Eingang (Input) oder Ausgang (Output) betrieben werden. Der Logikpegel betraegt 3,3V (HIGH) bzw. 0V (LOW). Der Pin unterstuetzt interne konfigurierbare Pull-Up- und Pull-Down-Widerstaende.
Raspberry Pi 5: Auf dem Pi 5 uebernimmt der RP1-Chip die GPIO-Steuerung. Das ursprüngliche RPi.GPIO läuft dort nicht. Alter Code mit import RPi.GPIO läuft meist über rpi-lgpio, das Raspberry Pi OS seit Oktober 2024 mitbringt (sonst sudo apt install python3-rpi-lgpio). Für neuen Code gpiozero oder lgpio verwenden.
Python-Codebeispiel
import lgpio # alle Modelle inkl. Pi 5
# oder: import RPi.GPIO as GPIO # am Pi 5 ueber rpi-lgpio
h = lgpio.gpiochip_open(0)
lgpio.gpio_claim_output(h, 26) # BCM 26 als Ausgang
lgpio.gpio_write(h, 26, 1) # HIGH (3,3V)
lgpio.gpio_write(h, 26, 0) # LOW (0V)
lgpio.gpiochip_close(h)Typische Verwendung
- Allgemeiner GPIO
- Schaltausgang
- Sensoreingabe
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | SD0_DAT2 | TE0 | DPI_D22 | SD1_DAT2 | ARM_TDI | – |
| Pi 4, 400 | SD0_DAT2 | – | DPI_D22 | SD1_DAT2 | ARM_TDI | SPI5_CE1_N |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 26 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SD0_DAT2 | DPI_D22 | I2S0_SDI3 | MIC_DAT0 | I2S1_SDI3 | SPI5_CE1 |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 38 – BCM 20 (GPIO20) – SPI1 MOSI (Master-Out Slave-In)
Phys. Pin: 38BCM: 20Typ: SPI1 MOSIBus: 1
Der physikalische Pin 38 (BCM GPIO20) ist die Master-Out Slave-In (MOSI) des SPI-Bus 1. SPI (Serial Peripheral Interface) ist ein synchrones 4-Draht-Seriellprotokoll nach dem Master-Slave-Prinzip mit hohen Datentransferraten (bis zu mehreren MHz). Im Gegensatz zu I2C benoetigt jedes SPI-Geraet eine eigene Chip-Enable-Leitung (CE).
SPI aktivieren: sudo raspi-config → Interfacing Options → SPI → Enable, dann neu starten.
SPI-Leitungen im Ueberblick
- MOSI (Pin 19 / 38) – Master sendet, Slave empfaengt
- MISO (Pin 21 / 35) – Slave sendet, Master empfaengt
- SCLK (Pin 23 / 40) – Taktsignal vom Master
- CE0/CE1/CE2 (Pin 24 / 26 / 36) – Chip-Enable (Slave-Auswahl)
Python-Codebeispiel (spidev)
import spidev
spi = spidev.SpiDev()
spi.open(1, 0) # Bus 1, CE0
spi.max_speed_hz = 1000000
# Byte senden und gleichzeitig empfangen
response = spi.xfer2([0x01, 0x80, 0x00])
print(f"Antwort: {response}")
spi.close()Typische Verwendung
- SPI-Displays (ILI9341, ST7789)
- A/D-Wandler (MCP3008)
- RFID-Module (RC522)
- Beschleunigungssensoren (MPU6000)
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | PCM_DIN | SD12 | DPI_D16 | I2CSL_MISO | SPI1_MOSI | GPCLK0 |
| Pi 4, 400 | PCM_DIN | SD12 | DPI_D16 | SPI6_MOSI | SPI1_MOSI | GPCLK0 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 20 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SPI1_MOSI | DPI_D16 | I2S0_SDI0 | GPCLK0 | I2S1_SDI0 | – |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 39 – Ground (GND / Masse)
Spannung: 0V / GNDTyp: Masse
Der physikalische Pin 39 ist ein Masse-Pin (Ground, GND). Er bildet das gemeinsame Bezugspotenzial fuer alle Schaltungen am Raspberry Pi. Das 40-Pin-Header besitzt insgesamt 8 Ground-Pins (Pins 6, 9, 14, 20, 25, 30, 34, 39).
Tipps
- Bei mehreren Sensoren je einen eigenen GND-Pin verwenden (vermeidet Spannungsabfaelle)
- GND-Pin und Signalpin moeglichst nahe beieinander belegen (kurze Leitungen = weniger Stoereinstrahlung)
- Bei Motortreibern einen separaten GND fuer die Lastseite vorsehen
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Pin 40 – BCM 21 (GPIO21) – SPI1 SCLK (Taktsignal)
Phys. Pin: 40BCM: 21Typ: SPI1 SCLKBus: 1
Der physikalische Pin 40 (BCM GPIO21) ist die Taktsignal (SCLK) des SPI-Bus 1. SPI (Serial Peripheral Interface) ist ein synchrones 4-Draht-Seriellprotokoll nach dem Master-Slave-Prinzip mit hohen Datentransferraten (bis zu mehreren MHz). Im Gegensatz zu I2C benoetigt jedes SPI-Geraet eine eigene Chip-Enable-Leitung (CE).
SPI aktivieren: sudo raspi-config → Interfacing Options → SPI → Enable, dann neu starten.
SPI-Leitungen im Ueberblick
- MOSI (Pin 19 / 38) – Master sendet, Slave empfaengt
- MISO (Pin 21 / 35) – Slave sendet, Master empfaengt
- SCLK (Pin 23 / 40) – Taktsignal vom Master
- CE0/CE1/CE2 (Pin 24 / 26 / 36) – Chip-Enable (Slave-Auswahl)
Python-Codebeispiel (spidev)
import spidev
spi = spidev.SpiDev()
spi.open(1, 0) # Bus 1, CE0
spi.max_speed_hz = 1000000
# Byte senden und gleichzeitig empfangen
response = spi.xfer2([0x01, 0x80, 0x00])
print(f"Antwort: {response}")
spi.close()Typische Verwendung
- SPI-Displays (ILI9341, ST7789)
- A/D-Wandler (MCP3008)
- RFID-Module (RC522)
- Beschleunigungssensoren (MPU6000)
Alternative Funktionen
| Modell | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
|---|---|---|---|---|---|---|
| Pi 1–3, Zero | PCM_DOUT | SD13 | DPI_D17 | I2CSL_CE_N | SPI1_SCLK | GPCLK1 |
| Pi 4, 400 | PCM_DOUT | SD13 | DPI_D17 | SPI6_SCLK | SPI1_SCLK | GPCLK1 |
Raspberry Pi 5: Der RP1-Chip zählt die Funktionen als a0 bis a8, gesetzt z. B. mit pinctrl set 21 a3. a5 ist der normale GPIO, a6 und a7 (PROC_RIO, PIO) hat jeder Pin.
| Modell | a0 | a1 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| Pi 5 | SPI1_SCLK | DPI_D17 | I2S0_SDO0 | GPCLK1 | I2S1_SDO0 | – |
Auf folgenden Boards vorhanden
| Modell | Vorhanden |
|---|---|
| Raspberry Pi 5 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 4 Modell B / 400 | ✓ J8 Header (40-Pin) |
| Raspberry Pi 3 Modell B / B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 2 Modell B | ✓ J8 Header (40-Pin) |
| Raspberry Pi Zero 2 W / Zero W | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modelle A+ und B+ | ✓ J8 Header (40-Pin) |
| Raspberry Pi 1 Modell A und B | ✓ P1 Header (26-Pin) |
Das Raspberry Pi 5 Pinout im Detail
Unser interaktives Raspberry Pi 5 Pinout Tool zeigt euch alle 40 GPIO-Pins des neuen Flaggschiffs (und seiner Vorgänger) auf einen Blick. Klickt auf einen Pin um Details zu Funktion, BCM-Nummer und alternativen Funktionen zu erhalten.
Das 40-Pin-GPIO-Layout ist bei allen aktuellen Modellen identisch – Raspberry Pi 3, Pi 4, Pi 5, Pi 400 und Pi Zero 2 W nutzen dasselbe physikalische Pinout. Der Mikrocontroller Raspberry Pi Pico hat eine eigene Belegung, die findet ihr im Pico-Pinout. Beim Raspberry Pi 5 übernimmt der RP1-Chip die GPIO-Steuerung. Das ursprüngliche RPi.GPIO läuft dort nicht, alte Skripte laufen meist über rpi-lgpio weiter, das Raspberry Pi OS seit Oktober 2024 mitbringt.
Die wichtigsten GPIO-Pins auf einen Blick
| Physisch | BCM-Nr. | Funktion |
|---|---|---|
| Pin 3 | GPIO 2 (SDA) | I²C Daten |
| Pin 5 | GPIO 3 (SCL) | I²C Takt |
| Pin 8 | GPIO 14 (TXD) | UART Senden |
| Pin 10 | GPIO 15 (RXD) | UART Empfangen |
| Pin 19 | GPIO 10 (MOSI) | SPI Daten raus |
| Pin 21 | GPIO 9 (MISO) | SPI Daten rein |
| Pin 23 | GPIO 11 (SCLK) | SPI Takt |
| Pin 1 | 3,3V | Spannungsversorgung |
| Pin 2 | 5V | Spannungsversorgung |
| Pin 6 | GND | Masse |
- Raspberry Pi 5: Das ursprüngliche
RPi.GPIOläuft nicht. Installiert es nicht per apt nach, das ersetztrpi-lgpio. Fehlt rpi-lgpio auf einer älteren Installation, holt ihr es mitsudo apt install python3-rpi-lgpio. Für neuen Code nehmt ihrgpiozerooderlgpio. - 3,3V-Logik: GPIO-Pins liefern max. 3,3V – keine 5V-Bauteile direkt anschließen (Spannungsteiler nötig).
- Strom-Limit: Pro Pin max. 16 mA, gesamt max. 50 mA – für LEDs immer Vorwiderstand verwenden.
- Pin 2/3 mit Pull-ups: GPIO 2 und GPIO 3 haben feste interne Pull-up-Widerstände (1,8 kΩ) – für I²C kein externes Pull-up nötig.
GPIO-Pins mit Python ansteuern – Erste Schritte
Nach dem Blick auf das Pinout stellt sich die Frage: Wie sprichst du die GPIO-Pins im Code an? gpiozero und lgpio laufen auf allen aktuellen Modellen inklusive Raspberry Pi 5. gpiozero vereinfacht die Ansteuerung deutlich, mit lgpio steuerst du jeden Pin selbst, wie im Beispiel unten.
LED ein- und ausschalten (BCM GPIO 17 = physisch Pin 11)
import lgpio # läuft auf allen Modellen, ebenso gpiozero
import time
CHIP = 0 # GPIO-Chip 0 für alle Pi-Modelle
LED_PIN = 17 # BCM GPIO 17
h = lgpio.gpiochip_open(CHIP)
lgpio.gpio_claim_output(h, LED_PIN)
for _ in range(5):
lgpio.gpio_write(h, LED_PIN, 1) # LED an
time.sleep(0.5)
lgpio.gpio_write(h, LED_PIN, 0) # LED aus
time.sleep(0.5)
lgpio.gpiochip_close(h)
Installation: sudo apt install python3-lgpio – auf aktuellen Raspberry Pi OS Versionen vorinstalliert.
| Protokoll | Typische Anwendung | GPIO-Pins (BCM) | Python-Bibliothek |
|---|---|---|---|
| Digital I/O | LED, Taster, Relais | Beliebiger GPIO-Pin | lgpio / gpiozero |
| I²C | Sensoren (BME280, BMP180, OLED) | GPIO 2 (SDA), GPIO 3 (SCL) | smbus2 |
| SPI | Displays, ADC (MCP3008) | GPIO 10/9/11 (MOSI/MISO/SCLK) | spidev |
| UART | GPS-Module, Serial-Debug | GPIO 14 (TXD), GPIO 15 (RXD) | pyserial |
| PWM | Servos, LED-Dimmer | GPIO 12, 13, 18, 19 (Hardware-PWM) | gpiozero / lgpio (Software-PWM), Hardware-PWM per Overlay |
Über den Autor
Dieser Artikel wird von der raspberry.tips Redaktion gepflegt. Wir beschäftigen uns seit 2013 aktiv mit dem Raspberry Pi – von ersten GPIO-Experimenten bis zu aktuellen Pi-5-Projekten. Alle Pin-Angaben basieren auf eigener Praxiserfahrung und den offiziellen Datenblättern der Raspberry Pi Foundation.
Pinout als Grafik herunterladen und frei verwenden
Ihr dürft diese Pinout-Grafik kostenlos verwenden, auch verändert und auch kommerziell: im Unterricht, in Blogartikeln, in Dokumentationen oder im Makerspace an der Wand. Sie steht unter der Lizenz CC BY 4.0. Einzige Bedingung ist die Namensnennung mit Link auf diese Seite.
- PNG herunterladen (für Web und Präsentationen)
- SVG herunterladen (Vektor, für Druck und zum Bearbeiten)
Diesen Quellenhinweis könnt ihr direkt kopieren:
Grafik: <a href="https://raspberry.tips/raspberry-pi-gpio-pinout">Raspberry Pi GPIO-Pinout von raspberry.tips</a>, Lizenz <a href="https://creativecommons.org/licenses/by/4.0/deed.de">CC BY 4.0</a>
Für Drucksachen ohne Link genügt: „Grafik: raspberry.tips, CC BY 4.0“.
Alle Raspberry Pi Modelle (Pi 3, Pi 4, Pi 5 und Zero 2 W) haben einen 40-Pin-Header. Davon sind 26 Pins als GPIO nutzbar, plus je 2 Pins für 5V und 3,3V sowie 8 Ground-Pins.
BCM (Broadcom) verwendet die internen Chip-Nummern des SoC, z.B. GPIO 17. BOARD nutzt die physische Pin-Position auf dem Header, z.B. Pin 11. Im interaktiven Pinout werden BCM-Nummern angezeigt.
Nein. Alle GPIO-Pins arbeiten mit 3,3V-Logik und sind nicht 5V-tolerant. Für die Verbindung mit 5V-Geräten ist zwingend ein Pegelwandler (Level Shifter) notwendig, sonst besteht Gefahr den Pi dauerhaft zu beschädigen.
Beim Raspberry Pi 4 und Pi 5 unterstützen GPIO 12, 13, 18 und 19 Hardware-PWM. Beim Pi 4 teilen sich GPIO 12 und 18 einen PWM-Kanal, ebenso GPIO 13 und 19. Der Pi 5 hat für jeden der vier Pins einen eigenen Kanal. Software-PWM ist auf allen GPIO-Pins möglich, aber weniger präzise.
Ja, der 40-Pin-Header des Raspberry Pi 5 ist pinkompatibel mit dem Pi 4. Die BCM-Nummern und Funktionen (I2C, SPI, UART, PWM) sind identisch. Der Pi 5 nutzt jedoch einen neuen RP1-I/O-Controller, was bei einigen Low-Level-Bibliotheken Anpassungen erfordern kann.
Einen eingebauten Power-Button hat nur der Raspberry Pi 5 (beim Pi 400 und Pi 500 übernimmt die Tastatur diese Funktion). Bei älteren Modellen lässt sich ein Taster zwischen Pin 5 (GPIO3) und Pin 6 (Ground) nachrüsten: Er weckt den Pi aus dem Halt-Zustand auf und fährt ihn mit dtoverlay=gpio-shutdown auch sauber herunter.
Dieses Tool darfst du einbetten
Du brauchst das Pinout auf deiner eigenen Seite – im Unterricht, im Makerspace-Wiki, im Vereinsforum oder im eigenen Blog? Nur zu. Kostenlos, ohne Anmeldung, ohne Tracking-Cookies. Und wenn ich hier etwas am Tool ergänze, ist es bei dir automatisch mit drin.
In WordPress genügt die URL in einer leeren Zeile im Editor, den Rest macht WordPress von allein:
https://raspberry.tips/raspberry-pi-gpio-pinout
Überall sonst baust du diesen Schnipsel ein:
<iframe src="https://raspberry.tips/embed/gpio/"
width="1000" height="1280" loading="lazy"
style="max-width:100%;border:0"
title="Raspberry Pi GPIO Pinout – interaktiv"></iframe>
<p><a href="https://raspberry.tips/raspberry-pi-gpio-pinout">Interaktives Raspberry-Pi-Pinout von raspberry.tips</a></p>
Das Tool steht unter CC BY 4.0: Du darfst es einbauen, weitergeben und anpassen, solange die Namensnennung mit Link auf raspberry.tips stehen bleibt. Mehr will ich gar nicht.

