LoRa Single Channel Gateway

Mit Freunden baue ich einen Multi-Channel-Gateway, der auf sämtlichen LoRa-Kanälen empfangen und senden kann – und das mit allen SF (Spreading Factors). So ein Gateway kostet knapp 400 Euro in Summe – das ist mir zum Spielen für zu Hause zu teuer.

Nachtrag Juli 2017: wir haben mit dem Aufbau einer Community bei The Things Network in Wien begonnen. Das Ziel ist die Schaffung eines freien und offenen Netzes für IoT. Nachdem ich mehrfach auf meinen Blog hin angeschrieben wurde, es den Personen aber nicht bewusst war, dass sich hier was tut, möchte ich auf folgende Links verweisen: folgt uns auf Twitter (@TTN_Vienna), für Updates und Infos zu den nächsten Treffen oder besucht die Wiener Community Seite!

Single Channel Gateway = günstig

Die günstige Variante, die streng genommen nicht LoRaWAN-kompatibel ist, weil sie nur eine Frequenz und einen Spreading Factor unterstützt, ist ein Single Channel Gateway. Dieses hört auf einen vordefinierten (aber konfigurierbaren) Kanal mit einem vordefinierten Spreading Factor (auch konfigurierbar) und sendet die Daten an The Things Network.

Als Basis nehme ich einen Raspberry Pi 2, der aktuell eh auf eine Aufgabe wartet. Das LoRa & GPS HAT von Dragino nutze ich für die LoRa-Übertragungen. Das HAT habe ich um € 29,- bei Tindie erstanden. In Summe bin ich bei Kosten von weniger als € 65,-.

Einsatzgebiet

Wie beschrieben ist ein Single Channel Gateway kein vollständig LoRaWAN-kompatibler Gateway. Er hört nur auf eine Frequenz (Kanal) und versteht nur einen SF. Nachdem meine Sensoren abwechselnd auf drei Frequenzen senden, stelle ich den Single Channel Gateway auf eine Frequenz ein – und ich stelle mich darauf ein, nur jedes dritte Paket zu empfangen. (Da bei LoRa ja ein Counter mitläuft, kann ich das leicht nachprüfen.)

Falls ich einmal einen Sensor permanent installieren möchte, würde ich ihn fix auf die eine Frequenz stellen, die der Gateway (oder mehrere?) auch nutzt. Damit wäre ein kleines LoRa-Netzwerk möglich, das aber nur auf einer Frequenz funktioniert.

Installation

Es ist ganz einfach:

  1. aktuelle Raspian-Version installieren und Raspberry vorbereiten (resize disk, SSH-Zugriff für Fernzugriff aktivieren, Passwort und IP-Einstellungen ändern)
  2. alles aktualisieren und wiring-pi installieren:
apt-get update && apt-get dist-upgrade
apt-get install wiringpi

3. in raspi-config das SPI Interface aktivieren & rebooten

4. die Single Channel Gateway Software von Github laden und installieren:

wget https://github.com/tftelkamp/single_chan_pkt_fwd/archive/master.zip
unzip master.zip

und ein paar Parameter in der main.cpp konfigurieren:

// SX1272 - Raspberry connections
int ssPin = 6;
int dio0  = 7;
int RST   = 0;

// Set spreading factor (SF7 - SF12)
sf_t sf = SF7;

// Set center frequency
uint32_t  freq = 868100000; // in Mhz! (868.1)

// Set location
float lat=48.0;
float lon=16.0;
int   alt=200;

/* Informal status fields */
static char platform[24] = "Single Channel Gateway"; /* platform definition */
static char email[40] = "meine@email.at"; /* used for contact email */
static char description[64] = "Dragino LoRa GPS HAT Raspberry 2"; /* used for free form description */

// define servers
#define SERVER1 "52.169.76.203" // The Things Network: router.eu.thethings.network #define PORT 1700 // The port on which to send data

Danach mit “make” builden:

make

Und schon kann ich den Gateway starten:

./single_chan_pkt_fwd

Einrichten bei The Things Network

