2xSDR Pi

SDR na Raspberry Pi: Śledzimy samoloty nad naszymi głowami, czyli odbiornik i wizualizacja danych ADS-B

Raspberry Pi z SDR
Raspberry Pi z SDR

Uwaga: Ten wpis ma nowszą wersję – nowe wersje programów i znacznie ułatwiona instalacja: https://blog.jokielowie.com/en/2017/01/sledzimy-samoloty-cz-2-ads-b-i-mlat-najtanszy-odbiornik-dla-flightaware-oraz-flightradar-24/.

Poprzednio podzieliłem się z Wami hobbystycznym komputerem Raspberry Pi za przysłowiowe grosze. O ile sami jeszcze nie uczycie się na nim Pythona, albo nie gracie w Minecraft – albo nawet lepiej – już się tym znudziliście, mam dla was połączenie kilku innych hobby, a wszystko to dzięki doposażeniu naszego Pi w odbiornik/dongle DVB-T/DAB. Celem jest uzyskanie bardzo taniej platformy do odbioru i przekazywania informacji o przelatujących samolotach – dla siebie i dla Flight Radar 24, za co dostaniemy darmowy dostęp do wersji premium. Zanim przejdziemy do techniki – o jakie hobby chodzi ?

  • spotting – czyli fotografowanie samolotów rejsowych nad naszymi głowami, lecących na RNAV. Aby fotografować należy wiedzieć kiedy nadlecą, oczywiście wiedzieć też KTO leci
  • odbiór sygnałów radiowych – analogowych i cyfrowych i odpowiednia ich demodulacja/interpretacja, więcej za chwilę
  • wykreślanie na mapie aktualnie przelatujących samolotów i udostępnianie tego w sieci lokalnej lub internecie
  • odbieranie zwykłego radia analogowego
  • słuchanie transmisji z CB radia, TAXI
  • śledzenie projektów stratosferycznych/kosmicznych – a więc nasłuch transmisji z balonów jakie są wypuszczane przez koła naukowe lub hobbystów
  • jeśli blisko lotniska – komunikacji z wieżą, kontrolą podchodzenia etc. (LiveATC.net)
  • słuchanie dowolnej transmisji z przedziału 50MHz – 2GHz, demodulacja danych cyfrowych
  • przesyłanie danych do FlightRadar24 celem poszerzenia zasięgu działania usługi oraz uzyskania dostępu do portalu Premium tegoż


Jak widać ma to wiele wspólnego z HAM Radio, krótkofalarstwem i „modelarstwem”. Przed erą Internetu popularne, potem zapomniane – dziś dzięki łatwemu dostępowi do elektroniki hobbystycznej – przeżywającej często drugą młodość. Niemniej pamiętajmy, że nie NADAJEMY, a więc nie potrzebujemy licencji krótkofalarskiej, nie musimy też stawiać nadajników. Czy potrzebujemy więc specjalistycznego sprzętu ? Nie! Dzięki pracom nad sterownikami do dongle z chipsetem Realtek’a (DVB-T, DAB czy FM) na USB Antti Palosaari, odkrył że pozwalają one przekazać dowolną transmisję radiową, tak aby ją odpowiednio zinterpretować na komputerze – innymi słowy pozwalają na demodulację odebranego z dowolnej częstotliwości sygnału przez oprogramowanie (aplikację).

Lista sprzętu:

  • Raspberry Pi – model B z 256 lub 512MB RAM – najlepsza jest wersja z portem Ethernet
  • Dongle DVB-T/USB – tuner USB do odbioru DVB-T. Preferujemy te z tunerem Eltronics 4000 (E4000). Można testować dowolne, ale wymagany jest chip RTL2832U na donglu.
  • opcjonalnie – kawałek miedzianego drutu, lutownica oraz akcesoria aby uzyskać lepszą odbiór na bardziej dostosowanej do naszych potrzeb antenie
 antena_parts-300x258

Dongle DVB-T – możemy znaleźć wiele na Allegro, Ebay czy też stacjonarnych sklepach, ważne aby posiadał odpowiedni tuner. Jednym z najlepszych i najtańszych jest ten model ($13 z wliczoną przesyłką): http://dx.com/p/rtl2832u-r820t-mini-dvb-t-dab-fm-usb-digital-tv-dongle-black-170541. W komentarzach znajdziecie aktualne oferty z innych źródeł.

Konfiguracja oprogramowania i sprzętu

  • upewniamy się, że nasz Rasbian pracuje z jądrem co najmniej 3.6.11+. Wydajemy komendę:

    Powinna ona zwrócić:

    Jeśli mamy starsze jądro systemu – w prosty sposób uaktualniamy je przez komednę:

    Po ponownym uruchomieniu powinniśmy już mieć najnowsze jądro
  • Włączamy naszego dongla do portu USB. Od

    powinniśmy otrzymać:

    Oznacza to, że nasz dongle został rozpoznany. Nie zapomnijmy podłączyć owej małej anteny dostarczanej z urządzeniem i umieścić jej w pobliżu okna (jeśli możemy nawet na balkonie, podstawka anteny jest magnetyczna). Na załączonym „patyku” powinniśmy odebrać transmisję w granicach 50 do nawet 80km od naszej lokalizacji. Częstotliwość transponderów ADS-B 1090MHz jest dość mocno tłumiona, przy zachmurzeniu zasięg może zmniejszyć się do 30-40km. Na początek taka antena wystarczy, ale potem warto zagadnąć znajomego krótkofalowca – jak powinna wyglądać antena aby odbierać dane w promieniu do nawet 200km. Przygotujcie się na terminy takie jak impedancja oraz Ohm.
  • Instalujemy kilka pakietów potrzebnych do skompilowania programów służących do dekodowania wiadomości z ADS-B:
  • Teraz pobieramy dzięki git pakiet rtl-sdr. Podobnie jeśli jest to Gentoo, Ubuntu czy ArchLinux. Dla Rasbian wydajemy kolejno komendy:
  • Ponieważ większość nowych jąder posiada już sterowniki do popularnych dongli DVB-T prawie z pewnością trzeba będzie utworzyć plik, który zapobiegnie wczytaniu sterowników dla trybu odbioru DVB, ponieważ my chcemy użyć trybu bezpośredniej komunikacji z urządzeniem. W tym celu należy stworzyć plik:

    który informuje system o zablokowaniu ładowania następujących modułów przy uruchamianiu systemu:
  • Aby nie komplikować – sugeruję teraz ponowne uruchmienie Raspberry Pi:
  • Kompilacja może, ale nie musi się powieść (użyjcie komentarzy) – jeśli tak testujemy czy rtl_sdr poprawnie potrafi korzystać z naszego dongla: rtl_test:
  • Jeśli wreszcie działa – odkładamy rtl_sdr na półkę i pobieramy następny program służący do interpretowania i wyświetlania danych z przelatujących samolotów, autora Salvatore Sanfilippo – dump1090:
  • Teraz wystarczy już tylko wydać

    które, jeśli antena poprawnie odbiera sygnał, powinno pokazać podobną tabelę:
  • Tak więc ciągu kilku minut można już uzyskać niezły efekt na dostarczonej do dongla antenie!

Dostęp do Flight Radar Premium.

  • Wystarczy pobrać na Raspberry program fr24feed_arm-le_225sJeśli nie masz jeszcze klucza, który Cię identyfikuje, to należy się zarejestrować. Po uzyskaniu klucza wstaw go w miejsce TUWPISZKLUCZ:
  • Prawidłowe działanie programu dla FlightRadar wygląda tak:
  • W tej chwili możemy już cieszyć się dostępem do FlightRadar Premium! dump1090 obsługuje jednocześnie zarówno klienta na Raspberry PI jak i naszego Virtual Radar.

Automatyczny start programów

  • Pozostaje jeszcze upewnić się, że programy wystartują po ponownym uruchomieniu Rasbperry Pi, oraz będą także nadzorowane. W tym celu należy zainstalować program screen:

    Następnie edytujemy plik cron dla użytkownika pi. Crond pozwala na cykliczne uruchamianie poleceń, w tym przypadku co minutę będziemy badać czy nasze programy działają. Do każdego z nich będzie można dostać się poprzez screen:
    Wydajemy na konsoli:

    a następnie wpisujemy w edytorze:

Wizualizacja danych na własnym komputerze – Virtual Radar

  • Co zrobić aby na własnym komputerze zobaczyć na mapie pozycje samolotów na podstawie odebranych danych ? Jest kilka programów, jednym z najlepszych na początek jest VirtualRadar, pracujący w .NET 3.5 w Windows oraz z mono na Linuksie. Pobieramy i instalujemy
  • Konfigurujemy protokół na BaseStation, natomiast w opcjach sieciowych wpisując adres naszego Raspberry Pi (tutaj jest to 10.0.0.212), oraz pozostawiają domyślny port 30003.
  • VirtualRadar wyniki prezentuje na stronie WWW, a więc uruchamiamy przeglądarkę i wpisujemy http://127.0.0.1:8080/VirtualRadar/GoogleMap.htm
