Odbiór

Jak zbudowałam swój pierwszy odbiornik ADS-B, w niedzielę, w Brukseli

Opublikowano

Raspberry Pi 5, odbiornik SDR USB i antena z podstawą magnetyczną na kuchennym stole

Napisano w maju 2026 r. Instalator feedera od tego czasu się zmienił: aktualne kroki znajdą Państwo w warsztacie na radar.dataero.eu.

Niezbyt techniczny przewodnik napisany przez kogoś, kto, ściśle rzecz biorąc, nie jest zbyt techniczny.


No dobrze.

W zeszłą sobotę wróciłam z krótkiego skoku do Le Touquet. Wiatr południowo-zachodni 12 węzłów, taka pogoda, przy której zapomina się, że prognoza miała być gorsza. W drodze powrotnej — gdzieś nad Pas-de-Calais, obserwując w SkyDemon spokojny sznur A320 kilka tysięcy stóp nade mną — przyszła mi do głowy myśl, którą miałam już co najmniej cztery razy i nigdy nie zrealizowałam.

Powinnam postawić odbiornik ADS-B.

Tym razem, w pociągu powrotnym z Grimbergen, zamówiłam części.

W niedzielę w porze lunchu oglądałam samoloty nad Brukselą na własnym sprzęcie. Z parapetu. Z czajnikiem na ogniu. Całość zajęła mniej więcej dwie i pół godziny, dwie kawy i jedną krótką chwilę konsternacji, która rozwiązała się sama, gdy przeczytałam wiersz dokumentacji, który pominęłam. Szacuję, że dziewięćdziesiąt minut z tego czasu to ja czytająca uważniej, niż naprawdę musiałam.

Ten wpis jest dla każdego, kto kiedykolwiek otworzył przewodnik po Raspberry Pi i po cichu zamknął kartę. To wersja przewodnika, której chciałabym w sobotni poranek.

Lista zakupów

Miałam Raspberry Pi 5 leżące w szufladzie. Nie mam dobrego wytłumaczenia dlaczego; kupiłam je zeszłej wiosny z zamiarem zrobienia czegoś ciekawego, a potem nie zrobiłam. Jeśli nie mają Państwo jeszcze Pi, proszę wziąć Pi 5 (8 GB w zupełności wystarczy) i zasilacz. Starsze Pi 4 działa równie dobrze — Pi 5 to po prostu to, co miałam.

Do tego dokupiłam dwie rzeczy z Amazon.de:

  • Odbiornik SDR USB NooElec NESDR Smart — aluminiowa obudowa, układ R820T2, rozmiar grubego pendrive’a z małym gniazdem antenowym na końcu. Około 30 €. (Jest to, uczciwie mówiąc, najładniejszy sprzęt w moim mieszkaniu.)
  • Dwupasmowa antena Bingfu z podstawą magnetyczną — 978 / 1090 MHz, 7 dBi, trzy metry kabla, złącze SMA. Około 25 €. Wygląda jak mała czarna solniczka na magnetycznym krążku. Jest, ogólnie rzecz biorąc, w porządku. Więcej o tym niżej.

Plus karta microSD, którą musiałam wygrzebać z szuflady biurka. (Leżała tam mniej więcej od 2019 roku. Miała ciekawsze życie, niż jej przypisywałam.)

Łączny wydatek, skoro Pi już miałam: około 55 € i jeden niedzielny poranek. Ceny się wahają — oferty na Amazonie zmieniają się wraz ze stanem magazynu i sprzedawcami, więc proszę sprawdzić przed zakupem; podane tu kwoty to orientacyjny rząd wielkości, nie wycena.

Mit i rzeczywistość

Mit głosi, że konfiguracja Pi to ta część projektu, w której odkrywa się, że tak naprawdę nie rozumie się komputerów, własnego wifi ani siebie.

Rzeczywistość jest bliższa przygotowaniu do lotu. Jest lista kontrolna; wykonuje się ją po kolei; jeśli pominie się krok, dowiaduje się o tym w ciągu czterdziestu sekund, bo coś nie działa. Ludzie lotnictwa są wyszkoleni, by to lubić. Każdy, kto wykonał krąg i przeszedł check HASELL, ma odpowiedni umysł do tego hobby.

