Afu SDR-Rx

Seit dem Jahr 2012 gibt es die preiswerte Möglichkeit, einen DVB-T Empfänger (USB-Stick) mit Software als SDR (Software Defined Radio) zu nutzen. Voraussetzung ist ein RTL2832 Chipsatz und ein Tuner. Der alte Tuner E4000 ist nicht so empfindlich. Besser ist der neue Tuner R820T, der von 24 MHz bis 1,8 GHz geht.

Um jetzt auch den gesamte Kurzwellen Bereich zu empfangen, braucht man einen Up-Converter, der das Kurzwellenband unter, oder über das UKW-Radio Band mischt (< 88 MHz oder > 110 MHz).

Zuerst habe ich mich mit der Schaltung nach DD7LP befasst, siehe Links. Die Dokumentation ist sehr gut, aber ein paar technische Dinge haben mir nicht gefallen.

Dann habe ich in Heft 05-2014 von der Zeitschrift Funkamateur eine gute Schaltung von DG0KW gesehen, die mich auf Anhieb überzeugt hat. Nachdem ich den Artikel Teil 2 in Heft 06-2014 gelesen hatte, wusste ich, das ist das richtige.

Mit der angebotenen Dokumentation sollte es möglich sein, dieses Projekt einfach nach zubauen, inklusive Platine.

Es muss darauf geachtet werden, dass der DVB-T Stick inklusive USB Stecker nicht länger als 84 mm ist. Das ist bei dem verbreiteten Modell bei Ebay.com der Fall, siehe Links. Dort wird eine Länge mit Schutzkappe von 90 mm angegeben. Die Antennenbuchse muss seitlich platziert sein.

Ich möchte mich noch bedanken bei den Funkamateuren DF4WT für die Hilfe beim Aufbau, und bei DL1FAR für die Erprobung.

attachment:SDR_DG0KW_Front_DSC05728.jpg

SDR up-converter

Ich beschreibe von dem Projekt nur die Besonderheiten, und den persönlichen Aufbau. Alles andere muss muss man in den 2 guten Artikeln der Zeitschrift Funkamateur nachlesen.

Rechts sieht man ein Bild von der Frontplatte, ein Klick auf die Bilder vergrößert sie. Die Beschriftung wurde mit einem P-touch Streifendrucker von der Firma Brother gemacht.

attachment:SDR_DG0KW_oben_DSC05726.jpg

Was mir an dem Projekt von DD7LP gut gefallen hatte, war der Einbau in ein 1/2 Alu Gehäuse GEH EG 1. Das spart zwar erst einmal 4,35 EUR, wenn man zu zweit das Projekt nachbaut, aber man braucht noch 2 Aluminium Frontplatten 103 x 42 x 1-1,5 mm, und 8 Stück Blechschrauben 3mm. Das ist also nur etwas für Geübte in Mechanik.

Da das Platinen Layout Programm Eagle 6 von der Firma Cadsoft für Privat Anwender zwar kostenlos ist, aber nur eine maximale Platinengröße von 100 x 80 mm erlaubt, passt das sehr gut mit dem halben Gehäuse zusammen. Man kann natürlich die Platine auch in ein ganzes Gehäuse einbauen.

Bei den Bauteilen verwende ich meist die Reichelt Benennungen, damit das Bestellen einfacher geht. Für den Mischer SBL-1 und die PIN Diode BA479G ist der Lieferant box73.de. In Abweichung von der Schaltung von DG0KW habe ich einige Teile geändert:

Bei www.qrp4u.de gibt es interessante Informationen zu dem Mischer.

Der DVB-T Stick wurde bei Ebay bestellt, siehe bei den Links.

attachment:SDR_DG0KW2_sch.png

Das Platinen Layout wurde für das halbe Gehäuse selbst entworfen, der Schaltplan ist rechts zu sehen. Zum besseren Ausdrucken gibt es den Schaltplan noch als PDF Datei.

Zum leichteren Nachbau gibt es noch die .EPS Datei um eine Folie für die Belichtung der Platine drucken zu können.

Zur weiteren Dokumentation sind noch die Eagle 6.5 files da, der Schaltplan, das Layout, Bestückung unten, und Bestückung oben zum Download.

In der Revision 1.2 wurde die Mischer Beschaltung korrigiert, für Kurzwelle der DC Eingang.

