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:
- aktuelle Raspian-Version installieren und Raspberry vorbereiten (resize disk, SSH-Zugriff für Fernzugriff aktivieren, Passwort und IP-Einstellungen ändern)
- 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
- Raspberry Pi (2 oder 3)
- Dragino LoRa GPS HAT, alternativ hier beim Hersteller mit längerer Lieferzeit zu erstehen: https://www.tindie.com/products/edwin/loragps-hat/
- ev. eine coole Antenne? (nicht unbedingt nötig, es ist eine beim LoRA GPS HAT dabei)
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
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
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.
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
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
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.
Hi,
it is difficult to tell: the LoRa transmission seems OK. But the packet seems to be encoded invalid.
I use this site to decode the payload online:
https://lorawan-packet-decoder-0ta6puiniaut.runkit.sh/
It tells „index out of range“, which points to a problem of the payload encoding, not LoRa(WAN) transmission itself.
LgS
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
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
Hi, danke für die super Erklärung für Neu Einsteiger !! TOP!!
Aber gibts schon ein aktuelleres rep auf Github?
Danke LG Alex
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
Hallo Stefan
1 Kanal müsste ja für APRS reichen ich werd mal das bauen
LG Ale Alex
Hallo,
Achtung: dieser Artikel orientiert sich an LoRa auf 868MHz für zB. The Things Network.
Für APRS LoRa auf 70cm gibt es für Funkamateure bereits viele fertige HW + SW, schau zB. auf:
https://www.lora-aprs.at/
https://www.aprs.at/
LgS
Bei mir am Blog wird übrigens LoRa APRS auch hier beschrieben:
https://stefan.schultheis.at/2017/aprs-dragino-lora-gps-shield-70-cm-433-mhz/
https://stefan.schultheis.at/2018/lora-aprs-gw-raspberry-pi-zero/
LgS
Hallo Stefan
danke die kenn ich bereits, ich möchts mit dem probieren, ein Kanal muss ja reichen bei APRS 🙂
https://de.aliexpress.com/item/4000048923840.html?spm=a2g0s.9042311.0.0.74a54c4detlyFy sollte als single gateway ja reichen, mal sehen
LG ALex
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
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?
Hallo,
ja, im ersten Satz weise ich eh darauf hin, dass dieser Gateway nicht LoRaWAN kompatibel ist (LoRa schon).
Siehe auch den Hinweis zur Wiener Community von The Things Network, in der ich aktiv bin. Deine Frage ist vmtl. im Forum dort besser aufgehoben: https://forum.openiot.network
Ich kenne das von dir konkret genannte Gateway leider nicht.
LgS