Nun erstelle ich den Gateway in der TTN Console:

  • Register Gateway
  • dann wähle ich “I’m using the legacy packet forwarder”. Somit kann ich die Gateway EUI eingeben, die mir beim Start meines Single Channel Gateways angezeigt wurde.
  • die Description kann frei gewählt werden
  • der Frequency Plan ist Europe in meinem Fall und der
  • Router EU. Das ist auch die IP-Adresse, die wir oben in der main.cpp definiert haben. (Details siehe hier: https://www.thethingsnetwork.org/wiki/Backend/Connect/Gateway)
  • mehr muss man nicht tun (natürlich ist es schön, die GPS-Position und Höhe einzugeben)

Das war’s! Bei “Data” kann ich zusehen, wie die Daten ankommen, und binnen kurzer Zeit bestätigt sich die Vermutung, dass ich jeden dritten Counter sehen werde:

Stückliste zum Nachbauen

  1. Raspberry Pi (2 oder 3)
  2. Dragino LoRa GPS HAT, alternativ hier beim Hersteller mit längerer Lieferzeit zu erstehen: https://www.tindie.com/products/edwin/loragps-hat/
  3. ev. eine coole Antenne? (nicht unbedingt nötig, es ist eine beim LoRA GPS HAT dabei)

19 Gedanken zu „LoRa Single Channel Gateway“

  1. Hi Stefan,
    kannst du auch Daten in einer Application bei TTN sehen, oder siehst du nur, dass am Gateway etwas ankommt? TTN scheint nämlich keine Signle Channel Gateways mehr zu unterstützen. Da dein Eintrag recht neu ist, würde ich mich über eine Antwort sehr freuen. Ich probiere momentan das selbe Setup an eine IOT Plattform anzubinden.
    Beste Grüße
    Jonas

    1. Hallo,

      das funktioniert bei mir ganz normal. Im Moment habe ich keinen Sensor laufen, aber gestern Früh (30. Mai ca. 8:00) hat es noch normal funktioniert! Ich habe Pakete über den im Blog beschriebenen Single Channel Gateway empfangen.

      An welche IoT-Plattform bindest du deine Application an?

      LgS

      1. Hi Stefan, danke für die schnelle Antwort.

        The Things Network unterstützt Single Channel Gateways seit 2 Monaten nicht mehr und das haben mir die letzten zwei Wochen auch bestätigt 😀 https://www.thethingsnetwork.org/wiki/Hardware/Gateways/Single-Channel-Gateway

        Loriot habe ich ausprobiert. Da wird allerdings auch der SX1276/SX1278, der eben als Transceiver auf dem Dragino HAT arbeitet, nicht unterstützt. Und die Möglichkeit eines Packet Forwarders läuft ebenso nicht bei Loriot.

        Alle weiteren ThingSpeak, SensorCloud, Firebase… werden in Foren usw. eben auch nur mit einen Multi-Channel Gateway betrieben.

        Es bleibt also, meiner Meinung nach, nur noch die Möglichkeit auf Basis des SX1301 zB. mit dem IMST iC880A auf einem Raspberry Pi ein Gateway zu konfigurieren.

        1. Hallo,

          ich habe meinen Single Channel Gateway (wie im Blog beschrieben) gerade getestet. Funktioniert einwandfrei. Ich glaube, es geht eher darum, dass er nicht LoRaWAN-kompatibel ist und daher nicht “supportet” wird. Funktionieren tut’s weiterhin problemlos – halt mit den Einschränkungen, die ein Single-Channel-Gateway hat…

          Meinen letzten Single-Channel-GW hab’ ich erst vor weniger als 14 Tagen in Betrieb genommen: funktioniert! (jetzt gerade überprüft)

          LgS

          1. Hallo nochmal,

            ich habe mir gerade das AMA Video von TTN angesehen: Single Channel Gateways werden weiterhin supportet. Sie sehen aber Probleme, wenn die Frequenzen gemeinsam mit LoRaWAN-kompatiblen Gateways genutzt werden, weil diese Kanäle dann schnell überlastet sind und LoRaWAN-Implementierungen schadet. TTN scheint bemüht zu sein, eine eigene Frequenz zu bekommen, die dann für Single Channel-Gateways exklusiv genutzt wird. Diese muss natürlich in den Sensoren auch erst möglich gemacht werden.
            Siehe ca. Minute 42 im Video: https://www.youtube.com/watch?v=CFynqvmhKOw

            LgS

  2. Hi Stefan,

    I’m using the same Lora HAT and raspberry pi2 as the receiver. I’m using Heltec as the Lora transmitter on 915 MHz. Heltec WiFi LoRa 32 – ESP32 with OLED and SX1278 (https://robotzero.one/heltec-wifi-lora-32/)

    The code is running but it seem that it dropping many packets.

    stat update: 2017-12-28 14:39:57 GMT 4 packets received
    Packet RSSI: -45, RSSI: -100, SNR: 8, Length: 10 Message:’Hello..335′
    rxpk update: {“rxpk”:[{“tmst”:2127389231,”freq”:915.0,”chan”:0,”rfch”:0,”stat”:1,”modu”:”LORA”,”datr”:”SF7BW125″,”codr”:”4/5″,”rssi”:-45,”lsnr”:8.0,”size”:10,”data”:”SGVsbG8uLjMzNQ==”}]}
    Packet RSSI: -51, RSSI: -98, SNR: 9, Length: 10 Message:’Hello..336′
    rxpk update: {“rxpk”:[{“tmst”:2132427584,”freq”:915.0,”chan”:0,”rfch”:0,”stat”:1,”modu”:”LORA”,”datr”:”SF7BW125″,”codr”:”4/5″,”rssi”:-51,”lsnr”:9.0,”size”:10,”data”:”SGVsbG8uLjMzNg==”}]}
    stat update: 2017-12-28 14:40:27 GMT 6 packets received
    stat update: 2017-12-28 14:40:57 GMT 6 packets received
    Packet RSSI: -44, RSSI: -97, SNR: 8, Length: 10 Message:’Hello..345′
    rxpk update: {“rxpk”:[{“tmst”:2177769572,”freq”:915.0,”chan”:0,”rfch”:0,”stat”:1,”modu”:”LORA”,”datr”:”SF7BW125″,”codr”:”4/5″,”rssi”:-44,”lsnr”:8.0,”size”:10,”data”:”SGVsbG8uLjM0NQ==”}]}
    stat update: 2017-12-28 14:41:27 GMT 7 packets received

    Can you pls advice what should I check? Both of them are just near by.

  3. Hallo,

    ich hätte mal zwei Fragen

    Sind weitere Installationen notwendig für den Packet Forwarder notwendig damit den Gateway Daten zu den TTN sendet, oder ist alles in diesem Zip-dtaei enthalten ?

    wget https://github.com/tftelkamp/single_chan_pkt_fwd/archive/master.zip

    Die zweite Frage ist dass das Gateway auf TTN schon connected ist, allerdings ist der traffic leer und das Gateway wird nach jeder Stunde not connected. Um zu starten muss ich jedes mal ./single_chan_pkt_fwd in PuTTY eintippen. Weißt du vielleicht voran es liegt?

    Danke im Voraus.

    Gruß
    Jean

    1. Hallo,

      ja, auf dem Github-Link ist alles enthalten.

      Es gibt die Möglichkeit Logging aufzudrehen oder den Packet Forwarder im Vordergrund offen zu lassen. Falls das Problem reproduzierbar ist (danach klingt es), sollte dort eine Fehlermeldung aufscheinen, die Hinweise zum Problem gibt.

      Ist das Gerät (Raspberry?) mit NTP synchronisiert? Wenn die Zeitverschiebung zwischen lokaler Uhr und tatsächlicher Zeit zu groß ist, könnte es zu ähnlichen Effekten kommen.

      LgS

    1. Danke für die freundliche Rückmeldung!

      Mir ist keines bekannt. Falls du eines ergooglest, würde ich mich freuen, wenn du es mich wissen lässt.

      Generell empfehle ich Single Channel Gateways eher zu vermeiden. Die Preise für vollwertige LoRaWAN-Gateways (auch auf Raspi-Basis, zB. mit IMST ic880a oder RAK Modul) sind preislich im Verhältnis nur ein wenig teurer für viel mehr Leistung und pot. Compliance mit dem LoRaWAN-Standard. Auch die Github Repos sind vielfältiger und aktueller.

      LgS

    1. Hallo,

      ich kenne keine Lösung für APRS auf Basis dieses HATs, falls du’s zum Laufen kriegst, würde es mich interessieren.

      Grundsätzlich wäre meine Empfehlung, wie in den Links oben beschrieben. Dafür gibt es auch (fertige) Software bzw. Code.

      LgS

  4. Hi, das single channel gateway ist ja leider nicht ganz Lora konform. Gibt es schon praktische Erfahrung mit dem Dragino LPS8 Indoor LoRaWAN Gateway? Scheint eine günstige aber vollwertige Alternative zu anderen gateways zu sein. Es gibt ein wenig darüber im Internet (z.B. https://www.thethingsnetwork.org/community/berlin/post/kurz-ausprobiert-das-neue-dragino-indoor-lora-gateway-lps8 ) – aber hat zufällig jemand damit schon praktische Erfahrung?

Schreibe einen Kommentar zu Jonas Antworten abbrechen