Der Schalter und die 2 Leuchtdioden sollten möglichst auf der rechten Seite der Frontplatte platziert werden, und möglichst weit oben, damit es keinen Konflikt mit dem DVB-T Stick und dem 3-poligen Stecker JP2 gibt. Ich habe die Leuchtdioden bei meinem Gehäuse mit der Schaltung von DD7LP im Sinn schon aufgebaut, was aber bei dem Layout nach der Schaltung von DG0KW nicht mehr optimal ist.

Alle Teile wurden von Eagle in einen BOM.csv (Bill Of Material) File exportiert, und in einem Tabellelblatt (XLS Format) vervollständigt. In der Spalte F sind die Reichelt Bestell-Nummern eingetragen. Wenn man mindestens 2 Geräte aufbaut liegt der Material Preis inklusive Versand knapp unter 50 EUR.

Mechanik

Da ich nach langer Zeit wieder einmal eine mechanische Zeichnung mit Bemaßung machen wollte, habe ich mich nach einem freien CAD Programm umgesehen, das mindestens halbautomatische Bemaßung erlaubt.

attachment:SDR_DG0KW_back_dim.png

Zuerst habe ich das Programm FreeCAD ausprobiert. Das hat im Prinzip gut funktioniert, aber leider war der Font für die Schrift nicht sehr gut lesbar (Serifen-Font) und auch nicht änderbar. Während der Datenfile (.FCStd) bei meiner einfachen Zeichnung nur 11 KB groß war, ist er bei dem Export in das .svg Format auf 2,5 MB angewachsen. Das war mit dem freien Programm Inkscape nicht mehr zu verarbeiten, um eventuell den Font zu verbessern. Wer sich daran versuchen möchte, kann den Freecad Datenfile herunterladen und ausprobieren. Im Erfolgsfall wäre es schön, eine Mitteilung über die KontaktEmail zu bekommen.

Dann habe ich das Programm LibreCAD Version 2.0.5 ausprobiert. Das war schwieriger zu erlernen, aber der Font war deutlich besser, siehe das Bild rechts. Zum besseren ausdrucken kann man noch die PDF Datei der Zeichnung herunterladen.

Wer die Zeichnung noch weiter verbessern möchte, kann den FreeCAD .dxf Datenfile herunterladen und bearbeiten.

Beide Programm sind frei verfügbar für die Betriebssysteme Linux (Ubuntu), Mac OS (Mountain Lion, Mavericks), und Win32.

Zum Teilen des Alu-Gehäuses GEH EG 1 noch etwas. Da das Gehäuse 168 mm lang ist, und die Frontplatten jeweils 1,5 mm dick, haben die Seitenprofile und das obere und untere Gehäuseblech eine Länge von 165 mm. Geteilt durch 2 ergibt das eine Brutto Länge von 82,5 mm. Wenn man genau sägt, und plan feilt, kann man die benötigte Länge von >= 80 mm durchaus erreichen.

Die Layout wurde auf einer halben foto-beschichteten Platine BEL 160X100-2 (doppelseitig) belichtet und geätzt. Die Oberseite wird als Groundplane genutzt. Dazu muss man mit blankem Draht an den vorgesehenen Stellen (9x) durchkontaktieren. Bei den BNC Buchsen kann der Masse Anschluss auch noch oben verlöten werden.

Zum Bohren der Platine nimmt man normal 0,8 mm Durchmesser. Bei dem Anschluss für Schalter und Antennenkabel nimmt man 1,0 mm. Die Trimmer Kondensatoren brauchen 1,3 mm. Die BNC-Buchsen Befestigung braucht 2,5 mm, die USB Buchsen Befestigung auch 2,5 mm.

Die Platine muss in die unterste Nut des Seitenprofils eingeschoben werden, damit die Bohrungen der Frontplatte (hinten) stimmen.

Der Schalter und die LED's können über einen 3 poligen Steckkontakt angeschlossen werden. Zum Beispiel Stiftleiste MPE 087-1-003 und Buchsenleiste MPE 094-1-003.

Inbetriebnahme

Zum Funktionstest habe ich die Schaltung mit +5V aus einem Netzteil eingespeist. Dann wurden mit einem 100 MHz Oszillograph und einem Prüfsender (bis 100 MHz) die einzelnen Funktionsteile einzeln geprüft. Ein Prüfsender ist hilfreich, wird aber nur zur Fehlersuche gebraucht. Ein Oszillograph ist hilfreich, der Abgleich kann aber auch mit einem HF-Tastkopf gemacht werden.

