Erweiterung iC880a Gateways um GPS und PPS

Es stellt kein großes Problem dar, seine TTN Gateway um GPS und PPS zu erweitern. Die Vorteile davon gehen aber aktuell gegen 0. GPS wird benötigt um eine sehr genaue Uhrzeit zur Verfügung zu stellen und um über das PPS Signal den genauen Beginn der Sekunde zu Signalisieren. Dadurch ist es möglich Empfangene Pakete mit einem sehr genauen Zeitstempel zu versehen und das Beacon Signal zu versenden. GPS und PPS bringen also genaues Timing ins TTN.

Ein genauer Zeitstempel ermöglicht es, eine Node genauer zu lokalisieren, anhand von TDOA. Das Thema steckt aber auch noch in den Kinderschuhen. Durch das Beacon Signal, können sich Class B Nodes ein Empfangszeitfenster berechnen. Class B Nodes sind im TTN aktuell nicht supported und wird auch wohl nicht so schnell kommen, da es zu wenige Gateways mit GPS im TTN gibt. Zusätzlich ist das Thema wohl auch im aktuellen Multi Packet Forwarder nicht enthalten.

Momentan ist es also als experimentell anzusehen und der Nutzen für uns als Gateway Betreiber, bzw. für die Nodes eher gleich 0. Momentan ist als Verbesserung nur ein genauerer Timestamp für die Empfangenen Pakete vorhanden.

 

Die Installation

Die Installation geht relativ einfach, solange man ein Modul mit USB Anschluss verwendet oder indem man es per USB to TTL Adapter anschließt. Natürlich kann ein GPS-Modul auch über den Seriellen Port des GPIO Headers angeschlossen werden, aber dazu bedarf es etwas mehr Arbeit. Ich habe mich für die USB-Variante entschieden, dabei muss das Modul nur mit einem USB-Port verbunden werden. Zusätzlich muss noch das PPS Signal dem iC880a zugeführt werden. Dieses geschieht über den PIN 19 am iC880a oder über der daneben liegenden u.FL Buchse. Die Verbindung über die u.FL Busche ist die beste Methode, das hier kein Löten notwendig ist. Ich habe mir ein SMA auf u.FL Pigtail besorgt und die SMA Buchse abgeschnitten. Das offene Ende habe ich dann mit dem PPS Anschluss des GPS-Moduls verbunden und den u.FL Stecker auf das iC880A gesteckt. Mehr gibt es auch nicht zu tun.

Bei der Wahl eures GPS-Moduls, kann ich Module mit einem Chip von Ublox empfehlen. Meine Wahl viel auf das GNSS 5 Click von MikroElektronika. Die Module können über die Software U-Center (leider nur unter Windows) sehr einfach konfiguriert werden. Ich habe mein Modul vorher mittels U-Center konfiguriert und hier die Einstellungen für GNSS und den Stationary Mode angepasst.

In der GNSS Konfig habe ich GPS, Galileo und Glonass aktiviert, dazu zusätzlich noch SBAS.

 

In den NAV5 Parametern, ist der Punkt Dynamic Model interessant. Hier solltet ihr 2- Stationary auswählen, da sich euer Gateway ja wohl nicht bewegen wird.

 

Im U-Center könnt ihr auch den Empfang sehr gut kontrollieren. Die europäischen Satelliten werden hier jedoch nur angezeigt, wenn dieses explizit aktiviert wird (F9 -> UBX -> NAV -> SAT -> RM).

 

Ebenfalls zu beachten ist die Platzierung der GPS Antenne. Wenn ihr ein Outdoor Gateway betreibt, sollte eine eingebaute Keramikantenne ausreichen. Bei Indoor-Gateways greift ihr lieber zu einem Modul, an welches eine externe Aktivantenne angeschlossen werden kann. Somit könnt ihr die Antenne optimal positionieren. Ich verwende eine Navilock NL-281GG, welche mit GPS; GLONASS und Galileo funktioniert. Die Antenne sollte einen möglichst freie Sicht zum Himmel haben, eine Fensterbank ist nicht der Ideale Ort für eine GPS Antenne.

 

