zondag 16 juli 2023

Eens wat anders: een ADS-B exchange feeder

Nog altijd geen auto met scannermogelijkheid, maar het einde hiervan is in zicht. Los hiervan had ik al lang zin om een ADS-B feeder te maken (u weet wel, sites als adsbexchange.com of Flightradar24 halen hun informatie van een heleboel 'vrijwilligers' die wereldwijd ADS-B informatie van vliegtuigen e.d. ontvangen en doorsturen naar de servers van deze sites). 

Dit kan onder andere met een RTL-stick en een Raspberry Pi. De RTL-stick had ik al, maar met de Raspberry Pi moet wat gerommeld worden om het besturingssysteem aan de praat te krijgen, en vervolgens moet er in een terminal-window in het (Linux) besturingssysteem wat gegoocheld worden om de software voor de feeder te installeren. 

Een paar jaar geleden kwam ik deze site tegen en ik vond de uitleg wel vertrouwenwekkend uitgebreid (spoiler: je loopt op een gegeven moment vast als je precies doet wat op die site staat!). De maker gebruikt een Raspberry Pi 3B+ en uit voorzichtigheid besloot ik maar precies hetzelfde te doen. Maar op het moment dat ik er een keer tijd en zin in had, was de coronacrisis aan de gang en kreeg de Pi-organisatie last van supplychainissues. Tot op de dag van vandaag zijn er webshops die nog altijd niet aan (bepaalde) Raspberry Pi's kunnen komen.

Een paar weken geleden kwam ik bij Reichelt toch de Pi 3B+ tegen, en deze (als pakket met was extra dingen die je toch nodig hebt) maar besteld. Aan de slag dus dit weekend!

