{"id":698,"date":"2013-05-21T23:23:17","date_gmt":"2013-05-21T22:23:17","guid":{"rendered":"http:\/\/www.admindu.de\/wordpress\/?p=698"},"modified":"2013-05-21T23:33:31","modified_gmt":"2013-05-21T22:33:31","slug":"ads-b-pakete-mit-rtl-sdr-empfangen","status":"publish","type":"post","link":"https:\/\/www.admindu.de\/wordpress\/?p=698","title":{"rendered":"ADS-B mit Open Source"},"content":{"rendered":"<p>Vielleicht kennt der eine oder andere von Euch die Website <a title=\"Flightradar24\" href=\"http:\/\/www.flightradar24.com\/\" target=\"_blank\">Flightradar24.com<\/a>. Ich jedenfalls finde es faszinierend die Flugbewegungen dort anzuschauen. Erstaunlich wie voll der Luftraum \u00fcber Europa und Nord-Amerika ist. Nat\u00fcrlich hat mich interessiert, wie das eigentlich realisiert ist. Die Positionen der meisten Maschinen am Himmel werden von diesen selbst per <a title=\"ADS-B\" href=\"http:\/\/de.wikipedia.org\/wiki\/Automatic_Dependent_Surveillance\" target=\"_blank\">ADS-B<\/a> \u00fcbertragen. Diese Signale kann man mit einem <a title=\"SDR\" href=\"http:\/\/de.wikipedia.org\/wiki\/Software_Defined_Radio\" target=\"_blank\">Software Defined Radio<\/a> auf einem PC mit Open Source Software empfangen und verarbeiten.<\/p>\n<p><!--more--><\/p>\n<p>Nat\u00fcrlich braucht man daf\u00fcr auch ein St\u00fcck Hardware f\u00fcr den Empfang der Signale und die Weiterleitung an den Rechner. Hierzu kann ein einfacher DVB-T Stick dienen. Nach einigen Recherchen habe ich heraus gefunden, dass der &#8220;ran &#8211; T Stick + USB-Stick f\u00fcr DVB-T&#8221; von Conrad Elektronik (Best.-Nr.: <span id=\"mc_info_943931_artikelnummer\"><strong>943931 &#8211; 62<\/strong><\/span> \u00a0 [Teilenummer: <span id=\"mc_info_teilenummer\">10911<\/span>]) bestens geeignet ist. Dieser kostet im Moment nur 19.95 Eur und ist damit sch\u00f6n g\u00fcnstig um damit zu basteln. Wenn man diesen oder einen vergleichbaren Stick sein Eigen nennt, dann kann man <a title=\"RTL-SDR\" href=\"http:\/\/sdr.osmocom.org\/trac\/wiki\/rtl-sdr\" target=\"_blank\">mit der Software von dieser Seite<\/a> entsprechenden Low-Level Zugriff auf die Funk-Daten erhalten. Wichtig ist beim Erwerb des Sticks auf den Tuner zu achten. Nicht alle Tuner sind in der Lage die notwendige Frequenz von 1090Mhz einzustellen. Der beste Tuner ist ein &#8220;E4000&#8221;. Dieser ist im Conrad-Stick verbaut. Wenn man das rtl_sdr Tool kompiliert hat kann man den Stick testen und heraus finden, welche Frequenzen der Tuner einstellen kann. Dabei kommt dann sinngem\u00e4\u00df folgende Ausgabe heraus:<\/p>\n<p>dt@develop:~\/Devel\/adb-s\/rtl-sdr$ rtl_test -t<br \/>\nFound 1 device(s):<br \/>\n0:\u00a0 Terratec T Stick PLUS<\/p>\n<p>Using device 0: Terratec T Stick PLUS<br \/>\nFound Elonics E4000 tuner<br \/>\nSupported gain values (14): -1.0 1.5 4.0 6.5 9.0 11.5 14.0 16.5 19.0 21.5 24.0 29.0 34.0 42.0<br \/>\nBenchmarking E4000 PLL&#8230;<br \/>\n[E4K] PLL not locked for 51000000 Hz!<br \/>\n[E4K] PLL not locked for 2220000000 Hz!<br \/>\n[E4K] PLL not locked for 1110000000 Hz!<br \/>\n[E4K] PLL not locked for 1244000000 Hz!<br \/>\nE4K range: 52 to 2219 MHz<br \/>\nE4K L-band gap: 1110 to 1244 MHz<\/p>\n<p>D.h. der Stick kann Frequenzen zwischen 52 und 2219 Mhz tunen; mit einer L\u00fccke zwischen 1110 und 1244 Mhz. Damit sind also die notwendigen 1090 Mhz abgedeckt.<\/p>\n<p>Um die Daten vom Stick zu lesen und entsprechend zu decodieren verwende ich <a title=\"dump1090\" href=\"https:\/\/github.com\/antirez\/dump1090\" target=\"_blank\">dump1090<\/a> von github. Ebenso wie RTL-SDR muss dieses Tool erst kompiliert werden. Ich werden diesen Beitrag in den kommenden Tagen um eine entsprechende Anleitung erweitern. Wenn beide Tools zur Verf\u00fcgung stehen ist die erste Inbetriebnahme sehr einfach. Entweder man bastelt als Root-User (nicht empfohlen) oder man muss die entsprechenden UDEV-Regeln aus dem RTL-SDR Verzeichnis in das eigene System integrieren. Ich verwende ein Debian Wheezy und hier ist es ausreichen die Datei rtl-sdr.rules nach \/etc\/udev\/rules.d zu kopieren, udev neu zu starten (oder zu booten) und dann den Stick wieder einzustecken. Danach kann z.B. rtl_test auch als normaler User ausgef\u00fchrt werden. Wenn das klappt kann man direkt zu dump1090 schreiten. Ein einfacher Aufruf von dump1090 ohne weitere Parameter sollte direkt auf der Konsole ADS-B Daten ausgeben. Hier ein Beispiel der Ausgabe:<\/p>\n<p>dt@develop:~\/$ .\/dump1090<br \/>\nFound 1 device(s):<br \/>\n0: Realtek, RTL2838UHIDIR, SN: 00000001 (currently selected)<br \/>\nFound Elonics E4000 tuner<br \/>\nMax available gain is: 42.00<br \/>\nSetting gain to: 42.00<br \/>\nExact sample rate is: 2000000.052982 Hz<br \/>\nGain reported by device: 42.00<br \/>\n*5e3dd7849ca1d3;<br \/>\nCRC: 9ca1d3 (ok)<br \/>\nDF 11: All Call Reply.<br \/>\nCapability\u00a0 : Level 2+3+4 (DF0,4,5,11,20,21,24,code7)<br \/>\nICAO Address: 3dd784<\/p>\n<p>*5e3dd7849ca1d3;<br \/>\nCRC: 9ca1d3 (ok)<br \/>\nDF 11: All Call Reply.<br \/>\nCapability\u00a0 : Level 2+3+4 (DF0,4,5,11,20,21,24,code7)<br \/>\nICAO Address: 3dd784<\/p>\n<p>*5e3dd7849ca1d3;<br \/>\nCRC: 9ca1d3 (ok)<br \/>\nDF 11: All Call Reply.<br \/>\nCapability\u00a0 : Level 2+3+4 (DF0,4,5,11,20,21,24,code7)<br \/>\nICAO Address: 3dd784<\/p>\n<p>Wenn das klappt, dann gibt es noch eine nette Spielerei, die sich einfach realisieren l\u00e4sst. Man kann dump1090 mit folgenden Parametern starten:<\/p>\n<p>.\/dump1090 &#8211;aggressive &#8211;net &gt; \/dev\/null<\/p>\n<p>Der &#8211;aggressive Parameter sorgt daf\u00fcr, dass dump1090 mehr CPU-Zeit verbraucht und somit eine h\u00f6here Sample-Rate erreicht. Der &#8211;net Parameter aktiviert den integrierten Web-Server. Der Rest des Kommandos leitet die CLI-Ausgabe nach \/dev\/null um (optional), da diese nicht gebraucht wird und zus\u00e4tzliche Last erzeugt. Wenn das Kommando l\u00e4uft, kann man mit dem Browser auf Port 8080 der Maschine zugreifen (z.B. http:\/\/localhost:8080). Dort kann man dann die erfassten Flugzeuge direkt auf einer Google-Maps Karte anschauen \ud83d\ude42<\/p>\n<p>Soviel hier und heute. Man kann noch weitere, tolle Dinge mit diesem Stick, dump1090, rtl-sdr und tools wie z.B. gqrx und gnuradio anstellen. So kann man zum Beispiel die Wetter-Daten der NOAA Satelliten empfangen. Dazu sp\u00e4ter mehr&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vielleicht kennt der eine oder andere von Euch die Website Flightradar24.com. Ich jedenfalls finde es faszinierend die Flugbewegungen dort anzuschauen. Erstaunlich wie voll der Luftraum \u00fcber Europa und Nord-Amerika ist. Nat\u00fcrlich hat mich interessiert, wie das eigentlich realisiert ist. Die Positionen der meisten Maschinen am Himmel werden von diesen selbst per ADS-B \u00fcbertragen. Diese Signale &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.admindu.de\/wordpress\/?p=698\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;ADS-B mit Open Source&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,3],"tags":[61,60,62,59],"class_list":["post-698","post","type-post","status-publish","format-standard","hentry","category-cool_setups","category-linux_stuff","tag-ads-b","tag-dump1090","tag-gnuradio","tag-rtl-sdr"],"_links":{"self":[{"href":"https:\/\/www.admindu.de\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/698","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.admindu.de\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.admindu.de\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.admindu.de\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.admindu.de\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=698"}],"version-history":[{"count":29,"href":"https:\/\/www.admindu.de\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/698\/revisions"}],"predecessor-version":[{"id":725,"href":"https:\/\/www.admindu.de\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/698\/revisions\/725"}],"wp:attachment":[{"href":"https:\/\/www.admindu.de\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=698"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.admindu.de\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=698"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.admindu.de\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=698"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}