Za jídlo, šaty a vzduch otročíme na programech z temných světů

SDR: Příjem ADS-B

O tom, že Číňani vyrábí levné USB DVB-T dongly, které ve skutečnosti nejsou nic jiného než SDR přijímač s jednoúčelovou aplikací jsem se dočetl už někdy vloni na jaře. Přišel na to jeden z vývojářů linuxového v4l a netrvalo dlouho a začaly se objevovat návody a programy, s jejichž pomocí je možné dongle používat k příjmu prakticky čehokoliv na frekvencích od 25 až po 1750MHz.

Dongle jsem si chtěl pořídit už tenkrát, ale paradoxně se zdálo, že v Linuxu je to celkem opruz a většina radioamatérů používá windowsový modifikovaný ovladač a windowsové aplikace. Nic z toho bych na Efika Smartbooku nemohl provozovat a tak jsem nápad pustil k vodě. Až nedávno jsem se dostal k možnosti si prověřený model objednat (u ničeho z Číny nevíte, zda příští kus bude mít stejný čip, nebo bude ve stejné krabičce úplně jiný hardware) a tentokrát jsem už neodmítl.

Dongle stál 250Kč a dorazil tuto neděli. Jelikož jsem zrovna s dvěma jihopražskými HAMy řešil úspěchy jejich jednoúčelové instalace (dongle + Raspeberry Pi + dobrá anténa), určené k příjmu ADS-B signálů z dopravních letadel, stalo se logicky ADS-B prvním signálem, jehož příjem jsem pomocí SDR vyzkoušel. Když má pro obsluhu rádia a dekódování signálu dostatečný výkon Raspberry Pi, musí to zvládat i moje Efika, která se navíc dá báječně přenášet a používat i někde na kopci.

Podle některého z mnoha návodů jsem přeložil patřičný ovladač (rtl-sdr):

git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr/
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig

A hned v zápětí zkusil pomocí build scriptu přeložit i GNU Radio. Po pouhých čtyřech hodinách kompilace skončila s chybou a já prozatím odložil Efiku zpět do knihovny a vytáhl z ní jiný, zcela standardní stroj – HP EliteBook 2530p. V Linux Mint 14 nebyl už problém přeložit rtl-sdr, GNU Radio ani gr-air-modes, ověřil jsem že přijímač přijímá a vyrazil do letňanského lesoparku vyzkoušet příjem.

Rozložil jsem techniku po obřím kameni, který je na vrcholku kopce coby ozdoba a snažil se nebudit pozornost nedaleko pařící skupinky bezvlasých mužů, jejichž hlasité ska a cinkání pivních lahví ve mně důvěru zrovna nebudilo. Program gr-air-modes sice chrlí dekódovaná data v textové podobě do konzole, ale moc si toho při rychlosti v řádu stovek řádků za minutu nepřečtete. Nechal jsem ho tedy chvíli přijímat s výstupem do kml souboru, který jsem následně vizualizoval do mapy.

Tento způsob se mi ale zdál krajně nepřívětivý, protože je samozřejmě lepší vidět hned, co se to na obloze nad vámi děje. Petr OK2ZAR mi doporučil utilitu dump1090, kterou jsem si ještě během jeho relace přímo na místě stáhl a přeložil:

git clone git://github.com/MalcolmRobb/dump1090.git
cd dump1090
make

Dump1090 nejen, že s parametrem --interactive vypisuje data přehledně do tabulky, ale při použití --net spustí na portu 8080 webserver na němž generuje realtime polohu letadel nad Google mapou. Není navíc závislý na GNU Radiu, takže jsem ho hned po příchodu zpět domů přeložil a vyzkoušel i na Efice. V obou případech fungoval skvěle.

Mapový výstup z dump1090

Jelikož nemám anténu určenou přímo pro příjem ADS-B, zkusil jsem, zda něco chytím i na přibalený prut (spíše proutek), určený pro příjem DVB-T. Kupodivu jsem při vhodném umístění antény chytil letadla od Poznaně po Salzburg. Dobrá anténa na dobrém místě jich sice ve stejnou dobu viděla 4x více, ale jako první test to rozhodně nedopadlo špatně. Na závěr ještě díky OK2ZAR a OK1PSU za obstarání donglu a rady se softwarem.