Test des GPS-Moduls

Je nachdem wie ihr das Modul verbunden habt, wird es sich z.B. als /dev/ttyUSB0 oder /dev/ttyACM0 einbinden. Mittels cat /var/log/messages solltet ihr am Ende sehen können, wo das Device eingebunden wird. Anschließend schaut ihr euch mittels cat /dev/ttyxxxx den Output an. Hier sollte ihr nun die Ausgabe des GPS-Moduls sehen, welches ihr mit STRG+C abbrechen könnt. Damit wisst ihr, das euer Modul richtig verbunden ist.

 

Konfiguration GPS und PPS im TTN Gateway

Damit euer Gateway, bzw. der Paket Forwarder auf das GPS-Modul zugreifen kann, muss dieses noch konfiguriert werden. Dazu müsst ihr folgende Zeilen in eurer local_config.json anpassen, bzw. hinzufügen. Den tty_path müsst ihr natürlich euren Gegebenheiten anpassen. Für das PPS Signal muss nichts konfiguriert werden, es gibt leider aber auch keine Möglichkeit es zu überprüfen.

[code]
"gps_tty_path": "/dev/ttyUSB0",
"gps" true,
"fake_gps": false,
[/code]

Damit sollte euer Gateway starrten und im Log folgendes ausspucken:


12.04.18 11:36:31 (+0200) gateway ### [GPS] ###
12.04.18 11:36:31 (+0200) gateway # Valid gps time reference (age: 0 sec)
12.04.18 11:36:31 (+0200) gateway # System GPS coordinates: latitude 50.xxxxxx, longitude 6.xxxxxx, altitude 70 m

Damit habt ihr nun euer Gateway erfolgreich um GPS erweitert.

 

Mögliche Nachteile

Ein Problem möchte ich nicht verschweigen. Solltet ihr einen schlechten Empfang haben, so wird eure GPS Position evtl. großzügig von eurer tatsächlichen Position abweichen. Dieses ist erst mal nicht wirklich tragisch, aber unschön. Problematisch wird es, sobald die Abweichung mehr als 100 Meter beträgt, denn dann wird euer Gateway im TTN-Mapper verschoben und alle bis dahin gesammelten Messwerte werden ausgeblendet. Gateways die im Freien hängen, sollten hier kein Problem haben. Bei Indoor Gateways sieht es anders aus, hier solltet ihr versuchen, die GPS Antenne ins Freie zu legen.

 

Impressionen

Hier seht ihr ein paar Impressionen vom fast fertigen Einbau in ein IMST Lite Gateway. Es fehlt hier noch eine SMA Verlängerung, um den Anschluss für die externe GPS-Antenne nach Außen zu legen.

GPS und PPS

 

 

6 Gedanken zu „Erweiterung iC880a Gateways um GPS und PPS“

  1. Folgende Fragae zur local_config.json

    Es gibt mehrere Dateien:

    ./opt/ttn-gateway/bin/local_conf.json
    ./opt/ttn-gateway/packet_forwarder/gps_pkt_fwd/local_conf.json

    Welche Datei ist dir richtige. Kannst Du bitte deine Config (one persönliche Daten) einmal veröffentlichen.

    Bei mir klappt es gerade nich!

    Gruß

    E_T

    Antworten
  2. Hier ist meine config:

    {
    „gateway_conf“: {
    „gateway_ID“: „B827EBFFxxxxxxxx“,
    „servers“: [ { „server_address“: „router.eu.thethings.network“, „serv_port_up“: 1700, „serv_port_down“: 1700, „serv_enabled“: true } ],
    „ref_latitude“: xx.6083,
    „ref_longitude“: x.x216,
    „ref_altitude“: xx,
    „contact_email“: „xx@xxx“,
    „description“: „xxxxxxxxxx“
    }
    }

    Antworten

Schreibe einen Kommentar