A więc — lista kontrolna.

Co właściwie dzieje się na tym Pi

Na tym małym pudełku zamieszkają dwa programy.

Pierwszy to readsb — dekoder open source utrzymywany przez małą grupę ludzi, którzy rozumieją inżynierię radiową lepiej, niż jest to zdrowe dla jednego człowieka. Nasłuchuje słabych impulsów na 1090 MHz, które odbiornik wyciąga z anteny, rozplątuje tysiące nakładających się transponderów statków powietrznych w każdej sekundzie i co sekundę zapisuje wynik do schludnego pliku JSON. To, ogólnie rzecz biorąc, trudna część całego projektu. Ktoś inny już ją zrobił.

Drugi to feeder Dataero — mała usługa w Pythonie, która czyta plik JSON z readsb i przekazuje go do sieci Dataero na radar.dataero.eu. To łatwa połowa problemu; to także połowa, która czyni Państwa sprzęt użytecznym dla kogokolwiek poza Państwem.

Najpierw instaluje się readsb, potwierdza, że słyszy samoloty, a potem instaluje na wierzchu feeder Dataero.

To cała architektura. Od tego miejsca to naprawdę tylko lista kontrolna.

Krok 1 — Wgranie systemu na kartę SD

Proszę pobrać Raspberry Pi Imager na laptop. Istnieje dla Windows, Mac i Linux i jest po cichu jednym z lepszych instalatorów, jakich kiedykolwiek używałam. Proszę włożyć kartę SD do laptopa. Wybrać Raspberry Pi OS Lite (64-bit) — Lite, bo nie ma potrzeby instalować pulpitu na czymś, co będzie mieszkać na parapecie i nigdy nie zobaczy monitora.

Przed kliknięciem Write proszę otworzyć ustawienia pod ikoną koła zębatego. Ustawić nazwę hosta (moja to radar-etterbeek, bo nie jestem subtelna), ustawić nazwę użytkownika i hasło, wkleić dane wifi i zaznaczyć Enable SSH. To z góry przygotowuje wszystko, czego Państwo potrzebują; w żadnym momencie nie trzeba będzie podłączać do Pi ekranu.

Kliknąć Write. Zrobić kawę. Wrócić za pięć minut.

Krok 2 — Uruchomienie Pi

Proszę wyjąć kartę SD z laptopa. Wsunąć ją w gniazdo od spodu Pi. Podłączyć zasilacz.

Jest szczególna cisza, która zapada w kuchni, gdy Raspberry Pi uruchamia się po raz pierwszy. W mojej trwała około dziewięćdziesięciu sekund. Z Brothers in Arms w tle, co wydawało się w sam raz.

Gdy Pi skończy myśleć, proszę znaleźć je w swojej sieci. Najprościej przez panel administracyjny routera — szukać radar-etterbeek (lub jakkolwiek je Państwo nazwali) i zanotować adres IP.

Krok 3 — Połączenie przez SSH i aktualizacja

Z terminala na laptopie:

ssh sandy@192.168.1.42

(Proszę użyć swojej nazwy użytkownika i adresu IP swojego Pi.) Za pierwszym razem zapyta, czy ufają Państwo hostowi. Tak. Następnie:

sudo apt update && sudo apt upgrade -y

To zajmuje kilka minut. Czas na drugą kawę.

Krok 4 — Podłączenie odbiornika i anteny

Proszę wyłączyć Pi (sudo shutdown now). Włożyć odbiornik NooElec do jednego z portów USB-A w Pi. Przykręcić kabel SMA anteny do końcówki odbiornika — dokręcić palcami, potem ćwierć obrotu dwoma palcami; proszę nie szarżować kombinerkami.

Antenę proszę ustawić gdzieś z widokiem na niebo. Ja postawiłam swoją po wewnętrznej stronie okna w salonie, na magnetycznym krążku przyczepionym do stalowej puszki po ciastkach, bo parapet jest drewniany. Co tylko działa.

Włączyć Pi z powrotem. Ponownie połączyć się przez SSH.

