Lorarx: Unterschied zwischen den Versionen

Aus DXL-Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Markierung: Zurückgesetzt
Zeile 1: Zeile 1:
== Über lorarx ==
== Über lorarx ==
Dieses Wiki ist noch nicht vollständig! Mithilfe erwünscht!


lorarx ist ein Dekoder für LoRa APRS mithilfe eines RTL-SDR USB Sticks (und Ähnlichem). lorarx benötigt wie [[afskmodem]] das Empfangsmodul [[sdrtst]] und den SDR-Server [[rtl-tcp]] zum funktionieren.
lorarx ist ein Dekoder für LoRa APRS mithilfe eines RTL-SDR USB Sticks (und Ähnlichem). lorarx benötigt wie [[afskmodem]] das Empfangsmodul [[sdrtst]] und den SDR-Server [[rtl-tcp]] zum funktionieren.

Version vom 29. August 2022, 18:25 Uhr

Über lorarx

Dieses Wiki ist noch nicht vollständig! Mithilfe erwünscht!

lorarx ist ein Dekoder für LoRa APRS mithilfe eines RTL-SDR USB Sticks (und Ähnlichem). lorarx benötigt wie afskmodem das Empfangsmodul sdrtst und den SDR-Server rtl-tcp zum funktionieren.

Wichtig:

  • sdrtst muss mindestens den Stand vom 18. Mai 2022 haben um lorarx nutzen zu können!
  • Nachträglicher Download von lorarx und dem aktuellen sdrtst bei OE5DXL, z.B. hier: http://oe5dxl.hamspirit.at:8025/aprs/bin/

Parameter in der Kurzübersicht

