Empfang von NOAA Wettersats unter Linux mit DVBT Stick

Links, Shops Formelsammlungen und so weiter

Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese

Antworten
ozonisator
Beiträge: 1653
Registriert: So 11. Aug 2013, 19:53
Wohnort: bei Frankfurt/Main

Empfang von NOAA Wettersats unter Linux mit DVBT Stick

Beitrag von ozonisator »

Moin,
ich dachte mir ich poste hier mal ein einfaches grundsolides Tutorial um Bildchen aus dem All zu empfangen :mrgreen:
Außerdem kann man sich hier mal einfach und schnell mit Linux (so getestet unter Ubuntu 12.04) und der Konsole vertraut machen :mrgreen:
ACHTUNG: das hier ist quasi die "Schnelleinsteigeranleitung", im www gibts hunderte Seiten zum Thema Sat tracking, decoding und und und. Mit den hier aufgelisteten Basics kann man direkt loslegen, nehm euch ein ruhiges Wochenende dafür Zeit ! Erwartet nicht, das es auf Anhieb klappt. Bei Problemen siehe Ende dieses Posts!

Benötigte Hardware ist im Endeffekt nur ein DVBT Stick mit RTL2832, ein Composter mit Linux und eine Antenne.
Als Antenne eignet sich besonders eine sog. Turnstile oder Kreuzdipolantenne, das sind 2 gekreuzte Dipole, die über eine Umwegleitung verbunden sind. Damit erreicht man zirkulare Polarisation. Ist wesentlich einfacher zu fertigen als eine QFH Antenne. Nachbauanleitung gibts hier http://www.dl7awl.de/dipol.htm. Das Abstrahlungsdiagramm kann man wesentlich verbessern, wenn man Reflektorstäbe anbringt, siehe http://www.rapp-instruments.de/RemoteSe ... es/Dia.gif.
Optional ist an dieser Stelle noch ein Vorverstärker zu empfehlen, der kompensiert den eh schon empfangsschwachen Stick, und Filtert unerwünschten HF Müll raus (Radiosender usw). Erprobt habe ich folgenden LNA: http://www.qsl.net/y/yu1aw/LNA/bfp196peng.htm, mit etwa 10dB Dämpfungsglied an ca 10m RG58. Unterste Version mit verbessertem Eingangsnetzwerk. Der Abgleich wird auf der Seite beschrieben, am besten machen wenn ein Sat direkt über einem ist. Abgleichbesteck nicht vergessen, und etwas Fingerspitzengefühl (recht scharfer Peak).

Jetzt die Konsole starten!

Nun zur Software, als erstes benötigen wir eine Software zur Bahnberechnung:

Code: Alles auswählen

sudo apt-get install gpredict
Ausführen entweder über Anwendungen-Wissenschaft-gpredict oder einfach übers terminal mit

Code: Alles auswählen

gpredict
Unter "Bearbeiten- Reiter Ground Stations seinen Standort eintragen, TLE Daten aktualisieren nicht vergessen. Dann in gpredict oben rechte Ecke das Dropdown Menü für die Modulkonfiguration auswählen, auf Konfiguration klicken. Standort auswählen, unter Gruppe NOAA auswählen, Doppelklick auf NOAA 15,18 und 19. Dann sind die rechts in der Liste, auf OK und fertig ist die Laube. In der Liste der Sats nach nächstes Ereignis filtern. Rechtsklick auf die Sats, "Zeige nächste Überflüge-auf Polar umstellen" und dann Überflüge mit möglichst hoher Elevation aussuchen (sollte mittig übers Fadenkreuz zischen).
Jetzt brauchen wir GNUradio, empfehlenswert ist es immer ,aus den sourcen zu compilen, das geht dank script total einfach:

Code: Alles auswählen

mkdir ~/gnuradio
cd ~/gnuradio
wget http://www.sbrac.org/files/build-gnuradio && chmod a+x ./build-gnuradio && ./build-gnuradio --verbose
jeweils mit Y bestätigen, dann wird das script runtergeladen, ausführbar gemacht und ausgeführt. Das script checkt die benötigten Pakete, lädt bei Bedarf runter, und compiled GNUradio. Achtung! Das dauert je nach Computer recht lange, auf meiner Atom Dualcorebüx hats ca 3 Stunden gedauert, bei nem Raspberry dauerts über Nacht :mrgreen: Mit der Option --verbose sieht man debuginfos, und man hat nen Anhaltspunkt wie lange es noch dauert.
Wenn Gnuradio durch ist, Stick einstecken, und mal ein

Code: Alles auswählen