Krok 5 — Utworzenie konta Dataero i pobranie klucza API

Dwa krótkie kroki w przeglądarce, które nie dzieją się na Pi.

  1. Proszę otworzyć radar.dataero.eu w przeglądarce na laptopie. Kliknąć Register, wypełnić formularz, potwierdzić e-mail, jeśli o to poprosi.
  2. Po zalogowaniu proszę kliknąć swoją nazwę użytkownika w prawym górnym rogu, przejść do Profile, znaleźć sekcję API Key i kliknąć Request API Key. Skopiować klucz w miejsce, w którym znajdą go Państwo w ciągu następnych trzydziestu sekund.

To wszystko. Klucz proszę traktować jak hasło — nie wklejać go na Discordzie, nie wysyłać do publicznego repozytorium, nie odczytywać na głos przy kolacji.

Krok 6 — Instalacja feedera Dataero

Z powrotem do sesji SSH na Pi. Powinni Państwo nadal być w katalogu dataero-adsb-feeder z kroku 5; jeśli gdzieś Państwo odeszli:

cd ~/dataero-adsb-feeder

Następnie proszę uruchomić instalator feedera:

sudo bash installer.sh

Zada kilka uprzejmych pytań — przede wszystkim poprosi o wklejenie klucza API, który właśnie skopiowali Państwo z profilu Dataero. Instalator tworzy wirtualne środowisko Pythona w /usr/local/dataero-adsb-feeder, umieszcza tam klucz w pliku .env i rejestruje feeder jako usługę systemd, która startuje przy uruchomieniu systemu.

Gdy skończy, proszę sprawdzić, czy żyje:

sudo systemctl status dataero-feeder.service

Ta sama procedura: active (running), na zielono. Jeśli nie, najczęstszą przyczyną jest literówka w kluczu API, o czym journalctl -u dataero-feeder.service -e poinformuje z godną uwagi bezpośredniością.

Krok 7 — Pierwszy kontakt

Proszę ponownie otworzyć radar.dataero.eu, zalogować się i znaleźć swoją stację na mapie. W ciągu minuty lub dwóch od uruchomienia feedera znacznik stacji powinien zmienić kolor na zielony, a wokół niego powinna rozchodzić się mała konstelacja samolotów.

Pierwszym samolotem, jaki zobaczyłam, był A320 Lufthansy wznoszący się z Frankfurtu na FL340, lecący na zachód. Drugim był Boeing C-17 wysoko nad Holandią, na wschód na FL310 — zapewne okrężną drogą gdzieś do Zatoki. Trzeci sprawił, że naprawdę się uśmiechnęłam: Cirrus SR22 — nie mój, ale wystarczająco podobny — wędrujący wzdłuż belgijskiego wybrzeża.

To jest ten moment. Gdy zobaczą Państwo pierwsze trzy lub cztery ślady pojawiające się na własnym ekranie, odebrane własnym sprzętem, techniczna część projektu się kończy, a zaczyna część hobbystyczna.

Przydatne polecenia, których będą Państwo potrzebować później

Krótka ściągawka na następny weekend, gdy wszystko już Państwo zapomną:

# Status
sudo systemctl status readsb
sudo systemctl status dataero-feeder.service
# Live logs
sudo journalctl -u readsb -f
sudo journalctl -u dataero-feeder.service -f
# Restart after editing config
sudo systemctl restart dataero-feeder.service
# Edit the feeder's config (API key, paths, debug)
sudo nano /usr/local/dataero-adsb-feeder/.env

Ustawienie DEBUG=TRUE w pliku .env i restart usługi to właściwy pierwszy ruch, gdy coś nie działa, a powód nie jest oczywisty. Po rozwiązaniu problemu proszę przywrócić FALSE; logi są wtedy cichsze.

Co naprawdę daje antena wewnętrzna

Szczerze? Więcej, niż się spodziewałam, i mniej, niż bym chciała.

Z mojego okna w Etterbeek widzę, przy właściwej geometrii, prawie wszystko powyżej 5000 stóp w promieniu około 100 mil morskich. To obejmuje główne przyloty do Zaventem, wysokościowy ruch europejski przecinający Belgię i większość lotnictwa ogólnego z Grimbergen i Charleroi, gdy tylko wyjdzie ponad budynki.

