
Bron: Wikipedia: ADS-BAutomatic Dependent Surveillance-Broadcast (ADS-B) is een coöperatief systeem voor luchtverkeersleiding en aanverwante toepassingen. Met ADS-B uitgeruste vliegtuigen zenden periodiek hun positie en andere informatie aan grondstations en naburige vliegtuigen die met ADS-B zijn uitgerust.
Elke seconde zendt het vliegtuig automatisch een kort bericht met zijn positie uit (via ADS-B out).[1] De luchtverkeersleiding is bij gebruik van dit systeem voor surveillance afhankelijk (Engels: dependent) van de aanwezigheid en het functioneren van het ADS-B out-systeem aan boord van de vliegtuigen die zich in het door de verkeersleiding beveiligde luchtruim bevinden.
Afhankelijk van de uitvoering van de zender worden naast de geografische locatie onder meer registratienummer, vluchtnummer, snelheid, hoogte, koers en intenties verstuurd. Het systeem werkt zowel op de grond als in de lucht.
Dit signaal kan ook door de leek worden ontvangen.
Dit kan al met een goedkope USB DVB-T ontvanger van een tientje.
Uiteindelijk kun je hier aan blijven tweaken waarbij velen uitkomen op een installatie bestaande uit een Raspberry Pi, een USB-ontvanger speciaal bedoelt voor ADS-B, een eventuele filter en een goede antenne,
deze laatste bij voorkeur buiten geplaatst op een zo hoog mogelijke plek, met zo min mogelijk bebouwing/bomen rondom.
ADS-B feeder, met een Raspberry Pi en Docker. Hoe doe je dat nou precies?
(Onderstaande guide geschreven door @Anoniem: 111246 )
Onderstaande gaat ervan uit dat je reeds in bezit bent van een Pi en daarover wel in de basis weet hoe je daar mee omgaat. Onderstaande draait (met nog wat andere meuk) op een Pi4b, 4GB.
Ik raad je aan om een x64 build te gebruiken van Pi OS. (In mijn geval Bookworm).
Let wel, je PI zal een vast IP moeten hebben.
Tevens is het te adviseren om de Pi storage op een SSD te zetten, betrouwbaarder & een stuk vlotter dan een SD-kaart gezien de continue I/O.
Onderstaande houdt geen rekening met eventuele andere zaken die je hebt draaien op je PI die conflicten kunnen geven (poorten/etc).
Poorten kun je na behoefte nog zelf aanpassen.
Het e.a. is gebaseerd op deze repository en werkt prima bij mij https://github.com/sdr-enthusiasts/docker-readsb-protobuf instructies zijn dan ook vrijwel een copy/paste van deze repo.
Voorzie je PI allereerst van de meest recente updates:
code:
1
| sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y |
Installeer daarna docker met een aparte map voor alle storage van de containers.
code:
1
2
3
4
5
6
7
| sudo mkdir /dockervolumes sudo curl -sSL https://get.docker.com | sh sudo usermod -aG docker pi logout sudo systemctl enable docker |
Zelf heb ik een cron-job aangemaakt om docker elke nacht op te schonen van rommel.
code:
1
2
| sudo nano /etc/crontab 00 3 * * * root /usr/bin/docker system prune -f |
Om de containers die we verder gaan aanmaken, automatisch te updaten, is Watchtower een handige om te installeren.
code:
1
2
3
4
5
6
7
8
| docker create \ --name watchtower \ --hostname=watchtower \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /etc/timezone:/etc/timezone:ro \ -v /etc/localtime:/etc/localtime:ro \ --restart unless-stopped \ containrrr/watchtower |
De Raspberry Pi moet voorbereid worden voor de ADS-B receiver, en wat drivers te blacklisten.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| sudo nano /etc/modprobe.d/blacklist-rtlsdr.conf # Blacklist host from loading modules for RTL-SDRs to ensure they # are left available for the Docker guest. blacklist dvb_core blacklist dvb_usb_rtl2832u blacklist dvb_usb_rtl28xxu blacklist dvb_usb_v2 blacklist r820t blacklist rtl2830 blacklist rtl2832 blacklist rtl2832_sdr blacklist rtl2838 blacklist rtl8192cu blacklist rtl8xxxu # This alone will not prevent a module being loaded if it is a # required or an optional dependency of another module. Some kernel # modules will attempt to load optional modules on demand, which we # mitigate here by causing /bin/false to be run instead of the module. # # The next time the loading of the module is attempted, the /bin/false # will be executed instead. This will prevent the module from being # loaded on-demand. Source: https://access.redhat.com/solutions/41278 install dvb_core /bin/false install dvb_usb_rtl2832u /bin/false install dvb_usb_rtl28xxu /bin/false install dvb_usb_v2 /bin/false install r820t /bin/false install rtl2830 /bin/false install rtl2832 /bin/false install rtl2832_sdr /bin/false install rtl2838 /bin/false install rtl8192cu /bin/false install rtl8xxxu /bin/false |
CTRL-X & YES om de blacklist op te slaan.
En vervolgens je initial boot aan te passen en te voorkomen dat het e.a. geladen wordt/gaat conflicteren.
code:
1
2
3
4
5
6
7
8
9
10
11
12
| sudo modprobe -r rtl2832_sdr sudo modprobe -r dvb_usb_rtl2832u sudo modprobe -r dvb_usb_rtl28xxu sudo modprobe -r dvb_usb_v2 sudo modprobe -r r820t sudo modprobe -r rtl2830 sudo modprobe -r rtl2832 sudo modprobe -r rtl2838 sudo modprobe -r rtl8192cu sudo modprobe -r rtl8xxxu sudo modprobe -r dvb_core sudo update-initramfs -u |
Deze wijzigingen worden definitief na een reboot van je pi.
Welke je uitvoert via: sudo reboot
Na de reboot is het tijd om je containers aan te maken, te beginnen met de BEASTHOST.
Je dient zelf nog 2 variabelen in te vullen bij LAT/LON van waar jouw antenne staat.
Heb je nog een filter er tussen zitten en kan jouw ADS-B USB stick deze voeden via de coax kabel, voeg dan nog
code:
1
| -e READSB_ENABLE_BIASTEE=True \ |
toe aan onderstaande code. Anders dien je deze weg te laten.
Na installatie zal je container beschikbaar zijn via http://<IP VAN JOUW PI>:7474
Deze pagina laat op de kaart de door jou opgepikte toestellen zien, op de Performance pagina heb je wat coole stats.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| sudo mkdir /dockervolumes/readsb/ sudo mkdir /dockervolumes/readsb/rrd sudo mkdir /dockervolumes/readsb/autogain sudo docker create \ -it \ --restart=always \ --name readsb \ --hostname readsb \ --device /dev/bus/usb:/dev/bus/usb \ -p 7474:8080 \ -p 30005:30005 \ -e TZ=Europe/Amsterdam \ -e READSB_DCFILTER=false\ -e READSB_DEVICE_TYPE=rtlsdr \ -e READSB_FIX=true \ -e READSB_GAIN=autogain \ -e READSB_LAT=<JOUW LOCATIE> \ -e READSB_LON=<JOUW LOCATIE> \ -e READSB_MODEAC=true \ -e READSB_RX_LOCATION_ACCURACY=2 \ -e READSB_STATS_RANGE=true \ -e READSB_NET_ENABLE=true \ -v /dockervolumes/readsb/autogain:/run/autogain \ -v /dockervolumes/readsb/rrd:/run/collectd \ --tmpfs=/run:exec,size=64M \ --tmpfs=/var/log:size=32M \ ghcr.io/sdr-enthusiasts/docker-readsb-protobuf:latest |
Wil je nog al jouw data delen met verschillende online platformen, dan kun je optioneel de volgende sites toevoegen als container.
Let wel je zal per feeder nog op hun website een account / ID moeten aanmaken om te kunnen feeden.
De instructies daarvoor kun je prima zelf vinden op de desbetreffende websites.
Bij o.a. FR24, FlightAware & Radarbox krijg je in ruil voor het feeden een premium abo cadeau.
FlightRadar 24
http://<JOUW IP>:8754 voor wat settings en info.
code:
1
2
3
4
5
6
7
8
9
10
| sudo docker create \ --name flightradar24 \ --hostname=flightradar24\ --net=host \ -e BEASTHOST=<IP VAN JOUW PI>\ -e FR24KEY=<JOUW FR24 FEEDERID>\ -e MLAT=YES \ -p 8754:8754 \ --restart unless-stopped \ ghcr.io/sdr-enthusiasts/docker-flightradar24:latest |
Pi-Aware/Flightaware
http://<JOUW IP>:8787 voor een overzicht van wat je stuurt.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| sudo docker create \ --name piaware \ --hostname=piaware\ -e TZ="Europe/Amsterdam" \ -e RECEIVER_TYPE=relay \ -e BEASTHOST=<IP VAN JOUW PI> \ -e BEASTPORT=30005 \ -e FEEDER_ID=<JOUW FLIGHTAWARE FEEDERID> \ -p 8787:8080 \ -v /etc/timezone:/etc/timezone:ro \ -v /etc/localtime:/etc/localtime:ro \ --tmpfs=/run:exec,size=64M \ --tmpfs=/var/log \ --restart unless-stopped \ ghcr.io/sdr-enthusiasts/docker-piaware:latest |
PLANEFINDER
http://<JOUW IP>:30053 voor een kaart & settings/stats.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| sudo docker create \ --name planefinder \ --net=host \ --hostname=planefinder\ -v /etc/timezone:/etc/timezone:ro \ -v /etc/localtime:/etc/localtime:ro \ -e TZ="Europe/Amsterdam" \ -e BEASTHOST=<IP VAN JOUW PI> \ -e LAT=<JOUW LOCATIE> \ -e LONG=<JOUW LOCATIE> \ -e SHARECODE=<PLANEFINDER SHARECODE> \ --restart unless-stopped \ ghcr.io/sdr-enthusiasts/docker-planefinder:latest |
ADS-B Exchange
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| docker create \ -e TZ=Europe/Amsterdam \ -e BEASTHOST=<IP VAN JOUW PI> \ -e BEASTPORT=30005 \ -e LAT=-<JOUW LOCATIE> \ -e LONG=<JOUW LOCATIE> \ -e ALT=10m \ -e SITENAME=<JOUW SITENAME> \ -e UUID=<JOUW ID> \ -v /etc/timezone:/etc/timezone:ro \ -v /etc/localtime:/etc/localtime:ro \ --tmpfs=/run:rw,nosuid,nodev,exec,relatime,size=64M,uid=1000,gid=1000 \ --name adsbexchange \ --hostname=adsbexchange \ --restart unless-stopped \ ghcr.io/sdr-enthusiasts/docker-adsbexchange:latest |
Radarbox:
Voor jouw key moet je een aantal stappen doorlopen om die te verkrijgen.
Dat vind je hier onder het kopje "Obtaining a RadarBox Sharing Key: https://github.com/sdr-en...container/docker-radarbox
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| docker create \ --name radarbox \ --net=host \ -e TZ="Europe/Amsterdam" \ -e BEASTHOST=<IP VAN JOUW PI> \ -e LAT=<JOUW LOCATIE> \ -e LONG=<JOUW LOCATIE> \ -e ALT=10 \ -e SHARING_KEY=<JOUW KEY> \ -v /etc/timezone:/etc/timezone:ro \ -v /etc/localtime:/etc/localtime:ro \ --hostname=radarbox\ --restart unless-stopped \ ghcr.io/sdr-enthusiasts/docker-radarbox:latest |
Als alles klaar is, start je de containers uiteraard nog op met:
code:
1
2
3
4
5
6
7
| docker start watchtower docker start readsb docker start flightradar24 docker start piaware docker start planefinder docker start adsbexchange docker start radarbox |
[ Voor 74% gewijzigd door Piet91 op 17-10-2023 20:44 ]