Wat heb je nodig:

  • Raspberry Pi (absoluut nodig, zit in het all in pakket)(ik heb een 3B+, ik neem voorzichtig aan dat het met een 3B ook werkt. Versies 4 zal ongetwijfeld lukken). Ergens in de evolutie van 3 -> 3B -> 3B+ hebben ze wifi-mogelijkheid en dat is bij dit soort geëxperimenteer wel makkelijk.
  • Behuizing (absoluut nodig, tenzij je de Pi in een lege bak van de chinees, waarin je gaatjes hebt geboord, wil leggen. Dat kan ook. Zit in het all in pakket).
  • Micro SD kaart van 8 GB of groter met adapter (absoluut nodig, 32 GB zit in het all in pakket). Bij de mediamarkt waren alleen nog maar kaarten van 32 GB en 128 GB en misschien nog wel groter te koop en die zijn overrated.
  • HDMI kabel (zou je los kunnen slopen uit het TV-meubel, maar als je geen zin hebt de handel hier uit elkaar te halen, apart bijkopen. Een paar meter is voldoende.
  • TV met HDMI (absoluut nodig) Die heeft iedereen, zo niet, bestel er een bij coolblue en ruil hem weer in als de installatie klaar is.
  • Toetsenbord met USB (absoluut nodig). Voor een dik tientje bij de mediamarkt, maar misschien slingert er nog een rond op uw werk.
  • Muis met USB (niet perse nodig, wel makkelijk).
  • Voeding voor de Pi (absoluut nodig, zat natuurlijk in het pakket). 
  • Koellichaampjes voor de Pi (zaten in het all in pakket, zelf nog niet geplaatst, staat nog op het to do lijstje.
  • Netwerkkabel naar de rest van de wereld (op zich niet nodig, de 3B+ heeft wifi).
  • RTL stick (absoluut nodig)
  • Een of andere antenne t.b.v. de RTL stick (absoluut nodig)

Wat heb ik nu gedaan (dit lukt dus als je het SD kaartje dat bij het all in pakket van Reichelt zat, gebruikt):

  • TV via HDMI kabel verbinden met de Pi, toetsenbord en muis in de USB poorten van de PI. 
  • De micro-SD kaart in het gleufje van de Pi (hierop staat dus bij het all in pakket voorgeïnstalleerde besturingssoftware).
  • De voedingskabel in de Pi, waarna deze start.
  • Er verschijnt een menu waarin je de keuze kunt maken uit verschillende te installeren besturingssystemen. Daarnaast kun je hier de wifi's instellen. Dit heb ik als eerste gedaan, en vervolgens na wat twijfelen Raspberry Pi OS 32 bits geïnstalleerd. Het systeem begrijpt zelf al dat je in NL zit met de juiste tijdzone.
  • Het besturingssysteem installeert zichzelf. Op een bepaald moment komen er vragen of hij moet updaten, antwoord hierop 'ja'. Bij mij eindigde het met een probleem met een taalpackage en dit ik iets zou moeten doen met 'DPKG....' wat ik niet gedaan heb, en wat ook geen problemen gaf.

Als dit klaar is zie je het windows-achtige startscherm:


We gaan nu in principehet stappenplan van Tom Verbeure weer volgen vanaf 'Enable SSH', maar hij heeft hier en daar wat oude links staan. Actuele links staan op de site van Flightaware; zorg dat je deze pagina's op een tablet open hebt.

 

Klik met de muis links boven, selecteer 'voorkeuren' en 'pi configuratie programma',  daarna 'interfaces' en zet hier 'SSH' aan. Dit zorgt ervoor dat in de toekomst de PI, als hij op zolder hangt, op afstand in te stellen is.

Je  moet nu 'Piaware' installeren. Dit is software die naar de RTL-stick luistert en dit signaal decodeert en naar Flightaware doorstuurt. Nu komt het moeilijke:

  • open met CTRL+ALT+T een terminal scherm. Dit is een soort ouderwets DOS-scherm.
  • (helaas, Tom Verbeure heeft hier een oude link. Doe dus wat op de site van Flightaware staat vanaf '2 Download and Install PiAware':
  • Tik in, na elke regel uiteraard [enter]
    wget https://flightaware.com/adsb/piaware/files/packages/pool/piaware/f/flightaware-apt-repository/flightaware-apt-repository_1.1_all.deb
    sudo dpkg -i flightaware-apt-repository_1.1_all.deb
     
  •  Tik in, om updates op te halen en te installeren:
      sudo apt-get update
      sudo apt-get install piaware
  •  Tik in, om updaten mogelijk te maken:

      sudo piaware-config allow-auto-updates yes

      sudo piaware-config allow-manual-updates yes
  •  Installeer Dump 1090:

      sudo apt-get install dump1090-fa

Flightaware installeert nu ook Dump 978. Omdat 978 MHz niet voor ADS-B wordt gebruikt buiten de VS, doen we dit niet.

  •  Tik in, om opnieuw op te starten:
      sudo reboot 

De Pi start nu opnieuw op. Er moet nu nog een script worden gedraaid om de gedecodeerde informatie naar ADSBexchange te krijgen. Tom Verbeure heeft hier een verouderde link naar files op github.com, die niet meer werken omdat er bij Github ingelogd moet worden. ADSBexchange heeft op de eigen site echter de info staan om dit voor elkaar te krijgen:

  • Ga naar adsbexchange.com
  • Klik op 'share your data'
  • Zoek alvast je eigen lengte- en breedteligging op op de tablet of telefoon die je had liggen, bijvoorbeeld  via findlatitudeandlongitude.com
  • Zoek alvast je eigen hoogteligging op, bijvoorbeeld op topotijdreis.nl, en bepaal de antennehoogte ten opzichte van het plaatselijke maaiveld.
  • Volg nu verder wat er op adsbexchange staat, vanaf '2: Install the feed client':
  • Tik in: 
      curl -L -o /tmp/axfeed.sh https://adsbexchange.com/feed.sh
      sudo bash /tmp/axfeed.sh

Er gaat nu een setup draaien die vraagt om een gebruikersnaam en een password dacht ik, en de locatie van de antenne en de hoogte, die je net al hebt opgezocht. Als je klaar bent moet er nog een keer gereboot worden.

De decodering antenne->stick->pi-> ADS-B exchange draait hierna! Dit is te zien door de links te gebruiken die op adsbexchange staan onder kopje 3, als je ze benadert vanuit hetzelfde IP-adres. 


De antenne van de RTL-stick moet wel vrij zicht hebben, en zo hoog mogelijk staan, want de signalen zijn zwak, de antenne is niet optimaal, de kabel is dun en de stick is niet de optimale ontvanger.

ADS-B exchange kan je ook een kaartje laten zien met daarop alleen de vliegtuigen die je ontvanger decodeert. Daarvoor moeten de stappen onder kopje '4: Optional: Install the stats package for an online map that shows only planes received by you:' uitgevoerd worden in het terminal scherm, en dat hoeft nu geen problemen meer op te leveren.

Je kunt nu de Pi loskoppelen van de HDMI kabel, de muis en het toetsenbord, en ergens anders neerzetten zodat de antenne vrij zicht heeft. Zowel op de site van adsbexchange als van flightaware kun je op zoek naar stats, en kijken hoeveel vliegtuigen je ziet. In rustig gebied, met natte bomen in de buurt, en en matige antenne-opstelling valt het een beetje tegen wat je ziet. 

De volgende stap is daarom een optimale antenne-opstelling en ontvanger. Dat is het volgende project!