Umyka mi to, co nisko i blisko — loty po kręgu na małych lotniskach, śmigłowce poniżej 1500 stóp, nocne loty medyczne trzymające się nisko. Bingfu robi to, do czego jest zaprojektowana, czyli jest mała, do wewnątrz i rozsądna. Nie jest zaprojektowana, by być najlepszą możliwą.

Zrobiłam więc to, co każdy feeder ADS-B przede mną. Już przyglądam się antenie zewnętrznej. Auratrove 1090 SMA outdoor, około 60 €, to realistyczny następny krok — lepszy zysk, odporna na pogodę, montowana do barierki balkonu. Skok w odbiorze z wewnątrz na zewnątrz jest, jak wszyscy twierdzą, wyraźny. Zdam relację.

Mały ukłon w stronę readsb

Byłoby niewłaściwie zakończyć bez powiedzenia tego wprost: naprawdę sprytna część tego projektu to nie Pi i nie feeder Dataero. To readsb. Strona Dataero — łącznie z całym tym artykułem — to łatwa połowa.

readsb to program, który nasłuchuje słabych impulsów radiowych na 1090 MHz od statków powietrznych oddalonych potencjalnie o 200 mil morskich, rozplątuje tysiące nakładających się komunikatów transponderów Mode S w każdej sekundzie i zamienia to wszystko w czysty plik JSON na małym komputerze, który kosztuje mniej niż przyzwoita kolacja. Wywodzi się z dump1090, rozwijał go Mictronics, a obecnie utrzymuje go wiedehopf i społeczność współtwórców. Nikt z nas w Dataero nie napisał z tego ani linijki. My przekazujemy bajty dalej.

Gdyby to oprogramowanie było zespołem muzycznym, readsb byłby wokalistą, gitarzystą prowadzącym, perkusistą, basistą, producentem, realizatorem dźwięku i osobą, która napisała każdą piosenkę. Feeder Dataero to ten, kto rozdaje ulotki przy drzwiach.

A więc — mały ukłon, szczerze.

Uwaga o Dataero

Skierowałam swój strumień danych do Dataero — europejskiej sieci ADS-B budowanej przez społeczność, którą prowadzimy — po części dlatego, że tam pracuję, a po części dlatego, że włączenie mojego odbiornika do sieci należącej do ludzi, którzy ją prowadzą, przemawia do mnie bardziej niż oddawanie danych firmie, z którą nigdy nie zamienię słowa. Instalacja nie różni się od żadnej innej; zmienia się to, co dzieje się z danymi później.

Jeśli już zasilają Państwo jakąś sieć, nie muszą Państwo zmieniać. Dataero działa równolegle.

Co powiedziałabym sobotniej Sandy

Że Raspberry Pi to, ogólnie rzecz biorąc, po prostu mały komputer z Linuksem, który robi jedną rzecz bardzo dobrze, jeśli grzecznie się go poprosi. Że odbiornik SDR ma rozmiar pendrive’a. Że antena ma rozmiar kuchennego przyboru. Że oba potrzebne programy instalują skrypty; że jeden z nich to magia open source, a drugi to sześćdziesięciolinijkowy przekaźnik; że nic tutaj nie jest nie do odratowania. Jeśli krok nie działa, czyta się ponownie wiersz nad nim i próbuje jeszcze raz.

Że satysfakcja z otwarcia karty przeglądarki i oglądania prawdziwych samolotów, odebranych własnym sprzętem, stojącym na własnym parapecie, we własnym mieszkaniu — jest, po cichu, zupełnie nieproporcjonalna do włożonej pracy.

W każdym razie. Filiżanka herbaty i z powrotem do roboty.


Jeśli chcą Państwo dodać swój węzeł do Dataero, repozytorium feedera jest na github.com/dataero-adsb/dataero-adsb-feeder, a sieć, do której dołącza, na radar.dataero.eu. Będę tam dziś wieczorem.

Zobacz to na własnych danych

Proszę opisać swoje lotnisko, urząd lub flotę, a pokażemy, co sieć już tam widzi.