rtl_test -t
machen. Das testet den Stick. Wird vermutlich nicht funktionieren, da man vorher im Kernel die mitgelieferten DVBt Treiber blacklisten muss (wer guckt schon Idiotenlaterne :mrgreen: ). Fehlermeldung sieht so oder so ähnlich aus:

Code: Alles auswählen

Using device 0: Generic RTL2832U (e.g. hama nano) usb_claim_interface error -6 Failed to open rtlsdr device #0.
Fix:

Code: Alles auswählen

sudo gedit /etc/modprobe.d/blacklist.conf
Dann ganz unten folgendes anhängen, speichern und schließen:

Code: Alles auswählen

blacklist dvb_usb_rtl28xxu
blacklist rtl2830
blacklist dvb_usb_v2
blacklist dvb_core
An dieser Stelle reboot. Dann wieder

Code: Alles auswählen

rtl_test -t
und gucken ob der Stick erkannt wird und funktioniert.
Jetzt ist es praktisch, den Stick zu kalibrieren. Der Tuner läuft mit einem Quarz als Takt, da die Quarze nicht selektiert sind gibts ne Abweichung. Ganz elegant gehts mit kalibrate. Damit kann man den Offset anhand von GSM Zellen automatisch bestimmen lassen.Funktioniert wie folgt:

Code: Alles auswählen

git clone https://github.com/steve-m/kalibrate-rtl
cd kalibrate-rtl
./bootstrap && CXXFLAGS='-W -Wall -O3'
./configure
make
sudo make install
Von git clonen, builden und installieren. Dann mit

Code: Alles auswählen

kal -s 900
nach verfügbaren Basestations scannen. Dann mit

Code: Alles auswählen

kal -c KANALNUMMER
einen starken Kanal auswählen zur Offsetberechnung. Den Offsetwert auf ganze PPM runden. Idealer Weise wiederholt man das mehrmals, und wartet bis der Stick sich aufgewärmt hat (Temperaturdrift).

Jetzt brauchen wir GQRX. Das compilen wir wieder aus den sourcen, das aktuelle GQRX hat nämlich ein paar tolle Features auf die ich später nochmal zurück komme. Geht folgendermaßen:

Code: Alles auswählen

 git clone https://github.com/csete/gqrx.git gqrx.git
 cd gqrx.git
 mkdir build
 cd build
 qmake ..
 make
Dann einfach mit ./gqrx ausführen (aus dem Verzeichnis build heraus). Sollte dann so wie auf dem Screenshot aussehen http://gqrx.dk/. Grundeinstellungen sind folgende: Rechts unter input controls den LNA Gain voll aufdrehen, If gain auf so ca 20dB belassen. Unter Freq. correction den mit kalibrate ermittelten Wert eingeben. Dann unter receive options NFM auswählen, rechts daneben auf den settings Knopf drücken, APT(17k) auswählen. Dann mit der Maus die Filterbandbreite auf 45kHz erhöhen, dazu oben im Spektrum mit der Maus in die Nähe vom roten Strich fahren, bis der Mauszeiger einen schrägen Strich anzeigt, dann Linksklick, halten, aufziehen. Die passende Frequenz oben links mit dem Mausrad einstellen, und mit dem Ausschaltknopf links oben das samplen starten. Sollte dann so aussehen wie hier: http://www.oz9aec.net/index.php/gnu-rad ... and-rtlsdr
Nicht vergessen die Aufzeichnung zu starten, evtl noch vorher ein geeignetes Verzeichnis wie home/user/Musik/ angeben.
Aufnahme stoppen wenn das Signal wieder verschwunden ist.
Dann brauchen wir sox, um aus dem Stereo ein Monosignal zu machen, und um die Samplerate zu ändern:

Code: Alles auswählen

sudo apt-get install sox
dann mit

Code: Alles auswählen

cd /home/user/Musik
in das Verzeichnis gehen was man in gqrx angegeben hat (oder abweichend). Pro Tip: mit der Tab Taste kann man "Auto vervollständigen", sprich zb bei cd einfach cd /h eingeben und auf die Tab Taste drücken, das erspart einem im folgenden Schritt viel Tipperei :mrgreen:
Jetzt das Umwandeln:

Code: Alles auswählen

 sox GQRX-Audiofile.wav Name.wav rate 11025
sox eintippen, dann gqrx- und Tab drücken, dann sollte der file automatisch ausgewählt sein (wenn nicht gibts mehrere Dateien die so anfangen, dann präziser werden dh nächsten Buchstaben oder Zahl eintippen und nochmal Tab drücken. GQRX speichert im YYYYMMDD-HHMMSS Format, UTC Zeit !). Dann sollte im Verzeichnis nun ein file Name.wav (kann man natürlich benennen wie man will) erscheinen wenn sox durchgerattert ist. Jetzt noch stereo-mono Umwandlung:

