Wie ich einen raspberry pi‑basierten rtk‑failover einrichte, um gps‑ausfälle auf dem feld abzufangen

Wie ich einen raspberry pi‑basierten rtk‑failover einrichte, um gps‑ausfälle auf dem feld abzufangen

Wenn auf dem Feld plötzlich die GPS-Korrektursignale ausfallen, kann das schnell zu großen Problemen bei der maschinellen Arbeit führen: Ablenkungen bei der Spurführung, Qualitätsverlust bei Sä- oder Ausbringprozessen und im schlimmsten Fall Stillstand. Ich habe mir deshalb eine robuste, kostengünstige Lösung mit einem Raspberry Pi als RTK-Failover aufgebaut, die während GNSS-Ausfällen automatisch auf lokale Quellen oder interne Filter umschaltet. In diesem Beitrag beschreibe ich meine Erfahrungen, die benötigte Hardware und Software sowie die wichtigsten Schritte zur Inbetriebnahme — praxisnah und direkt anwendbar.

Warum ein RTK‑Failover auf dem Feld sinnvoll ist

Auf modernen Betrieben ist RTK-Positionsgenauigkeit (Unter 5 cm) oft Standard. Diese hängt aber von Korrekturdaten (NTRIP, VRS, Basisstationen) und stabiler GNSS-Empfangstechnik ab. Ausfälle können durch Mobilfunkprobleme, NTRIP‑Server-Ausfälle, Antennenstörungen oder atmosphärische Effekte entstehen. Ein Raspberry Pi-basiertes Failover bietet mir:

  • Automatisches Umschalten auf alternative Korrekturlieferanten (lokale Basis, interne Filter).
  • Kostengünstige Redundanz gegenüber teuren kommerziellen Steuerungen.
  • Möglichkeiten zur Logging- und Fehleranalyse vor Ort.
  • Was ich verwende — Hardwareübersicht

    Für mein Setup habe ich die folgenden Komponenten gewählt. Die Auswahl orientiert sich an Verfügbarkeit, Robustheit und Preis-Leistungs-Verhältnis.

    KomponenteBeispiel / MarkeFunktion
    EinplatinencomputerRaspberry Pi 4 (4GB)Orchestrierung, NTRIP Client/Server, Logging
    GNSS Empfängeru‑blox ZED-F9P oder Emlid Reach M2RTK-fähiger Empfänger, lokale Basis oder Rover
    MobilfunkLTE-USB Dongle oder Pi-HAT*Backup-Verbindung zu NTRIP/Internet
    Stromversorgung12V Adapter + stabiler Step‑DownFarm-geeignete Stromversorgung
    Gehäuse & MontageWetterfestes GehäuseSchutz vor Staub, Feuchte, Vibration

    *Für autarke Anwendungen nutze ich oft LTE-HATs mit SIM-Halterung; das vereinfacht die Montage im Kabinenbereich.

    Software-Stack und Dienste

    Ich setze auf Open-Source-Tools, kombiniert mit einigen proprietären Binarys für u‑blox oder Emlid, je nach Receiver. Die zentrale Software besteht aus:

  • Raspbian / Raspberry Pi OS als Betriebssystem.
  • RTKLIB für NTRIP-Client/Server, Konvertierung und lokale RTK-Prozesse.
  • Str2str (Teil von RTKLIB) zum Weiterleiten von Korrekturdaten zwischen Receiver, NTRIP und Logger.
  • Optional: RTK Server (e.g. Emlid NTRIP caster oder eigene NTRIP-Server) zur Verteilung von Korrekturdaten im lokalen Netzwerk.
  • Aufbau—Schritt für Schritt

    Hier beschreibe ich das Setup in chronologischer Reihenfolge, so wie ich es auf dem Hof aufgebaut habe.

  • Vorbereitung des Raspberry Pi: Installation von Raspberry Pi OS, SSH aktivieren und Basisupdates installieren (apt update && apt upgrade).
  • RTKLIB installieren: Ich kompiliere rtkrcv/str2str aus dem Source, damit ich die neueste Version habe. Alternativ klappt die Installation aus Paketquellen.
  • Receiver anschließen: Den ZED-F9P per USB/Serial mit dem Pi verbinden. Beim ersten Start kontrolliere ich mit screen /dev/ttyUSB0 115200 die NMEA- oder UBX-Ausgaben.
  • Konfiguration als lokale Basisstation: Wenn ich eine lokale Basis betreiben möchte, stelle ich den GNSS‑Empfänger so ein, dass er Rohdaten (RTCM3) liefert. Diese werden mit str2str als NTRIP-Caster oder per TCP ausgestrahlt.
  • NTRIP‑Backup konfigurieren: Ich richte auf dem Pi einen kleinen Watchdog ein (ein Shell-Skript), das die verfügbare Korrekturquelle prüft und automatisch umschaltet — z.B. zuerst NTRIP-Via-Mobilfunk, bei Ausfall lokale Basis, bei kompletter Ausfall ein interner PPP/INS-Filter im Receiver (Kalman-Filter) aktiviert.
  • Failover-Logik implementieren: Meine einfache Logik prüft die Qualität (RTK-Fix/Float/Single) und Latenz. Bei Verlust des RTK-Fix für länger als 5 Sekunden schaltet das Skript auf die Alternative.
  • Beispiel einer einfachen Failover-Logik

    Das Prinzip ist simpel: Monitor lese RTK-Status vom Receiver (NMEA GGA oder u-blox UBX MSG). Wenn Status !=FIX und Dauer >Schwelle → switch. Das kann in einem Bash- oder Python‑Daemon laufen, der str2str-Prozesse startet/stoppt.

    Tipps zur Praxis — Empfang, Antenne, Montage

  • Antennenplatzierung ist entscheidend: Achte auf freie Himmelsicht, stabile Befestigung und gute Masseverbindung. Eine aktive GNSS-Antenne mit Ground‑Plane reduziert Multipath deutlich.
  • Koax-Kabel so kurz wie möglich halten. Bei längeren Strecken hochwertige Kabel verwenden und die Dämpfung einrechnen.
  • Power-Supply: Spannungseinbrüche führen zu Reboots; ich verwende daher Pufferakkus oder Kondensatoren als Überbrückung.
  • Mobilfunktest im Feld: Nicht jeder Stellplatz hat LTE‑Abdeckung; teste mehrere Mobilfunkanbieter oder setze LTE‑Div. Antennen ein.
  • Fehlerdiagnose und Logs

    Logging ist für mich das Herzstück — ohne Logs ist Fehlersuche auf dem Feld reine Vermutung. Ich logge:

  • GNSS-Rohdaten (NMEA/UBX) mit Zeitstempel.
  • RTKLIB-Statuslogs (Fix/Float/Single, RTT, Latenz).
  • Umschalt-Events des Watchdogs.
  • Diese Logs analysiere ich später am Büro-PC mit RTKLIB‑Tools oder einfachen Skripten (grep, awk). Häufige Fehler sind: Netzstörungen, Antennen-Notchfilter-Effekte durch nahe Stahlkonstruktionen, oder fehlerhafte RTCM-Mountpoint-Konfigurationen in NTRIP.

    Was funktioniert besonders gut — und was nicht

    Besonders effektiv finde ich die Kombination aus lokaler Basis + Mobilfunk-NTRIP: Fällt das Mobilfunknetz aus, liefert die lokale Basis zuverlässig Korrekturen für einen Radius von einigen Kilometern. Schwierig ist die Synchronisation über große Entfernungen ohne hochwertige Zeitreferenz — hier begrenzen sich die Gebrauchswerte von DIY-Lösungen.

    Praxisbeispiel: Einsatz bei Aussaat

    Bei einer Aussaatfahrt hatte ich einmal kurzzeitig keinerlei NTRIP-Verbindung. Mein Failover schaltete binnen 3–4 Sekunden auf die lokale Basis um, der RTK-Fix blieb erhalten und die Maschine konnte ohne sichtbaren Versatz weiterarbeiten. Der Unterschied zwischen einem manuellen Eingriff (Verlust der Spurführung) und automatischem Umschalten ist betrieblich enorm.

    Weiteres Vorgehen und Verbesserungen

    In Zukunft möchte ich noch zusätzliche Sensorfusion ergänzen: IMU‑Daten in den Filter einspeisen, um Übergangszeiten bei GNSS‑Ausfällen zu überbrücken, sowie ein Dashboard auf dem Pi für Live‑Monitoring. Außerdem plane ich, eine kurze Anleitung für Kolleginnen auf dem Hof zu erstellen, damit lokale Mitarbeiter das System bei Bedarf neu starten oder Logs sammeln können.

    Wenn ihr möchtet, kann ich euch die Skripte für mein Watchdog‑Daemon und eine Beispiel‑rtkrcv-Konfiguration zur Verfügung stellen. Schreibt mir, welche Receiver ihr verwendet — dann passe ich die Anweisungen an eure Hardware an.


    Sie sollten auch die folgenden Nachrichten lesen:

    Maschinen

    Wie rüste ich eine ältere hardi‑feldspritze mit variabler dosierung und einem arduino‑isobus‑gateway nach und belege düngereinsparungen im feldversuch

    17/08/2026

    Ich habe in den letzten Jahren mehrere ältere Hardi-Feldspritzen nachgerüstet — weil moderne Variodosiersysteme und ISOBUS-Steuerung nicht nur...

    Weiterlesen...
    Wie rüste ich eine ältere hardi‑feldspritze mit variabler dosierung und einem arduino‑isobus‑gateway nach und belege düngereinsparungen im feldversuch