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

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 -yTo 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.
- Proszę otworzyć radar.dataero.eu w przeglądarce na laptopie. Kliknąć Register, wypełnić formularz, potwierdzić e-mail, jeśli o to poprosi.
- 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-feederNastępnie proszę uruchomić instalator feedera:
sudo bash installer.shZada 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.serviceTa 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/.envUstawienie 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.