Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
WorldRadio, der Raspberry als Welt- und Breitbandemfänger
#1
Hallo zusammen, 

nachdem mit dem von mir vorgestellten "iRadio" nun schon ein Internetradio mit dem Raspberry aufbaubar ist, möchte ich noch ein zusätzliches optionelles Paket vorstellen, mit dem man sein iRadio-Internetradio um einen analogen Beitbandempfänger erweitern kann. Als HF-Frontend benutzen wird hier preiswerte USB-Sticks mit folgenden Tunern:

Elonics E4000 : 52 - 2200 MHz with a gap from 1100 MHz to 1250 MHz (varies)
Rafael Micro R820T : 24 - 1766 MHz
Rafael Micro R828D: 24 - 1766 MHz
Fitipower FC0013: 22 - 1100 MHz (FC0013B/C, FC0013G has a separate L-band input, which is unconnected on most sticks)
Fitipower FC0012: 22 - 948.6 MHz
FCI FC2580: 146 - 308 MHz and 438 - 924 MHz (gap in between)


Über das Directsamplung mit oben genannten Geräten oder einem zusätzlichen Mischer sind auch Frequenzbereiche bis runter in den VLF problemlos möglich, ebenso aber können auch Bänder im GHz-Bereich auf den Eingangsbereich der Tuner abgestimmt werden.

Die Installation dieser Sticks erfolgt in Linux ja in der Regel über das Treiberpacket von osmocom.org (https://osmocom.org/projects/rtl-sdr/wiki/Rtl-sdr). Allerdings ist es mit den mitgelieferten Tools zwar generell möglich einen analogen Empfänger aufzubauen, aber dies ist sehr unbequem, da man zu Beispiel für jede Frequenz- oder Betriebsmodusänderung bestimmte Programme schließen und wieder öffnen muss. 
Ich habe darum ein Treiberpaket geschnürt, das einige Änderungen besitzt und mit dem es möglich ist, ganz einfach in C/C++ oder Python ein Empfänger zu realisieren.

Hier das Paket: 
.zip   WorldRadio.zip (Größe: 626,71 KB / Downloads: 29)


Dieses Treiberpacket (ich nenne es WorldRadio), wird wie das von OSMOCOM installiert, da es auf diesem ja direkt basiert. 

Nach dem Download und entpacken des Paketes gehen wir in die Konsole und wechseln in das Installationsverzeichnis des Treibers, es hat den Namen "WorldRadio".

Jetzt geben wir folgende Befehle in die Konsole ein, die ich wahrscheinlich schon gar nicht mehr erklären muss.

Zitat:cd rtl-sdr/
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig

Wie beim originalen Treiberpacket unterstützen wir auch die cmake-Optionen: -DINSTALL_UDEV_RULES=ON und -DDETACH_KERNEL_DRIVER=ON 
Diese haben die gleiche Bedeutung wie beim Original-Treiber.

Nach der Installtion stehen uns wieder die Bekannten rtl_ Tools für den Stick zur Verfügung.
Zusätzlich finden wir jetzt im Wurzelverzeichnis des Treiberpaket ein Startscript mit den Namen rtl_udpd.sh
Wenn wir dieses starten, wird ein Rauschen im Lautsprecher/Ohrrörer hörbar weil unser Radiodaemon nun bereits alle Signalwege von HF bis NF eingerichtet hat und auf einem Port (hier 6020) auf UDP-Befehle wartet. Über diese UDP-Komandos stellen wir unsere sämtlichen Betriebsparameter für den Empfang ein, also zum Beispiel die Frequenz, den Betriebsmodus, die Eingangsverstärkung usw.

Schauen wir uns das mal am Bildschirm an:

     

In der linken Console läuft unser Radiodaemon, in der rechten Console rufe ich gleich ein passendes Clientprogramm zum Radiodaemon auf. Dieses liegt ebenfalls im Wurzelverzeichnis des Treibers und nennt sich schlicht udpclient. Es ist praktisch soetwas wie das Netcat mit dem wir im iRadio unseren VLC-Player gesteuert haben. Es erwartet einige Parameter, so zum Beispiel "freq" mit einer Frequenzangabe in Hertz.

Führen wir das Clientprogramm für unseren Radiodaemonen mal aus und schauen was passiert:

   

In der linken Console hat unser Radiodaemon nun den Befehl empfangen und quittiert das mit einer Meldung, das er sich jetzt auf 102 MHz abgestimmt hat. Auf diese Art können wir auch den Demodulator unseres Radiodaemons ändern, aktuell sind wir in der Lage über den gesammten Empfangsbereich FM, AM, USB und LSB zu dekodieren.  


Um nun zu zeigen wie Ansteuerung aus einer eigenen Anwendung heraus erfolgt, habe ich ein kleinens FLTK-Demoprogramm 
geschrieben. Mit dieser Demo können wir das ganze UKW Programm und das darüberliegende Flugfunkband empfangen. Die Umschaltung 
der Demodulation erfolgt bei 108 MHz automatisch.

   

In der rechten Konsole sehen wir wie mein Demoprogramm kompiliert wird: fltk-config --compile gui.cxx
Gestartet wird das Demoprogramm, ganz klar durch ./gui

In der linken Konsole quittiert uns der Radiodaemon alle empfangenen Einstellungen und im Lautsprächer hören wir das demodulierte Signal.


.jpg   4.jpg (Größe: 78,14 KB / Downloads: 196)

Wie gesagt, der Empfangsbereich geht von 88 MHz bis 138 MHz, die Betriebsart wird im Programm automatisch umgeschaltet, den absichtlich einfach gehaltenen Code könnt Ihr ja nachlesen. Zusätzlich kann man noch eine Rauschsperre einstellen und auch die Verstärkung des Antenneneingangs. Und ja, natürlich läuft das ganze dann auch auf dem eigentlichen Zielsystem.

   

Die GUI kann natürlich auch ein LCD-Modul oder ein OLED und ein Drehencoder oder Taster sein. Wie man das realisiert, habe ich ja im gpiod im iRadio gezeigt! Auch kann man in seinem eigenen Programm natürlich alle Frequenzen einstellen die man hören will (MW, KW, UKW, 2m/70cm Amateurfunk usw.). Auch eine Scannerapplikation wäre denkbar und natürlich das Umschalten zwischen allen möglichen Empfangsarten.
Empfangstechnisch haben wir ja im Forum  praktisch alles abgehandelt was ein heutiges Radio können sollte: Internetradio, DAB+ und alle anderen analogen wichtigen Bänder. Jetzt liegt es an Euch das alles in einen Eigenbau zu integrieren, bei Fragen zur Hard- wie Software könnt Ihr mich ja anschreiben.

Viel Spaß beim Basteln in der kalten Jahreszeit
Bernhard
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Adafruit Raspberry Pi Video Looper saarfranzose 10 1.023 08.03.2021, 15:27
Letzter Beitrag: pintel
  Meine Versuche mit Raspberry Pi zum Internetradio Georg_Weimar 10 2.942 23.12.2020, 16:34
Letzter Beitrag: Georg_Weimar
  FMBerry, UKW-Sender mit einem Raspberry saarfranzose 22 5.623 27.12.2019, 18:43
Letzter Beitrag: Bernhard45
  Den Raspberry Pi als einfachen SDR-Tx mit GNURadio programmieren. Bernhard45 0 1.854 23.07.2019, 13:55
Letzter Beitrag: Bernhard45
  Raspberry 4 für iTV und iRadio OttoBerger 9 2.763 25.06.2019, 19:26
Letzter Beitrag: power-dodge

Gehe zu: