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