Konfiguracja Virtual Radar
Konfiguracja Virtual Radar
Virtual Radar w akcji
Virtual Radar w akcji

 

ADS-B antenna
ADS-B antenna




  • Patryk Jenoch

    Świetna sprawa a teraz pytanko co zrobić żeby móc odbierać częstotliwości radiowe i jak tym sterować

    • Łukasz C. Jokiel

      Cóż, wbrew pozorom to dość proste – następny wpis planuje do końca sierpnia – będzie o odbiorze i demodulacji innych częstotliwości

      • Konrad Zaprucki

        Nie mogę się doczekać! 🙂

      • Michał

        Udało się?

        • Łukasz C. Jokiel

          Cały czas sierpień 😉 Teraz na tapecie domoticz! Ale nie zapominam, muszę w końcu odkurzyć Pi z SDR!

          • Michał

            Dziękuję. Nie mogę się doczekać!

  • Pingback: RaspberryPI – najtańszy i najlepszy komputer. Gdzie go zdobyć i jak zacząć. | Let's play with the technology()

  • Roman Kubat

    Fajny opis, obecnie jest nowsza wersja programu na RPi http://forum.flightradar24.com/threads/8908-New-Flightradar24-feeding-software-for-Raspberry-Pie
    Ja zrobiłem antenę coroidalną 1090 Mhz i umieściłem na dachu. Obecnie spod Opola łapie mi samoloty nad Pragą, Berlinem i Warszawą. Projekt anteny składa się z 11 cm odcinków kabla koncetrycznego szt. 7 i ostatni górny odcinek 11 cm i odizolowana żyła dł 5,5 cm wg rysunków.

    • Łukasz C. Jokiel

      Tak, zgadza się – FR24 ułatwia trochę sprawę – ale stary sposób ma zaletę działania zarówno w FR24 – daje to teraz konto „biznes” oraz własnego kreślenia.

      • Roman Kubat

        Nowa wersja fr24 ma chyba wbudowany dump1090 i nie trzeba go osobno uruchamiać. Ponieważ ja używam Domoticz na Rpi, to wykorzystuje on port 8080, więc ustawiłem opcje fr24 (ip maliny:8754/settings.html) jak na zdjęciu poniżej ustawiając port 9090 dla dump1090, teraz po wpisaniu ip mlainy:9090 mamy bezpośredni podgląd radaru bez używania Virtual Radar na komputerze.

        Zasięg mojego radaru http://romeok.no-ip.org:9090

        • Łukasz C. Jokiel

          O to fajnie, muszę więc sprawdzić co nowego – oprócz nowego wyglądu FR!

  • Roman Kubat

    Jak na razie antena odebrała dane z odległości max 187 nm. Mój radar

    • Łukasz C. Jokiel

      No, to jest ładny zasięg! Dopóki nie wystawię anteny na dach mam minimalne zasięgi teraz (jakieś 20 nm).

  • Roman Kubat

    Jako, że mamy ładną pogodę zasięg wzrósł do 307 nm. Dodatkowo dzisiaj obok fr24 uruchomiłem piaware http://flightaware.com/adsb/piaware/install. Moje statystyki http://flightaware.com/adsb/stats/user/romeok01

    • Łukasz C. Jokiel

      No proszę, odpalam również, zobaczymy co potrafią.

    • Paweler

      Rozumiem, że dane do fr24 i flightaware feedujesz z jednego rpi? Mam obecnie postawiony radar i feed na fr24 na win – w przyszłym tyg. dostanę OrangePi i będę chciał dawać dane do obu serwisów. Podpowiesz jak? 🙂 Pozdrowienia! Paweł

      • Łukasz C. Jokiel

        Link na górze wpisu prowadzi do opisu, jakiego potrzebujesz 🙂

        • Paweler

          Łukasz, rzeczywiście – dziękuję! Pozwól jednak, że jeszcze o coś dopytam. Czy opisana tam przez Ciebie konfiguracja zakłada uruchomienie dwóch usług jednocześnie, tzn. czy obie usługi dekodują pozycje i wysyłają je na serwisy czy czyni to tylko jeden proces (jeden dump1090), a druga usługa podłącza się i korzysta z wyników? Chodzi o to, że moje OrangePi będzie miało tylko 256 ramu i obawiam się, że nie udźwignie obu usług.

          • Łukasz C. Jokiel

            Pozycje i ciężką robotę robi dump1080 w wersji fa, a dane są wysyłane klientami do obu usług. RAM wystarczy – też mam 256MB, aż nadto na takie usługi. W razie czego można wyłączyć nginx lokalny – albo rysować go gdzie indziej.