Nach dem Abgleich von Trimmer C21 auf Maximum am Mischer Pin 8 (Local Oscillator) lagen 1,4 Vpp (48 MHz) an, wie es das Datenblatt empfiehlt.

Der Trimmer C22 wurde mit dem Oszillograph hinter L11 auf Minimum eingestellt, in der Nähe der minimalen Kapazität. Den Trimmer C22 kann man auch mit der SDR-Software einstellen, indem man bei der Frequenz 0 Hz die Amplitude auf Minimum abgleicht.

Mit Hilfe einer 70 cm Bake (DB0MMO, 432.425 MHz, JN49RV, Geiersberg/Spessart, CW) wurde die Frequency correction in der config Maske (Icon: Zahnrad) auf 91 ppm eingestellt.

attachment:SDRSharp13650.PNG

Bedienung

Zum Empfang wurde unter Windows 7 das weit verbreitete Programm SDRsharp eingesetzt.

Zum installieren sollte man das Quick Start Guide lesen, siehe bei den Links.

Durch den 48 MHz Oszillator und Mischer wird das Kurzwellenband von 0,1 - 30 MHz gemischt auf 48,1 - 78 MHz.

Im Bild rechts sieht man den Radio Empfang (Englisch) mit dem Programm SDRsharp auf der Frequenz 61,65 - 48,0 = 13650 KHz. Nach der online Auskunft von short-wave-info ist das die Radio Station China Radio International. Da ich nur 5 m Draht als Behelfsantenne aus dem Fenster gehängt habe, musste ich zum Test mit einer Radio Station vorlieb nehmen.

Zur Verbesserung des Empfangs wurde der Noise Blanker eingesetzt.

Wenn man also den Schalter auf KW (KurzWelle) stehen hat, sollte die Amateurbänder zu finden sein, bei:

Zum Glück kann man bei dem Programm SDRsharp in der Einstellung Radio bei dem Parameter Shift eine Haken setzen und rechts davon die Oszillator Frequenz eintragen (-48000000). Dann kann man in der Frequenz Skala direkt mit dem Kurzwellen Frequenzen arbeiten.

Um die Ungenauigkeit des Quarz Oszillators zu kompensieren, kann man mit Hilfe einer Kurzwellen Bake auch hier einen Frequenz Korrekturwert dazugeben, der so im Bereich von einigen 100 Hz liegen kann.

attachment:RTLSDR_scanner.png

Spektrum Analyse

Ein Ziel dieses Projektes ist es, eine preiswerte Spektrum Analyse zu realisieren.

Dazu wurde zuerst die Pegel Linearität geprüft. Der Prüfsender war auf der Frequenz 28,500 MHz eingestellt, eingespeist auf dem KW Eingang. Im Programm SDRsharp habe ich zuerst die R820T RF-Gain (config, Icon Zahnrad) auf 0 dB gestellt.

Mit einem Stufen Abschwächer konnte ich mit 13 dB Abschwächung den Pegel auf 0 dB einstellen. Damit liegt der Konverter Verlust bei circa 11 dB.

Dann wurde der Prüfsender Pegel 5 dB weise abgeschwächt, bis im Programm SDRsharp bei -60 dB das Signal im Rauschen eintauchte. Da macht die Rauschunterdrückung etwas gut, denn nach der A/D-Wandler Auflösung von 8 Bit, sollten der Dynamik Bereich maximal 48,6 dB sein.

Jetzt kommt das Programm RTLSDR-scanner ins Spiel, siehe Bild rechts, und bei Links. Ein Scan von 87 - 108 MHz (FM UKW Radio Band) dauert zwar 23 - 43 Sekunden (je nach Rechner), aber es funktioniert. Das Programm RTLSDR-scanner wurde in der Virtualbox unter Ubuntu 14.04 (32 Bit) installiert.

attachment:RTLSDR_KoaxKabel.png

Dann wurde der absolute Pegel geprüft. Wenn der 0 dBm Pegel vom Prüfsender am UHF-Eingang angeschlossen wurde, zeigte der DVB-T Stick bei RF-Gain = 0 dB und einem Stufen-Abschwächer mit 24 dB einen Pegel von 0 dB an.

Das bedeutet, dass der DVB-T Empfänger einen natürlichen Dynamik Bereich von -24 dBm bis -72 dBm hat.

Eine weitere Erprobung zeigte, dass leider der LO (Local Oszillator = 28.8 MHz) des DVB-T Sticks bis zur 12 Oberwelle durch schlägt. Mit Pegeln von -30 dB bis -48 dB (-54 dBm bis -72 dBm), siehe Bild rechts.