Decode lora out of IQ-File/Pipe with exact samplerate=bandwidth
 -a <afc-speed>     follow frequency drift, 0 off (0.2), on sf<11 (0)
 -b <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                 use crc on implicit header
 -c <cr>            coding rate and enable implicit header (4..8) (else from header)
 -d                 swith off collision detection (less cpu but loose stronger frames starting in weaker
 -D                 if dcd lost go on decoding until frame length limit (for external FEC or monitoring)
 -F                 max. block energy FEC off (hamming code fec remains on) (on)
 -f u8|i16|f32      IQ data format
 -g <dB>            add to measured signal level (0.0)
 -h                 this
 -i <file>          IQ-filename or pipe
 -L <x.x.x.x:destport>  as -U but AXUDPv2 with metadata for igate
                      may be repeated with same -b but different -s  after -L
 -l <len>           fixed datalen for implicit header else guess datalen from dcd
 -O <0..1>          optimize on off else automatic on sf/bw (-1)
 -s <sf>            spread factor (6..12) (12)
 -S <level>         enable squelch for low SF (0.0)
 -U <x.x.x.x:destport>  send frame in AXUDP
 -u <x.x.x.x:destport>  send raw frame bytes in udp
 -V                 very verbous
 -v                 verbous +:hamming ok, -:error, h:corrected, ~:weakest chirp replaced
                      ^:bins with maximum power sum used until fitting hamming
 -X <netid>         filter netwok-id (sync pattern), 1xx stops decode on wrong id (12)

example: sdrtst IQ output with FIR 125kHz: q 433.775 0 0 0 140000+125000,16
         sdrtst -t 127.0.0.1:1234 -i 1024000 -c sdrcfg.txt -r 250000 -s /dev/stdout -k | 
         lorarx -i /dev/stdin -f i16 -b 7 -v -L 127.0.0.1:2300 -s 12 -L 127.0.0.1:2301 -s 10

Ausführliche Beschreibung der Parameter

Parameter Beschreibung
a <afc-speed> follow frequency drift, 0 off (0.2), on sf<11 (0)
b <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 use crc on implicit header
c <cr> coding rate and enable implicit header (4..8) (else from header)
d swith off collision detection (less cpu but loose stronger frames starting in weaker
D if dcd lost go on decoding until frame length limit (for external FEC or monitoring)
F max. block energy FEC off (hamming code fec remains on) (on)
i16|f32 IQ data format
g <dB> add to measured signal level (0.0)
h Hilfetext.
i <file> IQ-filename or pipe
L <x.x.x.x:destport> as -U but AXUDPv2 with metadata for igate. may be repeated with same -b but different -s after -L
l <len> fixed datalen for implicit header else guess datalen from dcd
O <0..1> optimize on off else automatic on sf/bw (-1)
s <sf> spread factor (6..12) (12)
S <level> enable squelch for low SF (0.0)
U <x.x.x.x:destport> send frame in AXUDP
u <x.x.x.x:destport> send raw frame bytes in udp
V Zeige mehr Informationen in der Bildschirmausgabe.
v Zeige Informationen in der Bildschirmausgabe: +:hamming ok, -:error, h:corrected, ~:weakest chirp replaced, ^:bins with maximum power sum used until fitting hamming
X <netid> filter netwok-id (sync pattern), 1xx stops decode on wrong id (12)


Beispielkonfiguration

Eine Beispielkonfiguration des lorarx:

  • Achtung, eigene Pfade beachten und anpassen!
  • Audiopipe wird in Zeile 2 automatisch angelegt
  • updbox ist in dem Beispiel dabei, kann aber auch weggelassen werden. Dann Zielport bei lorarx ODER udpgate4 anpassen.
  • Bitte automatischen Zeilenumbruch bei udpgate4 beachten. Gehört natürlich alles in eine Zeile.
rtl_tcp -a 127.0.0.1 -d0 -p 18100 &
mknod lorapipe p 2> /dev/null
sdrtst -t 127.0.0.1:18100 -r 250000 -s lorapipe -c qrglora.txt -k -v &
lorarx -i lorapipe -f i16 -b 7 -s 12 -L 127.0.0.1:9702 -v &
udpbox -R 127.0.0.1:9702 -l 127.0.0.1:10702 -r 127.0.0.1:9999 -v &
udpgate4 -s MYCALL -R 127.0.0.1:0:10702#LoRa -H 10080 -I 1440 -u 50 -B 60 -n netbeacon.txt -g rotate.aprs2.net:14580#m/1,-t/t -p <PASSCODE> -t 14580 -w 14501 -D /home/pi/dxlAPRS/aprs/www/ -v &

Inhalt qrglora.txt:

p 5 0   # Bei Stick mit Frequenzabweichung passenden Wert hier angeben
p 8 1   # Autogain kann manchmal zu Problemen führen. Ggf. mit fixem Gain arbeiten.
q 433.775 0 0 0 140000+125000,16

Beispiel Bildschirmausgabe lorarx:

bw=125000.0 cr=from header sf=12 optimize=1 driftloop=0.200
12:0:id:12 cr:5 len:71 crc:ok lev:-12dB snr:5.4dB nf:-53.0dB txd:491 q:90% afc:-1748Hz df:120Hz
[++++++++++++++++]<[FF][01]DL1NUX-12>APLT00,WIDE1-1:!5014.06N/01059.01E[165/000/A=001097 !wrx![0A]
12:0:id:12 cr:5 len:81 crc:ok lev:-12dB snr:6.9dB nf:-54.3dB txd:491 q:89% afc:-7173Hz df:-572Hz
[++++++++++++++++++]<[FF][01]DL1NUX-11>APRS:!5014.07N/01059.02E>077/000/A=001100 Batt=3.67V LoRa 1W Tracker
12:0:id:12 cr:5 len:82 crc:ok lev:-12dB snr:5.5dB nf:-53.1dB txd:491 q:90% afc:-1579Hz df:116Hz
[++++++++++++++++++]<[FF][01]DL1NUX-12>APLT00,WIDE1-1:!5014.06N/01059.01E[165/000/A=001076TTGO Attila !w{b![0A]