UART auf dem RaspberryPi nutzen

UART Darstellung

Die UART-Schnittstelle am Raspberry Pi ist für die serielle Kommunikation mit Mikrocontrollern, GPS-Modulen, GSM-Modems und anderen Geräten unverzichtbar. Standardmäßig ist der UART jedoch als serielle Konsole belegt und muss erst für eigene Projekte freigegeben werden. In diesem Artikel zeige ich euch, wie das unter Raspberry Pi OS Bookworm funktioniert – mit den wichtigen Unterschieden zwischen den Pi-Modellen.

UART am Raspberry Pi – Unterschiede je nach Modell

Beim Raspberry Pi gibt es zwei UART-Hardware-Einheiten:

  • PL011 (vollwertig, stabil) – auch „UART0″ oder „ttyAMA0″
  • Mini UART (einfacher, frequenzabhängig) – auch „UART1″ oder „ttyS0″

Beim Pi 3, Pi 4 und Pi 5 ist der PL011 standardmäßig dem Bluetooth-Modul zugeordnet, der Mini UART wird als Konsole verwendet. Für eigene Projekte wollt ihr in der Regel den vollwertigen PL011 nutzen.

Modell Konsole Bluetooth GPIO UART
Pi 1, 2 ttyAMA0 (PL011) ttyAMA0
Pi 3, 4, 5, Zero 2W ttyS0 (Mini UART) ttyAMA0 (PL011) ttyS0 oder ttyAMA0*

*Mit Bluetooth deaktivieren wird ttyAMA0 (PL011) für den GPIO freigegeben.

Konfigurationsdatei öffnen

Unter Raspberry Pi OS Bookworm liegt die Konfigurationsdatei unter:

Ältere Versionen (Bullseye und älter): /boot/config.txt

Methode 1: UART aktivieren (einfach, alle Modelle)

Diese Methode funktioniert auf allen Pi-Modellen. Der Mini UART (ttyS0) wird für GPIO-Pins 14/15 verfügbar gemacht, die serielle Konsole wird deaktiviert.

Fügt in der config.txt ans Ende ein:

Dann muss die serielle Konsole in der cmdline.txt deaktiviert werden:

Entfernt den Eintrag console=serial0,115200 aus der Zeile. Die Zeile sollte danach ungefähr so aussehen:

Neu starten:

Nach dem Neustart ist UART auf /dev/ttyS0 verfügbar.

Methode 2: PL011 UART nutzen – Bluetooth deaktivieren (Pi 3/4/5, empfohlen)

Für zuverlässige serielle Kommunikation empfehle ich auf Pi 3, 4, 5 und Zero 2W den vollwertigen PL011 UART zu verwenden. Dazu muss Bluetooth deaktiviert werden.

In /boot/firmware/config.txt am Ende hinzufügen:

Außerdem den Bluetooth-Dienst deaktivieren:

Serielle Konsole wie in Methode 1 aus der cmdline.txt entfernen. Nach einem Neustart ist /dev/ttyAMA0 (PL011) für eigene Zwecke verfügbar.

UART testen

Nach der Aktivierung könnt ihr UART mit einem einfachen Test prüfen. Verbindet dazu GPIO 14 (TXD) und GPIO 15 (RXD) mit einem Kabel (Loopback-Test):

Was ihr tippt, sollte direkt wieder erscheinen (Loopback). Beendet minicom mit STRG+A → X.

Alternativ über Python:

UART über raspi-config aktivieren

Einfacher geht es auch über raspi-config:

Wählt „3 Interface Options“„I5 Serial Port“. Dann:

  • „Would you like a login shell to be accessible over the serial?“ → Nein
  • „Would you like the serial port hardware to be enabled?“ → Ja

Nach einem Neustart ist der Serial Port aktiv.

Typische Anwendungsfälle

  • GPS-Module (z.B. NEO-6M, NEO-M8N) – senden NMEA-Daten über UART
  • GSM/LTE-Modems (z.B. SIM800, SIM7600)
  • Arduino / Mikrocontroller – Datenaustausch über serielle Schnittstelle
  • Smartmeter-Lesekopf – optischer Auslesekopf für Stromzähler (SML-Protokoll)
  • RS485-Adapter – für industrielle Busprotokolle (Modbus etc.)

Ähnliche Beiträge