RTL-USB-Sticks mit SpyServer an Raspberry Pi


#1

Hallo in die Runde,

ich wollte an dieser Stelle einmal kurz über meine Erfahrungen mit dem SpyServer von AirSpy.com berichten und hier die ein oder andere Fußangel aus dem Weg räumen, bevor sich jemand weh tut:

Die Installation
Wer den SpyServer installieren möchte, tut dies am Besten auf einem aktuellen Raspbian (Scratch), denn die Jessy-Varianten besitzen eine veraltete GCC-Version. Hilfreich ist hier auf jeden Fall die Installationsanleitung unter https://www.rtl-sdr.com/rtl-sdr-tutorial-setting-up-and-using-the-spyserver-remote-streaming-server-with-an-rtl-sdr/

Die Konfiguration
Die Konfiguration der Software ist eigentlich ganz einfach gehalten - die config-Datei erklärt sich quasi von selbst. Wichtig ist der PPB-Parameter, in dem der Frequenzversatz kompensiert wird. Hier neigt man als Anfänger gerne dazu, denn PPM-Wert, den man aus dem SDRSharp kennt, wenn man den USB-Stick direkt an dem Rechner betreibt, auf dem die SDR-Software läuft, einzutragen. Doch das ist nur die halbe Miete… PPB steht für Parts-Per-Billion, PPM wiederum für Parts-Per-Million - bedeutet nun für uns, der PPM-Wert ist noch einmal um den Faktor 1000 zu vergrößern. Beispiel:
Im SDRSharp hat man einen Faktor von 68 ermittelt, wenn der Stick direkt angeschlossen ist. Nun muss man 68 * 1000 = 68000 beim PPB eintragen…

Klingt doof, ist aber insofern ganz genial, weil man so die Möglichkeit besitzt, das Ding relativ genau auf die Frequenz zu bringen. Ich persönlich habe hier einen RTL-SDR-Stick von Radioddity, der den Direct-Mode unterstützt und somit den Kurzwellenempfang von 100kHz bis 14,4 MHz (ohne Mirror-Images) unterstützt. Damit der nun genau auf der Frequenz liegt, habe ich über mehrere Stunden (verteilt über mehrere Tage hinweg) mir die Mühe gemacht, den Stick anhand eines Zeitzeichensenders abzugleichen:

Der Abgleich
Ich persönlich bevorzuge hier den russischen Zeitzeichensender auf 9996 kHz. Dieser hat einen relativ komplexen Sendeplan, der folgendermaßen ausschaut (Quelle: Wikipedia):
Minute Duration Signal
:00 :30 07:55 Unmodulated carrier
:08 :38 01:00 Transmitter off
:09 :39 00:55 Morse code station identification: “RWM RWM RWM…”
:10 :40 09:55 1 Hz pulses. Minute pulse 500 ms, others 100 ms, doubled with DUT1 code.
:20 :50 09:55 10 Hz pulses, 20 ms each. 40 ms on the second, 500 ms on the minute.

Bedeutet konkret für uns nun: zu der Minute 00 bzw. der Minute 30 einer jeden Stunde folgt für 7:55 Minuten die Aussendung eines Unmodulierten Trägers auf der Sendefrequenz.

Wie gleicht man nun ab?

Ich persönlich habe dies so gemacht, indem ich mit einem Virtual-Audio-Cable das CW-Get an den SDRSharp angebunden habe und hier die Funktion “auto-goto-maximum” aktiviert.

Dann stelle ich die Sollfrequenz im SDRSharp ein (9996 kHz) und schalte auf CW. Hierbei kann man einen Pitch-Tone einstellen. Ich habe diesen auf 750 Hz eingestellt. Nun zeigt einem das CW-Get die tatsächlich gehörte Frequenz an.

In der Folge ist es nun ein leichtes, durch Anpassen des PPB-Wertes sich auf’s Hertz genau an die Zielfrequenz heranzupirschen.

Bisherige Erfahrungen
Ich betreibe dieses Setup nun seit ca. 2 Wochen und bin vollends damit zufrieden. Durch entsprechende Portweiterleitung habe ich sogar die Möglichkeit innerhalb meines VPNs, den Receiver von “wo ich will” (im Rahmen der zur Verfügung stehenden Bandbreite) nutzen zu können. Im Grunde sollte dies sogar noch mit einer UMTS-Anbindung funktionieren, da der Stick mit ca. 34 kBbyte/s zu Buche schlägt.

Wer also einen Raspberry Pi (ich nutze einen 3B hier) und einen RTL-USB-Stick rumliegen hat, kann das Experiment ja mal wagen :slight_smile:

73 de Kim
DG9VH