Code: Alles auswählen

  sox input.wav output.wav channels 1
input.wav muss der Dateiname der umgewandelten Datei sein, output.wav kann man sich wieder aussuchen.
Jetzt haben wir einen wavfile, den wir in die Decodersoftware füttern können. Ich benutze atpdec, optional geht auch wxtoimg. atpdec gibts hier http://sourceforge.net/projects/atpdec/, runterladen, Doppelklick drauf machen, dann öffnet sich die Archivverwaltung, Doppelklick auf den "." Ordner, dann den Ordner atpdec-1.7 mit Rechtsklick-Entpacken... nach zB. Dokumente entpacken.
Bevor wir compilen können, benötigte Pakete nachinstallieren:

Code: Alles auswählen

sudo apt-get install libsndfile-dev
sudo apt-get install libpng-dev
Jetzt wieder mit

Code: Alles auswählen

cd /Pfad/zum/atpdec/Ordner
in das verzeichnis von atpdec-1.7 wechseln. Dann mit compilen, und mit ./atpdec ausführen, dann sollte sich das Programm melden:

Code: Alles auswählen

user@user-System-Product-Name:~/Dokumente/atpdec-1.7$ ./atpdec
Atpdec 1.7  (c) 2004-2005 Thierry Leconte F4DWV
Jetzt den audiofile den wir resampled und von stereo zu mono konvertiert haben in das Verzeichnis von atpdec verschieben. Mit ./atpdec -h können wir uns die options anzeigen lassen:

Code: Alles auswählen

user@user-System-Product-Name:~/Dokumente/atpdec-1.7$ ./atpdec -h
Atpdec 1.7  (c) 2004-2005 Thierry Leconte F4DWV
atpdec [options] soundfiles ...
options:
-d <dir>	Destination directory
-i [r|a|b|c|t]	Output image type
			r: Raw
			a: A chan.
			b: B chan.
			c: False color
			t: Temperature
-c <file>	False color config file
-s [15|16|17|18]	Satellite number (for temperature and false color generation)
Decoden geht dann mit:

Code: Alles auswählen

./atpdec -i ab dateiname.wav
dann hat man im atpdec Ordern hoffentlich 2 schöne Bildchen, einmal vom IR Bildsensor und einmal vom sichtbaren Bereich.


Jetzt noch kurz zur Frage warum GQRX aus den sourcen compilen? GQRX 2.3 kann man über TCP fernsteuern!
http://gqrx.dk/doc/remote-control Dazu braucht man auch gnuradio3.7, das gibts auch nicht aus dem repository.
Hat den Vorteil, man kann GQRX mit gpredict verheiraten, und automatisch die Aufzeichnung starten und beenden lassen! Klappt bei mir (noch) nicht, aber der Vorteil liegt auf der Hand: das kann autonom rennen (sox und atpdec per script ausführbar machen...) und der Dopplershift wird automatisch korrigiert.

Bei Fragen/Kritik/Anregungen bitte den Thread in allgemeine Diskussionen benutzen!
http://www.fingers-welt.de/phpBB/viewto ... f=14&t=998


Zum weiteren Einlesen hier noch ein paar Links zu den Programmen:
rtl_sdr: http://sdr.osmocom.org/trac/wiki/rtl-sdr
gqrx: http://gqrx.dk/
atpdec: http://atpdec.sourceforge.net/
aktuelle NOAA Bilder zum Vergleich mit seiner eigenen Anlage: http://www.peterscheurich.privat.t-online.de/sat.html
Zuletzt geändert von ozonisator am Fr 27. Dez 2013, 22:56, insgesamt 2-mal geändert.
Benutzeravatar
xoexlepox
Beiträge: 4815
Registriert: So 11. Aug 2013, 19:28
Wohnort: So etwa in der Mitte

Re: Empfang von NOAA Wettersats unter Linux mit DVBT Stick

Beitrag von xoexlepox »

ozonisator hat geschrieben:Außerdem kann man sich hier mal einfach und schnell mit Linux (so getestet unter Ubuntu 12.04) und der Konsole vertraut machen :mrgreen:
Sorry für OT (dieser Beitrag kann meintwegen auch gelöscht werden): Ganz allgemein: Die Zeilen in diesem Beitrag erscheinen vielleicht "etwas abschreckend", aber wer sich einmal die Mühe gemacht hat, in "die Linux-(Unix)Welt (wobei "die Shell" ein zentraler Bestandteil ist)" einzusteigen, wird begeistert sein, "wieviel doch machbar ist"....
/OT
Antworten