Ra02: Unterschied zwischen den Versionen
Dl1nux (Diskussion | Beiträge) |
Dl1nux (Diskussion | Beiträge) |
||
(37 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== Über ra02 == | == Über ra02 == | ||
ra02 ist ein Tool zum Ansteuern von LoRa Chips wie dem Semtech SX1278 für die Nutzung als LoRa APRS Gateway (RX und TX). Es sendet und empfängt Pakete in AXUDP und kann somit mit den restlichen Tools wie [[udpbox]] oder [[udpgate4] | ra02 ist ein Tool zum Ansteuern von LoRa Chips wie dem Semtech SX1278 für die Nutzung als LoRa APRS Gateway (RX und TX). Es sendet und empfängt Pakete in AXUDP und kann somit mit den restlichen Tools wie [[udpbox]] oder [[udpgate4]] zusammenarbeiten. | ||
<b>Wichtig:</b> | <b>Wichtig:</b> | ||
* ra02 benötigt | * ra02 benötigt seit der Version vom 07.11.2021 keine root Rechte bzw. udev Regeln mehr!!! | ||
* SPI muss auf dem RaspberryPi deaktiviert sein. Ggf. kontrollieren über raspi-config oder in der GUI. | * SPI muss auf dem RaspberryPi deaktiviert sein. Ggf. kontrollieren über raspi-config oder in der GUI. | ||
* | * Ab den Debian Bookworm Images für den RaspberryPi (2024) haben sich die GPIO Bezeichnugnen geändert! Bitte beachten! | ||
<b>Funktionsumfang:</b> | <b>Funktionsumfang:</b> | ||
* ra02 ist in der Lage mehrere LoRa | * ra02 ist in der Lage mehrere LoRa Chips parallel anzusteuern. Für jeden weiteren Chip wird nur ein weiterer PIN am GPIO benötigt (für den NSS PIN). MOSI, MISO und SCLK können gemeinsam verwendet werden. | ||
== Installation == | |||
ra02 ist seit Sommer 2022 offiziell in den Paketen und Quellen verfügbar und wird bei der Grundinstallation von dxlAPRS mit installiert. | |||
== Parameter in der Kurzübersicht == | == Parameter in der Kurzübersicht == | ||
<nowiki> | <nowiki> | ||
ra-02 (sx127x) via LPT or GPIO | ra-02 (sx127x) via LPT or multiple chips via GPIO lora + fsk + afsk tx, axudp or json by oe5dxl | ||
-A tx AFSK 1200 Baud | |||
-a AGC on | -a AGC on | ||
- | -B <n> tx bandwidth kHz 0:7.8 1:10.4 2:15.6 3:20.8 4:31.25 5:41.7 6:62.5 7:125 8:250 9:500 (7) | ||
-c <cr> coding rate 5..8 (5) | -b <n> rx bandwidth (7) | ||
- | -C <cr> tx coding rate 5..8 (5) | ||
-c <cr> rx coding rate 5..8 (5) | |||
-D <Hz> (a)fsk deviation +-Hz (3000) | |||
-d do not send while DCD on this band or if dcd on tx sf/bw) | |||
timebase is detection duration, some ms see chip manual | timebase is detection duration, some ms see chip manual | ||
-F < | -E Send UDP frame unmodified in FSK up to 1500Byte eg. for POCSAG | ||
-f < | -e <n> lna gain 6..1, 1 is maximum gain! see chip manual(1) | ||
-g < | -F <MHz> tx MHz (433.775) (137..1020) | ||
-H <n> | -f <MHz> rx MHz (433.775) (137..1020) | ||
-G [-]<baud> Send GFSK <baud> -baud same but g3ruh scrambler off (490..250000) | |||
-g [-]<baud> Rx GFSK <baud> -baud same but g3ruh scrambler off (490..250000) | |||
-H <n> Preamble length (8) sx seems to need minimum 4 (8) | |||
-h this | -h this | ||
-L ip:sendport:listenport AXUDPv2 data, | -I tx implicit header on | ||
-i rx implicit header on | |||
-J <x.x.x.x:destport> send demodulated data(base64) with metadata in json | |||
-K tx unmodified axudp and split if too long, rx autodetect | |||
-L ip:sendport:listenport AXUDPv2 data, apply before all other parameters for this channel | |||
repeat for more tx contexts with different listen ports | repeat for more tx contexts with different listen ports | ||
same rx data are sent to all non zero sendports | |||
-l <n> lna boost 0..3, more for better ip3 by more supply current (3) | |||
-l <n> lna boost 0..3, more better ip3 by more supply current (3) | -N <netid> network id tx (sync word) (not use 34=lorawan) (12) | ||
- | -n <netid> network id rx (sync word)) (12) | ||
- | -O 0 | 1 tx low datarate optimize 0=off 1=on else automatic (-1) | ||
- | -o 0 | 1 rx low datarate optimize 0=off 1=on else automatic (-1) | ||
-P <ppm> x-tal correction +-128 (0.0 | -P <ppm> x-tal correction +-128 (0.0), datarate correction may be overwritten by -X | ||
-p <nss> <mosi> <miso> <sck> GPIO numbers (8 10 9 11) | -p <nss> <mosi> <miso> <sck> GPIO numbers, apply before all parameter to this chip | ||
repeat for more chips (8 10 9 11) | |||
with different <nss> pins. Sharing <miso> needs <nss> high | |||
on not configed chips by pullup or setting nss-gpio high with other tools | |||
-Q tx invert IQ (or give negative -S) | |||
-q rx invert IQ (or give negative -s) | |||
-R <n> PaRamp how fast tx goes to power, see chip manual (9) | -R <n> PaRamp how fast tx goes to power, see chip manual (9) | ||
-r <n> add to rssi value to compensate internal and external preamps (0) | -r <n> add to rssi value to compensate internal and external preamps (0) | ||
-U ip:sendport:receiveport AXUDP data (no metadata) | -S <sf> tx spread factor 6..12 (12) -6..-12 for invers chirps same as -Q | ||
-s <sf> rx spread factor 6..12 (12) -6..-12 for invers chirps same as -q | |||
-T <n> (A)FSK txdel in byte (6), not used for raw mode -E | |||
-U ip:sendport:receiveport AXUDP data, same as -L but standard AXUDP (no metadata) | |||
-u <us> <us> sleep time between device polls rx/(a)fsk tx, more:faster response, more cpu (30000 10000) | |||
afsk needs 20000 or less to avoid underruns | |||
-V show more infos on stdout | -V show more infos on stdout | ||
-v show some infos on stdout | -v show some infos on stdout | ||
-w <dBm> tx power | -W <symbols> maximal rx preamble chirps before restart rx, against spoofing (250) | ||
-w <dBm> tx power 2..17 (10), 0 tx off | |||
-X <ppm> data rate correction (0) | |||
-Z <n> set overcurrent protection, use with care, see chip manual | |||
ra02 -d | ra02 -L 127.0.0.1:9000:9001 -d -r -10 -f 433.775 -w 17 -v | ||
ra02 -p 8 10 9 11 -L 127.0.0.1:2400:2401 -P -2 -d -S 9 -B 6 -F 434.1 -f 433.775 -s 12 -b 7 -L 127.0.0.1:0:2400 -v | |||
ra02 -P <gpio/chip1> -L ... <parameters chip1 tx1/rx> -L <parameters chip1 tx2> ... -P <gpio/chip2> -L ... <parameters chip2 tx1/rx> -L ... -v | |||
</nowiki> | </nowiki> | ||
Zeile 53: | Zeile 79: | ||
! Parameter!! Beschreibung | ! Parameter!! Beschreibung | ||
|- | |- | ||
| a|| AGC ein | | A|| Sende AFSK 1200 Baud. | ||
|- | |||
| a|| AGC ein. | |||
|- | |||
| B|| Bandbreite beim Senden in kHz 0:7.8 1:10.4 2:15.6 3:20.8 4:31.25 5:41.7 6:62.5 7:125 8:250 9:500 (Standard = 7 -> 125 KHz). | |||
|- | |||
| b <n>|| Bandbreite beim Empfangen in KHz 0:7.8 1:10.4 2:15.6 3:20.8 4:31.25 5:41.7 6:62.5 7:125 8:250 9:500 (Standard = 7 -> 125 KHz). | |||
|- | |||
| C <cr>|| Coding Rate beim Senden 5..8 (Standard = 5). | |||
|- | |- | ||
| | | c <cr>|| Coding Rate beiM Empfangen 5..8 (Standard = 5). | ||
|- | |- | ||
| | | D <Hz>|| (A)FSK Deviation in +/- Hz (Standard = 3000). | ||
|- | |- | ||
| d | | d|| Sende nicht während aktiver DCD (Beim Senden bezogen auf Bandbreite/Spreadfaktor). Zeitbasis ist die Daier der Erknnung, einige Millisekunden, siehe Manual zum Chip. | ||
|- | |- | ||
| | | E|| Sende unmodifizierten UDP Frame in FSK bis zu 1500 Byte Länge, z.B. für POCSAG. | ||
|- | |- | ||
| | | F <mhz>|| Sendefrequenz in MHz (Standard = 433.775). | ||
|- | |- | ||
| | | f <mhz>|| Empfangsfrequenz in MHz (Standard = 433.775). | ||
|- | |- | ||
| H <n>|| Preample | | G [-]<baud>|| Sende GFSK in <baud>. -baud bedeutet das Gleiche, jedoch deaktiviert den G3RUH scrambler. Gültige Werte 490 ... 250000. | ||
|- | |||
| g <n>|| Empfangsverstärkung 6..1. 1 ist die Maximalverstärkung. Siehe auch Chip-Manual (Standard = 1). | |||
|- | |||
| H <n>|| Länge der Preample (Standard = 8). SX Chips benötigen vermutlich mindestens den Wert 4. | |||
|- | |- | ||
| h|| Hilfetext | | h|| Hilfetext | ||
|- | |- | ||
| L ip:sendport:listenport|| | | I|| Impliziten Header beim Senden einschalten (CR, Framelänge und CRC sind dann fix vorgegeben und werden nicht mitgesendet, Daten werden sofort gesendet) | ||
|- | |||
| i|| Impliziten Header beim Empfangen einschalten (CR, Framelänge und CRC sind dann fix vorgegeben und werden nicht erwartet, Daten werden sofort gesendet) | |||
|- | |||
| J|| Aktiviere Überspannungsschutz. Bitte mit Vorsicht benutzen und unbedingt das Chip Manual prüfen. | |||
|- | |||
| L ip:sendport:listenport|| Datenstrom in AXUDP v2. Diesen Parameter unbedingt vor allen anderen Parametern für diesen Kanal angeben. Kann für mehrere Sende-Datenströme mit abweichenden Ports wiederholt werden. | |||
|- | |||
| l <n>|| Vorverstärker 0..3. Bessere IP3 durch mehr Versorgungsspannung (Standard = 3). | |||
|- | |||
| n <netid>|| Netzwerk-ID (sync word). Bitte nicht 34=lorawan verwenden. (Standard = 12). | |||
|- | |||
| O <offon>|| Optimierung bei geringer Datenrate (Sendezweig). 0 = Aus, 1 = An, ansonsten -1 für Automatik. | |||
|- | |||
| o <offon>|| Optimierung bei geringer Datenrate (Empfangszweig). 0 = Aus, 1 = An, ansonsten -1 für Automatik. | |||
|- | |||
| P <ppm>|| Korrektur des TCXO in ppm +-128 (Standard = 0.0). | |||
|- | |- | ||
| | | p <nss> <mosi> <miso> <sck>|| GPIO Nummern der NSS, MOSI, MISO und SCK Verbindung (Standard = 8 10 9 11). | ||
|- | |- | ||
| | | Q || Invertiere IQ beim Senden. | ||
|- | |- | ||
| | | q || Invertiere IQ beim Empfangen. | ||
|- | |- | ||
| | | S <sf>|| LoRa Spreadfactor (Spreizfaktor) im Sendezweig 6..12 (Standard = 12). | ||
|- | |- | ||
| | | s <sf>|| LoRa Spreadfactor (Spreizfaktor) im Empfangszweig 6..12 (Standard = 12). | ||
|- | |- | ||
| | | R <n>|| PaRamp how fast tx goes to power, see chip manual (9) (Hat wer die genaue Erklärung? Bitte Info!). | ||
|- | |- | ||
| | | r <n>|| Zum RSSI Wert hinzufügen um interne oder externe Vorverstärker auszugleichen (Standard = 0). | ||
|- | |- | ||
| | | T <n>|| (A)FSK TX-Delay in byte (Standard = 4). Wird nicht für den RAW-Modus -E benötigt. | ||
|- | |- | ||
| | | u <µs> <µs>|| Ruhezeit zwischen dem Pollen vom Chip RX/(A)FSK TX. Je Höher der Wert, umso höher die CPU Last (Standard = 500000 200000) | ||
|- | |- | ||
| U ip:sendport:receiveport|| AXUDP Daten ohne Metadaten wie TXD, AFC usw. (siehe auch -L) | | U ip:sendport:receiveport|| AXUDP Daten ohne Metadaten wie TXD, AFC usw. (siehe auch -L) | ||
Zeile 97: | Zeile 151: | ||
| v|| Zeige Informationen in der Bildschirmausgabe. | | v|| Zeige Informationen in der Bildschirmausgabe. | ||
|- | |- | ||
| w <dBm>|| Sendeleistung in dBm 0..17 (Standard = 10) | | w <dBm>|| Sendeleistung in dBm 0..17 (Standard = 10). 1W Module haben noch eine PA dahinter und werden ebenfalls mit den niedrigen Werten angesprochen. Wert 0 = TX aus. | ||
|} | |} | ||
== Hinweise für den RaspberryPi == | |||
Für die neueren Betriebsystemversionen des RaspberryPi (Bookworm ab 2024) haben sich die GPIO Bezeichnungen geändert. Dies betrifft den Betrieb von RA02 mit einem an die GPIOs angeschlossenen LoRa Chip. Anstatt "ra02 -p 8 10 9 11 ..." muss es abhängig vom verwendeten Modell wie folgt lauten: | |||
* RaspberryPi bis Version 4: "ra02 -p 520 522 521 523 ..." | |||
* RaspberryPi ab Version 5 : "ra02 -p 579 581 580 582 ..." | |||
Überprüfen kann man dies mit dem Befehl: | |||
<nowiki> | |||
cat /sys/kernel/debug/gpio</nowiki> | |||
Unter '''gpiochip0:''' sind dann die anzugebenden GPIOs für GPIO8,10,9,11 aufgeführt. | |||
Beispiel RaspberryPi 3: | |||
<nowiki> | |||
gpiochip0: GPIOs 512-565, parent: platform/3f200000.gpio, pinctrl-bcm2835: | |||
gpio-512 (ID_SDA ) | |||
gpio-513 (ID_SCL ) | |||
gpio-514 (GPIO2 ) | |||
gpio-515 (GPIO3 ) | |||
gpio-516 (GPIO4 ) | |||
gpio-517 (GPIO5 ) | |||
gpio-518 (GPIO6 ) | |||
gpio-519 (GPIO7 ) | |||
gpio-520 (GPIO8 ) <==== | |||
gpio-521 (GPIO9 ) <==== | |||
gpio-522 (GPIO10 ) <==== | |||
gpio-523 (GPIO11 ) <==== | |||
gpio-524 (GPIO12 ) | |||
gpio-525 (GPIO13 ) | |||
gpio-526 (GPIO14 ) | |||
gpio-527 (GPIO15 ) | |||
gpio-528 (GPIO16 ) | |||
gpio-529 (GPIO17 ) | |||
gpio-530 (GPIO18 ) | |||
gpio-531 (GPIO19 ) | |||
gpio-532 (GPIO20 ) | |||
gpio-533 (GPIO21 ) | |||
gpio-534 (GPIO22 ) | |||
gpio-535 (GPIO23 ) | |||
gpio-536 (GPIO24 ) | |||
gpio-537 (GPIO25 ) | |||
gpio-538 (GPIO26 ) | |||
gpio-539 (GPIO27 ) | |||
gpio-540 (HDMI_HPD_N |hpd ) in hi ACTIVE LOW | |||
gpio-541 (STATUS_LED_G |ACT ) out lo | |||
gpio-542 (CTS0 ) | |||
gpio-543 (RTS0 ) | |||
gpio-544 (TXD0 ) | |||
gpio-545 (RXD0 ) | |||
gpio-546 (SD1_CLK ) | |||
gpio-547 (SD1_CMD ) | |||
gpio-548 (SD1_DATA0 ) | |||
gpio-549 (SD1_DATA1 ) | |||
gpio-550 (SD1_DATA2 ) | |||
gpio-551 (SD1_DATA3 ) | |||
gpio-552 (PWM0_OUT ) | |||
gpio-553 (PWM1_OUT ) | |||
gpio-554 (ETH_CLK ) | |||
gpio-555 (WIFI_CLK ) | |||
gpio-556 (SDA0 ) | |||
gpio-557 (SCL0 ) | |||
gpio-558 (SMPS_SCL ) | |||
gpio-559 (SMPS_SDA ) | |||
gpio-560 (SD_CLK_R ) | |||
gpio-561 (SD_CMD_R ) | |||
gpio-562 (SD_DATA0_R ) | |||
gpio-563 (SD_DATA1_R ) | |||
gpio-564 (SD_DATA2_R ) | |||
gpio-565 (SD_DATA3_R ) | |||
</nowiki> | |||
== Konfigurationsbeispiele == | == Konfigurationsbeispiele == | ||
Zeile 105: | Zeile 231: | ||
<nowiki> | <nowiki> | ||
ra02 | ra02 -L 127.0.0.1:9001:0 -p 8 10 9 11 -a -v | ||
</nowiki> | </nowiki> | ||
* -L sendet AXUDP Daten der empfangenen Pakete an Port 9001. Zu sendende Pakete sind nicht vorgesehen. | |||
* -p definiert die 4 benötigten GPIO Ports an denen die vier wichtigen Datenleitungen angschlossen sind (nss, mosi, miso, sck). 8, 10, 9 und 11 sind dei Standard-GPIOs der bekannten LoRa HATs. | * -p definiert die 4 benötigten GPIO Ports an denen die vier wichtigen Datenleitungen angschlossen sind (nss, mosi, miso, sck). 8, 10, 9 und 11 sind dei Standard-GPIOs der bekannten LoRa HATs. | ||
* - | * -a schaltet die AGC an | ||
* -v zeigt Informationen in der Bildschirmausgabe an, z.B. empfangene Pakete (optional). | * -v zeigt Informationen in der Bildschirmausgabe an, z.B. empfangene Pakete (optional). | ||
Zeile 117: | Zeile 244: | ||
<nowiki> | <nowiki> | ||
ra02 | ra02 -L 127.0.0.1:9001:9002 -p 8 10 9 11 -w 17 -a -v | ||
</nowiki> | </nowiki> | ||
* -L sendet AXUDP Daten der empfangenen Pakete an Port 9001 und hört auf Port 9002 auf zu sendende Pakete. | |||
* -p definiert die 4 benötigten GPIO Ports an denen die vier wichtigen Datenleitungen angschlossen sind (nss, mosi, miso, sck). 8, 10, 9 und 11 sind die Standard-GPIOs der bekannten LoRa HATs. | * -p definiert die 4 benötigten GPIO Ports an denen die vier wichtigen Datenleitungen angschlossen sind (nss, mosi, miso, sck). 8, 10, 9 und 11 sind die Standard-GPIOs der bekannten LoRa HATs. | ||
* -a schaltet die AGC an | * -a schaltet die AGC an | ||
* -w 17 Modul sendet mit voller (17 dBm) Sendeleistung. | |||
* -w Modul sendet mit voller Sendeleistung. | |||
* -v zeigt Informationen in der Bildschirmausgabe an, z.B. empfangene Pakete (optional). | * -v zeigt Informationen in der Bildschirmausgabe an, z.B. empfangene Pakete (optional). | ||
An Port 9001 kann dann z.B. eine [[udpbox]] oder das [[udpgate4]] lauschen. Zu sendende Pakete, z.B. vom Digi in [[udpbox]] oder aus dem APRS-IS (z.B. Nachrichten oder APRS-IS>RF Infos), müssen dann an Port 9002 geschickt werden. | An Port 9001 kann dann z.B. eine [[udpbox]] oder das [[udpgate4]] lauschen. Zu sendende Pakete, z.B. vom Digi in [[udpbox]] oder aus dem APRS-IS (z.B. Nachrichten oder APRS-IS>RF Infos), müssen dann an Port 9002 geschickt werden. | ||
=== iGate mit 2x LoRa Chip: RX 433,775 und 433,900 und TX auf 433,900 MHz === | |||
<nowiki> | |||
ra02 -p 8 10 9 11 -a -L 127.0.0.1:9001:0 -f 433.775 -p 5 10 9 11 -a -L 127.0.0.1:9002:9003 -f 433.900 -F 433.900 -w 17 -v | |||
</nowiki> | |||
Für LoRa APRS mit dem Tool ra02 werden neben +3,3V und GND nur die Datenpins MOSI, MISO, SC(L)K und NSS/Enable benötigt. In anderen Beschreibungen wird noch RST und DIO0 belegt. Diese sind aber nicht notwendig für den Betrieb mit ra02. | |||
Die MOSI/MISO/SC(L)K Pins können von allen LoRa Chips gemeinsam genutzt werden. Nur der NSS/Enable PIN muss für jeden Chip verschieden sein. | |||
* -L sendet AXUDP Daten der empfangenen Pakete von Chip 1 an Port 9001 und von Chip 2 auf Port 9002. Auf UDP Port 9003 hört der Chip 2 für Pakete die er auf 433,900 MHz aussenden soll. | |||
* -f ist die Empfangsfrequenz 433,775 (Chip 1) und 433,900 (Chip 2) sowie -F die Sendefrequenz 433,900 MHz (Chip 2) | |||
* -p definiert die 4 benötigten GPIO Ports an denen die vier wichtigen Datenleitungen angschlossen sind (nss, mosi, miso, sck). 8, 10, 9 und 11 sind die Standard-GPIOs der bekannten LoRa HATs. Der NSS Pin von Chip liegt in diesem Beispiel auf GPIO5 | |||
* -a schaltet die AGC an | |||
* -w 17 Modul sendet mit voller (17 dBm) Sendeleistung. | |||
* -v zeigt Informationen in der Bildschirmausgabe an, z.B. empfangene Pakete (optional). | |||
An Port 9001 und 9002 kann dann z.B. eine [[udpbox]] oder das [[udpgate4]] lauschen. Zu sendende Pakete, z.B. vom Digi in [[udpbox]] oder aus dem APRS-IS (z.B. Nachrichten oder APRS-IS>RF Infos), müssen dann an Port 9003 geschickt werden. | |||
== Tutorials == | |||
[https://www.dl1nux.de/lora-aprs-igate-mit-dxlaprs-und-ra02-auf-einem-raspberrypi/ LoRa APRS iGate mit dxlAPRS und ra02 auf einem RaspberryPi] |
Aktuelle Version vom 16. November 2024, 14:13 Uhr
Über ra02
ra02 ist ein Tool zum Ansteuern von LoRa Chips wie dem Semtech SX1278 für die Nutzung als LoRa APRS Gateway (RX und TX). Es sendet und empfängt Pakete in AXUDP und kann somit mit den restlichen Tools wie udpbox oder udpgate4 zusammenarbeiten.
Wichtig:
- ra02 benötigt seit der Version vom 07.11.2021 keine root Rechte bzw. udev Regeln mehr!!!
- SPI muss auf dem RaspberryPi deaktiviert sein. Ggf. kontrollieren über raspi-config oder in der GUI.
- Ab den Debian Bookworm Images für den RaspberryPi (2024) haben sich die GPIO Bezeichnugnen geändert! Bitte beachten!
Funktionsumfang:
- ra02 ist in der Lage mehrere LoRa Chips parallel anzusteuern. Für jeden weiteren Chip wird nur ein weiterer PIN am GPIO benötigt (für den NSS PIN). MOSI, MISO und SCLK können gemeinsam verwendet werden.
Installation
ra02 ist seit Sommer 2022 offiziell in den Paketen und Quellen verfügbar und wird bei der Grundinstallation von dxlAPRS mit installiert.
Parameter in der Kurzübersicht
ra-02 (sx127x) via LPT or multiple chips via GPIO lora + fsk + afsk tx, axudp or json by oe5dxl -A tx AFSK 1200 Baud -a AGC on -B <n> tx bandwidth kHz 0:7.8 1:10.4 2:15.6 3:20.8 4:31.25 5:41.7 6:62.5 7:125 8:250 9:500 (7) -b <n> rx bandwidth (7) -C <cr> tx coding rate 5..8 (5) -c <cr> rx coding rate 5..8 (5) -D <Hz> (a)fsk deviation +-Hz (3000) -d do not send while DCD on this band or if dcd on tx sf/bw) timebase is detection duration, some ms see chip manual -E Send UDP frame unmodified in FSK up to 1500Byte eg. for POCSAG -e <n> lna gain 6..1, 1 is maximum gain! see chip manual(1) -F <MHz> tx MHz (433.775) (137..1020) -f <MHz> rx MHz (433.775) (137..1020) -G [-]<baud> Send GFSK <baud> -baud same but g3ruh scrambler off (490..250000) -g [-]<baud> Rx GFSK <baud> -baud same but g3ruh scrambler off (490..250000) -H <n> Preamble length (8) sx seems to need minimum 4 (8) -h this -I tx implicit header on -i rx implicit header on -J <x.x.x.x:destport> send demodulated data(base64) with metadata in json -K tx unmodified axudp and split if too long, rx autodetect -L ip:sendport:listenport AXUDPv2 data, apply before all other parameters for this channel repeat for more tx contexts with different listen ports same rx data are sent to all non zero sendports -l <n> lna boost 0..3, more for better ip3 by more supply current (3) -N <netid> network id tx (sync word) (not use 34=lorawan) (12) -n <netid> network id rx (sync word)) (12) -O 0 | 1 tx low datarate optimize 0=off 1=on else automatic (-1) -o 0 | 1 rx low datarate optimize 0=off 1=on else automatic (-1) -P <ppm> x-tal correction +-128 (0.0), datarate correction may be overwritten by -X -p <nss> <mosi> <miso> <sck> GPIO numbers, apply before all parameter to this chip repeat for more chips (8 10 9 11) with different <nss> pins. Sharing <miso> needs <nss> high on not configed chips by pullup or setting nss-gpio high with other tools -Q tx invert IQ (or give negative -S) -q rx invert IQ (or give negative -s) -R <n> PaRamp how fast tx goes to power, see chip manual (9) -r <n> add to rssi value to compensate internal and external preamps (0) -S <sf> tx spread factor 6..12 (12) -6..-12 for invers chirps same as -Q -s <sf> rx spread factor 6..12 (12) -6..-12 for invers chirps same as -q -T <n> (A)FSK txdel in byte (6), not used for raw mode -E -U ip:sendport:receiveport AXUDP data, same as -L but standard AXUDP (no metadata) -u <us> <us> sleep time between device polls rx/(a)fsk tx, more:faster response, more cpu (30000 10000) afsk needs 20000 or less to avoid underruns -V show more infos on stdout -v show some infos on stdout -W <symbols> maximal rx preamble chirps before restart rx, against spoofing (250) -w <dBm> tx power 2..17 (10), 0 tx off -X <ppm> data rate correction (0) -Z <n> set overcurrent protection, use with care, see chip manual ra02 -L 127.0.0.1:9000:9001 -d -r -10 -f 433.775 -w 17 -v ra02 -p 8 10 9 11 -L 127.0.0.1:2400:2401 -P -2 -d -S 9 -B 6 -F 434.1 -f 433.775 -s 12 -b 7 -L 127.0.0.1:0:2400 -v ra02 -P <gpio/chip1> -L ... <parameters chip1 tx1/rx> -L <parameters chip1 tx2> ... -P <gpio/chip2> -L ... <parameters chip2 tx1/rx> -L ... -v
Parameter ausführlich erklärt
Parameter | Beschreibung |
---|---|
A | Sende AFSK 1200 Baud. |
a | AGC ein. |
B | Bandbreite beim Senden in kHz 0:7.8 1:10.4 2:15.6 3:20.8 4:31.25 5:41.7 6:62.5 7:125 8:250 9:500 (Standard = 7 -> 125 KHz). |
b <n> | Bandbreite beim Empfangen in KHz 0:7.8 1:10.4 2:15.6 3:20.8 4:31.25 5:41.7 6:62.5 7:125 8:250 9:500 (Standard = 7 -> 125 KHz). |
C <cr> | Coding Rate beim Senden 5..8 (Standard = 5). |
c <cr> | Coding Rate beiM Empfangen 5..8 (Standard = 5). |
D <Hz> | (A)FSK Deviation in +/- Hz (Standard = 3000). |
d | Sende nicht während aktiver DCD (Beim Senden bezogen auf Bandbreite/Spreadfaktor). Zeitbasis ist die Daier der Erknnung, einige Millisekunden, siehe Manual zum Chip. |
E | Sende unmodifizierten UDP Frame in FSK bis zu 1500 Byte Länge, z.B. für POCSAG. |
F <mhz> | Sendefrequenz in MHz (Standard = 433.775). |
f <mhz> | Empfangsfrequenz in MHz (Standard = 433.775). |
G [-]<baud> | Sende GFSK in <baud>. -baud bedeutet das Gleiche, jedoch deaktiviert den G3RUH scrambler. Gültige Werte 490 ... 250000. |
g <n> | Empfangsverstärkung 6..1. 1 ist die Maximalverstärkung. Siehe auch Chip-Manual (Standard = 1). |
H <n> | Länge der Preample (Standard = 8). SX Chips benötigen vermutlich mindestens den Wert 4. |
h | Hilfetext |
I | Impliziten Header beim Senden einschalten (CR, Framelänge und CRC sind dann fix vorgegeben und werden nicht mitgesendet, Daten werden sofort gesendet) |
i | Impliziten Header beim Empfangen einschalten (CR, Framelänge und CRC sind dann fix vorgegeben und werden nicht erwartet, Daten werden sofort gesendet) |
J | Aktiviere Überspannungsschutz. Bitte mit Vorsicht benutzen und unbedingt das Chip Manual prüfen. |
L ip:sendport:listenport | Datenstrom in AXUDP v2. Diesen Parameter unbedingt vor allen anderen Parametern für diesen Kanal angeben. Kann für mehrere Sende-Datenströme mit abweichenden Ports wiederholt werden. |
l <n> | Vorverstärker 0..3. Bessere IP3 durch mehr Versorgungsspannung (Standard = 3). |
n <netid> | Netzwerk-ID (sync word). Bitte nicht 34=lorawan verwenden. (Standard = 12). |
O <offon> | Optimierung bei geringer Datenrate (Sendezweig). 0 = Aus, 1 = An, ansonsten -1 für Automatik. |
o <offon> | Optimierung bei geringer Datenrate (Empfangszweig). 0 = Aus, 1 = An, ansonsten -1 für Automatik. |
P <ppm> | Korrektur des TCXO in ppm +-128 (Standard = 0.0). |
p <nss> <mosi> <miso> <sck> | GPIO Nummern der NSS, MOSI, MISO und SCK Verbindung (Standard = 8 10 9 11). |
Q | Invertiere IQ beim Senden. |
q | Invertiere IQ beim Empfangen. |
S <sf> | LoRa Spreadfactor (Spreizfaktor) im Sendezweig 6..12 (Standard = 12). |
s <sf> | LoRa Spreadfactor (Spreizfaktor) im Empfangszweig 6..12 (Standard = 12). |
R <n> | PaRamp how fast tx goes to power, see chip manual (9) (Hat wer die genaue Erklärung? Bitte Info!). |
r <n> | Zum RSSI Wert hinzufügen um interne oder externe Vorverstärker auszugleichen (Standard = 0). |
T <n> | (A)FSK TX-Delay in byte (Standard = 4). Wird nicht für den RAW-Modus -E benötigt. |
u <µs> <µs> | Ruhezeit zwischen dem Pollen vom Chip RX/(A)FSK TX. Je Höher der Wert, umso höher die CPU Last (Standard = 500000 200000) |
U ip:sendport:receiveport | AXUDP Daten ohne Metadaten wie TXD, AFC usw. (siehe auch -L) |
V | Zeige mehr Informationen in der Bildschirmausgabe. |
v | Zeige Informationen in der Bildschirmausgabe. |
w <dBm> | Sendeleistung in dBm 0..17 (Standard = 10). 1W Module haben noch eine PA dahinter und werden ebenfalls mit den niedrigen Werten angesprochen. Wert 0 = TX aus. |
Hinweise für den RaspberryPi
Für die neueren Betriebsystemversionen des RaspberryPi (Bookworm ab 2024) haben sich die GPIO Bezeichnungen geändert. Dies betrifft den Betrieb von RA02 mit einem an die GPIOs angeschlossenen LoRa Chip. Anstatt "ra02 -p 8 10 9 11 ..." muss es abhängig vom verwendeten Modell wie folgt lauten:
- RaspberryPi bis Version 4: "ra02 -p 520 522 521 523 ..."
- RaspberryPi ab Version 5 : "ra02 -p 579 581 580 582 ..."
Überprüfen kann man dies mit dem Befehl:
cat /sys/kernel/debug/gpio
Unter gpiochip0: sind dann die anzugebenden GPIOs für GPIO8,10,9,11 aufgeführt.
Beispiel RaspberryPi 3:
gpiochip0: GPIOs 512-565, parent: platform/3f200000.gpio, pinctrl-bcm2835: gpio-512 (ID_SDA ) gpio-513 (ID_SCL ) gpio-514 (GPIO2 ) gpio-515 (GPIO3 ) gpio-516 (GPIO4 ) gpio-517 (GPIO5 ) gpio-518 (GPIO6 ) gpio-519 (GPIO7 ) gpio-520 (GPIO8 ) <==== gpio-521 (GPIO9 ) <==== gpio-522 (GPIO10 ) <==== gpio-523 (GPIO11 ) <==== gpio-524 (GPIO12 ) gpio-525 (GPIO13 ) gpio-526 (GPIO14 ) gpio-527 (GPIO15 ) gpio-528 (GPIO16 ) gpio-529 (GPIO17 ) gpio-530 (GPIO18 ) gpio-531 (GPIO19 ) gpio-532 (GPIO20 ) gpio-533 (GPIO21 ) gpio-534 (GPIO22 ) gpio-535 (GPIO23 ) gpio-536 (GPIO24 ) gpio-537 (GPIO25 ) gpio-538 (GPIO26 ) gpio-539 (GPIO27 ) gpio-540 (HDMI_HPD_N |hpd ) in hi ACTIVE LOW gpio-541 (STATUS_LED_G |ACT ) out lo gpio-542 (CTS0 ) gpio-543 (RTS0 ) gpio-544 (TXD0 ) gpio-545 (RXD0 ) gpio-546 (SD1_CLK ) gpio-547 (SD1_CMD ) gpio-548 (SD1_DATA0 ) gpio-549 (SD1_DATA1 ) gpio-550 (SD1_DATA2 ) gpio-551 (SD1_DATA3 ) gpio-552 (PWM0_OUT ) gpio-553 (PWM1_OUT ) gpio-554 (ETH_CLK ) gpio-555 (WIFI_CLK ) gpio-556 (SDA0 ) gpio-557 (SCL0 ) gpio-558 (SMPS_SCL ) gpio-559 (SMPS_SDA ) gpio-560 (SD_CLK_R ) gpio-561 (SD_CMD_R ) gpio-562 (SD_DATA0_R ) gpio-563 (SD_DATA1_R ) gpio-564 (SD_DATA2_R ) gpio-565 (SD_DATA3_R )
Konfigurationsbeispiele
Aufruf für ein reines RX-only iGate
ra02 -L 127.0.0.1:9001:0 -p 8 10 9 11 -a -v
- -L sendet AXUDP Daten der empfangenen Pakete an Port 9001. Zu sendende Pakete sind nicht vorgesehen.
- -p definiert die 4 benötigten GPIO Ports an denen die vier wichtigen Datenleitungen angschlossen sind (nss, mosi, miso, sck). 8, 10, 9 und 11 sind dei Standard-GPIOs der bekannten LoRa HATs.
- -a schaltet die AGC an
- -v zeigt Informationen in der Bildschirmausgabe an, z.B. empfangene Pakete (optional).
An Port 9001 kann dann z.B. eine udpbox oder das udpgate4 lauschen.
Aufruf für ein RX/TX iGate
ra02 -L 127.0.0.1:9001:9002 -p 8 10 9 11 -w 17 -a -v
- -L sendet AXUDP Daten der empfangenen Pakete an Port 9001 und hört auf Port 9002 auf zu sendende Pakete.
- -p definiert die 4 benötigten GPIO Ports an denen die vier wichtigen Datenleitungen angschlossen sind (nss, mosi, miso, sck). 8, 10, 9 und 11 sind die Standard-GPIOs der bekannten LoRa HATs.
- -a schaltet die AGC an
- -w 17 Modul sendet mit voller (17 dBm) Sendeleistung.
- -v zeigt Informationen in der Bildschirmausgabe an, z.B. empfangene Pakete (optional).
An Port 9001 kann dann z.B. eine udpbox oder das udpgate4 lauschen. Zu sendende Pakete, z.B. vom Digi in udpbox oder aus dem APRS-IS (z.B. Nachrichten oder APRS-IS>RF Infos), müssen dann an Port 9002 geschickt werden.
iGate mit 2x LoRa Chip: RX 433,775 und 433,900 und TX auf 433,900 MHz
ra02 -p 8 10 9 11 -a -L 127.0.0.1:9001:0 -f 433.775 -p 5 10 9 11 -a -L 127.0.0.1:9002:9003 -f 433.900 -F 433.900 -w 17 -v
Für LoRa APRS mit dem Tool ra02 werden neben +3,3V und GND nur die Datenpins MOSI, MISO, SC(L)K und NSS/Enable benötigt. In anderen Beschreibungen wird noch RST und DIO0 belegt. Diese sind aber nicht notwendig für den Betrieb mit ra02. Die MOSI/MISO/SC(L)K Pins können von allen LoRa Chips gemeinsam genutzt werden. Nur der NSS/Enable PIN muss für jeden Chip verschieden sein.
- -L sendet AXUDP Daten der empfangenen Pakete von Chip 1 an Port 9001 und von Chip 2 auf Port 9002. Auf UDP Port 9003 hört der Chip 2 für Pakete die er auf 433,900 MHz aussenden soll.
- -f ist die Empfangsfrequenz 433,775 (Chip 1) und 433,900 (Chip 2) sowie -F die Sendefrequenz 433,900 MHz (Chip 2)
- -p definiert die 4 benötigten GPIO Ports an denen die vier wichtigen Datenleitungen angschlossen sind (nss, mosi, miso, sck). 8, 10, 9 und 11 sind die Standard-GPIOs der bekannten LoRa HATs. Der NSS Pin von Chip liegt in diesem Beispiel auf GPIO5
- -a schaltet die AGC an
- -w 17 Modul sendet mit voller (17 dBm) Sendeleistung.
- -v zeigt Informationen in der Bildschirmausgabe an, z.B. empfangene Pakete (optional).
An Port 9001 und 9002 kann dann z.B. eine udpbox oder das udpgate4 lauschen. Zu sendende Pakete, z.B. vom Digi in udpbox oder aus dem APRS-IS (z.B. Nachrichten oder APRS-IS>RF Infos), müssen dann an Port 9003 geschickt werden.