Ebenso ist das FM UKW Radio (88 - 108 MHz) mit Pegeln bis -40 dB (-64 dBm) zu sehen, wenn ein koaxial Kabel angeschlossen ist.

Erreicht wurden bei der Pegelmessung die Daten:

RTLSDR_Scanner patch

Wenn das Programm sein Fenster aufbaut, ist die automatische Skalierung der Fenstergröße so eingestellt, dass leider nicht mehr die Beschriftung Frequency (MHz) zu sehen ist, da die Fenster Höhe zu gering ist. Das lässt sich mit einem Patch beheben:

# Mit einem Editor ändern:
# File: "main_window.py", Zeile 176
# Ist:  self.SetClientSize((toolbarSize[0] + 10, displaySize[1] / 2))

# Soll: self.SetClientSize((toolbarSize[0] + 10, displaySize[1] * 4 / 7))

Das hat bei mir mit allen drei Betriebssystemen funktioniert. Bildschirmhöhe jeweils:

Installation Ubuntu

Da es nicht ganz einfach ist, das Programm RTLSDR-scanner unter Linux zu installieren, und die original Installation Beschreibung nicht ganz up to date ist, folgend eine aktualisierte Version für Ubuntu 14.04 32Bit Linux.

Ein Scan von 87 - 108 MHz dauert 32 Sekunden, in der Virtualbox unter Mac OS X.

# Aktuelle Linux Kernels bringen einen DVB Treiber mit, der nicht mit dem RTLSDR Treiber funktioniert.
# Wenn der DVB-T stick schon angesteckt hat, prüft man, ob dieser Treiber bereits geladen wurde:
$ lsmod DVB*
# Wenn ja, dann:
$ sudo rmmod dvb_usb_rtl28xxu

# Um das Laden dieses Treiber in Zukunft automatisch zu verhindern:
$ sudo su
$ echo blacklist dvb_usb_rtl28xxu > /etc/modprobe.d/rtlsdr.conf
$ exit

# Installation von Bibliotheken:
$ sudo apt-get install python python-wxgtk2.8 python-matplotlib python-numpy python-imaging
$ sudo apt-get install python-serial


# Dann müssen noch 2 Bibliotheken compiliert werden, zur Vorbereitung:
$ sudo apt-get install libusb-1.0.0-dev
$ sudo apt-get install git cmake

# Bibliothek rtlsdr bauen (kompilieren)
$ mkdir build
$ cd build
$ git clone git://git.osmocom.org/rtl-sdr.git
$ cd rtl-sdr
$ mkdir build
$ cd build
# -D Option, damit USB Treiber beim Einstecken des DVB-T Sticks automatisch geladen wird.
$ cmake ../ -DINSTALL_UDEV_RULES=ON
$ make
$ sudo make install
cd ../..

# Installiere die Python pyrtlsdr library:
$ git clone git://github.com/roger-/pyrtlsdr.git
$ cd pyrtlsdr
$ sudo python setup.py install
$ cd ..\..

# Programm RTLSDR-scanner download
$ git clone git://github.com/EarToEarOak/RTLSDR-Scanner.git

# Programm starten
$ cd RTLSDR-Scanner/src
$ ./rtlsdr_scan.py

# Zum GUI Start muss noch ein RTLSDR-Scanner.desktop File erstellt werden.

Installation Mac OS X

Bei Mac OS X (Mavericks 10.9.5) muss leider der RTL Treiber noch compiliert werden. Dafür braucht man eine Entwicklungsumgebung. Der Autor von RTLSDR-Scanner schlägt das System MacPorts vor.

Ein Scan von 87 - 108 MHz dauert 23 Sekunden, mit einer CPU Intel i3 @3,5 GHz.

Die XCode Command Line Tools (Compiler, Linker, usw.) herunterladen und installieren, vom App Store, oder von der Apple Developer site (Registrierung notwendig). Das wird später für MacPorts benötigt.

Dann muss man Git herunterladen. Das Archiv git-2.0.1-intel-universal-snow-leopard.dmg wird mit einem Rechts-Klick auf das Paket geöffnet. Dann klickt man wieder Rechts auf das Paket git-2.0.1-intel-universal-snow-leopard.pkg und klickt auf Öffnen mit Installationsprogramm.app. Die Installation braucht keine besonderen Optionen.

