Sdrradio

Aus DXL-Wiki
Version vom 15. September 2020, 20:14 Uhr von Dl1nux (Diskussion | Beiträge) (→‎Ausführliche Parameter)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Beschreibung sdrradio

sdrradio ist das UKW Radio für Zwischendurch, ganz simpel über die Konsole ansprechbar. Voraussetzung ist nur das rtl-sdr Paket und ein angeschlossener RTL-SDR USB-Stick. Der große Vorteil ist, dass außer rtl-sdr keine weiteren Bibliotheken notwendig sind und der Player auch dadurch eine sehr geringe CPU-Lust verursacht (selbst auf einem RaspberryPi 2B nur ca. 10% CPU-Last).

Wichtiger Hinweis vom 15.09.2020:

Unbedingt die aktuelle Version von sdrradio nutzen, welche bei OE5DXL auf dem Server liegt. Auf der Seite dxlaprs.hamspirit.at ist noch eine fehlerhafte Version in den Paketen enthalten, welche bei eingeschaltetem RDS zu Problemen führt. Dies ist in den neueren Versionen behoben.

Vorbereitungen

Zum Ausführen von sdrradio muss rtl-sdr installiert sein. Falls noch nicht vorhanden, bitte so installieren:

sudo apt-get install rtl-sdr

Den SDR-Server startet man dann vor sdrradio wie folgt:

rtl_tcp -a 127.0.0.1 -d0 -p 12345 
  • -a = Ziel-IP von sdrradio
  • -d0 = Wählt das erste sdr device. Das zweite wäre -d1 usw.
  • -p = Zielport von sdrradio

Mit dem Parameter -g kann man bei rtl_tcp noch die Antennenverstärkung manuell einstellen, falls es bei der Wiedergabe Verzerrungen etc. gibt durch zu starke Signale, z.B. -g 10 für nur 10 dB Verstärkung. Standardmäßig steht es auf "Automatik", was aber nicht immer zu guten Ergebnissen führt.

Parameter Kurzbeschreibung

sdrradio -h

Stereo UKW Radio from rtl:tcp (8 bit IQ via tcpip to 2 channel 16 bit pcm file/pipe 
 -a <khz>       max afc <kHz> (50) or 0 for off
 -f <freq>      tune to MHz or Hz
 -h             help
 -m             force mono
 -p <cmd> <value> send rtl_tcp parameter, ppm, tunergain ... -p 5 <ppm>
 -r             RDS on
 -s <soundfilename>  16bit 48kHz signed 2 channel sound stream/pipe
 -t <url:port>  connect rtl:tcp server (127.0.0.1:1234) or <iq-file:0>
 -v             show rssi (dB) and afc (khz)
 -w <khz>       IF-width, less cpu 3,6,12,24,48,96,192 (mono 96, stereo 192)
 Keys: +- (50kHz), m (toggle mono), r (toggle rds)
example: sdrradio -f 101.2 -s /dev/stdout -t 192.168.1.1:1234 -p 5 72 -p 8 1 -r -v | aplay


Ausführliche Parameter

Parameter Beschreibung
a <khz> Maximale AFC in kHz. Standard = 50 KHz. 0 = AFC Aus.
f <freq> Sendefrequenz des Radiosenders in MHz, z.B. "101.2" - Dezimalpunkt, kein Komma!
h Hilfetext
m Erzwinge Mono Wiedergabe
p <cmd> <value> Sende parameter an rtl_tcp, z.B. Frequenzabweichung in ppm, Tunerverstärkung usw. -p kann wiederholt werden für mehrere Parameter.
Beispiel: -p 5 0 -p 8 1 bedeutet keine Frequenzabweichung (-p 5) da Stick mit TCXO, AGC am Stick (-p 8) ist an.
Übersicht RTL-SDR Parameter: 3 gain mode, 4 gain, 5 freq corr, 6 if stage gain, 7 test mode, 8 agc mode
r RDS ist an. Zeigt Sendername und Titelinformationen an.
s <soundfilename> 16bit 48kHz signierter 2-Kanal Sound, Stream oder Pipe.
-s kann direkt eine wav-Datei erzeugen. Mit tee oder tail -f kann man dabei auch live mithören.
t <url:port> Verbinde mit rtl_tcp Server an Rechner-IP und Rechner-Port. Standard = 127.0.0.1:1234
v Zeige Feldstärke (rssi) in dB und AFC in kHz.
w <khz> Bandbreite der Zwischenfrequenz. Werte mit wenig CPU-Last sind 3,6,12,24,48,96,192. Standard ist 96 bei Mono und 192 bei Stereo.

Beispiele

sdrradio -f 93.5 -s /dev/stdout -t 127.0.0.1:12345 -p 5 0 -p 8 1 -r -v | aplay
  • -f spielt die Frequenz 93,5 MHz ab
  • -s pipet die Ausgabe direkt an stdout und | aplay am Ende nimmt dies direkt entgegen. Es sind dadurch weiter keine Pipe-Datei oder andere Kniffe notwendig.
  • -t sagt wo der rtl_tcp Server zu finden ist.
  • -p 5 0 und -p 8 1 sagen rtl_tcp, das der Stick keine Frequenzabweichung hat und die AGC eingeschaltet sein soll.
  • -r schaltet die RDS Anzeige ein.
  • -v zeigt noch die Feldstärke in dB und AFC in kHz an.

Nicht vergessen vorher den rtl_tcp Server zu starten, siehe oben!

Beispielausgabe:

pi@raspberrypi:~/dxlAPRS/aprs $ ./sdrradio -f 93.5 -s /dev/stdout -t 127.0.0.1:12345 -p 5 0 -p 8 1 -r -v | aplay
Wiedergabe: WAVE 'stdin' : Signed 16 bit Little Endian, Rate: 48000 Hz, stereo
93.50+0S69.1dB++++:BAYERN 1 A:Fish: Garden Of

Bedienung während der Wiedergabe

Während der Wiedergabe kann die Funktion mit den folgenden Tasten beeinflusst werden:

Taste Funktion
+ Frequenz + 50 KHz
- Frequenz - 50 KHz
m Umschaltung Mono / Stereo
r RDS an/aus

Je nach Terminal können die Tasten funktionieren, oder nicht. Unter Raspbian über SSH/Putty funktioniert es.