Zuletzt wird MacPorts heruntergeladen, indem man auf den Knopf rechts oben Download klickt. Daraufhin werden verschiedene Versionen angeboten. Bei Mavericks wird das Paket MacPorts-2.2.1-10.9-Mavericks.pkg angeboten. Das wird wie vorher bei Git installiert.

Ich hatte abweichend vom Autor das Programm XQuartz schon vorher für das Programm InkScape installiert. Deshalb musste ich nicht den xorg-server installieren.

$ sudo port -v selfupdate

# siehe oben, XQuartz
$ ? sudo port install xorg-server ( v long) 

$ sudo port install py-wxpython-2.8 ( v long)
$ sudo port install py-matplotlib
$ sudo port install py-Pillow
$ sudo port install py-serial
$ sudo port install rtl-sdr
$ sudo port install python_select
$ sudo port select python python27
# das kann einige Zeit dauern.

# Jetzt wird der RTL Treiber für den USB-Stick installiert

# Einen neuen Ordner im Home Ordner anlegen.
$ mkdir build

$ cd build
# Den RTL Treiber "wrapper" herunterladen und installieren:
$ git clone https://github.com/roger-/pyrtlsdr.git
$ cd pyrtlsdr
$ sudo python setup.py install

Lade dann das Archiv RTLSDR-Scanner herunter, öffne es mit Doppelklick.

Ziehe den Ordner RTLSDR_Scanner-master in den Ordner build.

Dann muss man einen Neustart machen, damit alle Änderungen wirksam werden.

$ cd build/RTLSDR_Scanner-master
$ src/rtlsdr_scan.py

# Das Fenster von RTLSDR_Scan sollte sich öffnen, und im Terminal sollte zu sehen sein:
RTLSDR Scanner
Found Rafael Micro R820T tuner

Um den Programm Zugriff zu vereinfachen kann man sich einen Script schreiben:

File: RTLSDR_Scanner.command
#!/bin/sh
# RTLSDR_Scanner
# http://eartoearoak.com/software/rtlsdr-scanner/rtlsdr-scanner-installation#osx
# XQuartz.app must be installed: http://xquartz.macosforge.org/landing/
# 2014-09-27 RudolfReuter DL5FA

BASEDIR=$(dirname $0)
cd $BASEDIR

src/rtlsdr_scan.py

echo "Pfad für Datenfiles ist $BASEDIR"

# Erstelle von dem File 'RTLSDR_Scanner.command' einen Alias,
# und ziehe diesen Alias auf den Desktop, oder in den Ordner Dienstprogramme.
# Wenn man den Alias anklickt, wird das Programm 'RTLSDR_Scanner' gestartet.

cd build/RTLSDR-Scanner-master/src
export DISPLAY=:0.0
python rtlsdr_scan.py

# Im Terminal sollte zu sehen sein:
RTLSDR Scanner
Found Rafael Micro R820T tuner

Installation Windows32

Für Windows32 gibt es ein Installation Programm, dass auch alle Abhängigkeiten mit installiert.

Ein Scan von 87 - 108 MHz dauert 43 Sekunden, auf einem Laptop, CPU AMD Turion @2,2 GHz.

Falls man schon Python3 installiert hat, muss man vorher die Path Variable anpassen. Das geht am einfachsten mit dem Programm Rapid Environment Editor, siehe bei den Links.

# "Path" Variable prüfen:
# Eingabeaufforderung aufrufen zur Information.
> env
...
Path=C:\apps\AVR Tools\AVR Toolchain\bin;C:\Windows\system32;C:\Windows;C:\Windo
ws\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x
86)\ATI Technologies\ATI.ACE\Core-Static;C:\apps\Graphviz2.26.3\bin;C:\Program F
iles (x86)\QuickTime\QTSystem\;C:\Python33\;C:\Program Files (x86)\RTLSDR Scanne
r;C:\Python27\
...

# Programm "Rapid Environment Editor" starten.
# Der Path "Python27" muss vor dem Path "Python33" stehen,
# ändern und abspeichern.

# Den eigenen Benutzer abmelden, und wieder anmelden, damit das wirksam wird.
# Dann kann man das Programm "RTLSDR-Scanner" installieren.

List of pages in this category:

-- RudolfReuter 2014-09-10 15:05:04


Go back to CategoryAmateurRadio or FrontPage ; KontaktEmail (ContactEmail)

AfuSDR-Rx (last edited 2017-06-15 14:22:56 by RudolfReuter)