Det började som en enkel fråga: går det att se vilka flygplan som flyger över mitt hus just nu? Svaret visade sig vara ja — och resultatet blev en live-karta tillgänglig på flights.hakdah.com som uppdateras automatiskt varje minut med riktiga flygdata från min egen mottagare här i Malmö.

I det här inlägget berättar jag hur det fungerar, vad som krävs tekniskt och vad jag planerar härnäst.
Vad är ADS-B?
ADS-B står för Automatic Dependent Surveillance-Broadcast. Det är ett system som moderna flygplan använder för att automatiskt sända ut sin position, höjd, fart och identitet via radiovågor på 1090 MHz — ungefär som ett GPS-spår i realtid, fast via radio istället för internet.
Signalerna är okrypterade och kan fångas upp av vem som helst med rätt utrustning. Det är precis det som sajter som Flightradar24 bygger på — ett globalt nätverk av frivilliga som delar sina mottagardata.
Till skillnad från äldre radarsystem behöver flygplanet inte ”tillfrågas” av en markstation. Det sänder helt enkelt ut sin position kontinuerligt, flera gånger per sekund.
Hårdvaran: en Raspberry Pi och en billig USB-mottagare
Det enda som behövs för att ta emot ADS-B-signaler är en SDR-mottagare (Software Defined Radio) — en liten USB-dongel som ursprungligen såldes för att ta emot digital-TV. Den kostar ungefär 150–300 kronor och fungerar utmärkt för ändamålet.
Min setup ser ut så här:
- Raspberry Pi (kör dygnet runt)
- RTL-SDR USB-mottagare ansluten till Pi:en
- Antenn monterad med god sikt mot himlen
- dump1090-fa — mjukvara som dekoderar ADS-B-signalerna
- Flightradar24 feeder — skickar mina data till FR24:s nätverk
dump1090-fa körs som en systemtjänst och skapar kontinuerligt JSON-filer med alla synliga flygplan — deras position, höjd, fart, squawk-kod och signalstyrka. Dessa filer sparas lokalt på Pi:en och uppdateras varje sekund.
Mjukvaran: från rådata till webbkarta
Den råa JSON-datan från dump1090-fa innehåller allt man behöver, men den behöver presenteras på ett snyggt sätt. Jag valde att bygga en enkel HTML-sida med:
- Leaflet.js för den interaktiva kartan med OpenStreetMap som underlag
- adsbdb.com API för att slå upp flygplanstyp, ägare och rutt baserat på ICAO hex-kod och callsign
- airhex.com för flygbolagslogotyper
När man klickar på ett flygplan på kartan hämtas automatiskt extra information: vilket bolag som äger planet, vilken typ det är (t.ex. Airbus A320), registreringsbeteckning och — om det är ett reguljärt flygning — vilken rutt det flyger. SAS-flight SK719 visade sig till exempel flyga HEL → ARN när jag testade.
Kartan visar också historiska rutter. dump1090-fa sparar 120 historikfiler (en var 30:e sekund, alltså ungefär en timmes historik) som webbsidan läser in och ritar ut som streckade linjer bakom varje flygplan.
Infrastrukturen: två servrar och rsync
En liten utmaning var att min ADS-B-mottagare sitter på mitt lokala hemmanätverk, medan webbservern för hakdah.com är en publik VPS i molnet. De kan inte nå varandra direkt.
Lösningen var enkel: ett cron-jobb som körs varje minut på Raspberry Pi:en och synkar JSON-filerna till webbservern via rsync och SSH.
* * * * * rsync -az -e "ssh -i ~/.ssh/webserver.key" \ /run/dump1090-fa/ \ ubuntu@webbserver:/home/test/public_html/flights/data/
Webbsidan läser sedan dessa statiska JSON-filer direkt — ingen databas, ingen backend, inga komplicerade API:er. Enkelt och robust.
Datastorleken är minimal. Katalogen med alla JSON-filer tar bara runt 800 KB, och dump1090-fa roterar historikfilerna automatiskt så den aldrig växer sig stor.
Vad kartan visar
Webbsidan på flights.hakdah.com visar:
- Alla flygplan inom räckvidd som realtidsprickar på kartan (gröna = normalhöjd, gula = över 9 000 m, cyan = under 3 000 m)
- Räckviddsringar på 50, 150 och 300 km
- Historiska flygrutter som animerade streckade linjer
- En panel med statistik: antal synliga flygplan, maxhöjd, maxdistans och totalt antal mottagna meddelanden
- En klickbar lista med alla aktiva flygplan sorterade efter distans
När man klickar på ett flygplan visas en popup med:
- Flygbolagslogotyp
- Operatör och flygplanstyp (t.ex. ”Lufthansa · Airbus A319 · D-AIBM”)
- Rutt med avgångs- och destinationsflygplats
- Höjd (meter), fart (km/h), kurs och squawk-kod
- Signalstyrka (RSSI) som en färgad stapel
Sidan är mobilanpassad och fungerar lika bra på telefon som på dator.
Tekniska detaljer i korthet
| Komponent | Teknik |
|---|---|
| Mottagare | RTL-SDR USB-dongel |
| Dekodning | dump1090-fa |
| Datasynk | rsync över SSH, cron varje minut |
| Karta | Leaflet.js + OpenStreetMap |
| Flygplansdata | adsbdb.com (gratis API) |
| Logotyper | airhex.com |
| Webbserver | Apache på VPS |
| Hosting | test.hakdah.com |
Räckvidd
Från mitt hem i Malmö ser mottagaren vanligtvis flygplan på upp till 300–400 km avstånd vid hög höjd. Flygplan på marken eller låg höjd är svårare att ta emot — radiovågor på 1090 MHz färdas i princip längs siktlinjen, och jordens krökning begränsar räckvidden för lågflygande plan.
En bättre antennplacering (högre upp, fri sikt mot alla håll) skulle förbättra räckvidden ytterligare.
Nästa steg
Det finns flera saker jag vill lägga till framöver:
Polar plot / täckningskarta — en visualisering som visar hur långt mottagaren faktiskt ”ser” i varje riktning. Det är ett klassiskt sätt att utvärdera en ADS-B-antenns prestanda.
Statistiksida — visa historisk data över tid: hur många flygplan per dag, vilka flygbolag som är vanligast, rekordavstånd och så vidare.
Push-notiser — en funktion som meddelar när ett specifikt flygplan (t.ex. ett sällsynt militärplan eller ett särskilt intressant registreringsnummer) dyker upp inom räckvidd.
MLAT — Multilateration, en teknik som låter flera mottagare samarbeta för att positionera flygplan som inte sänder GPS-koordinater. Flightradar24 erbjuder detta för feeders.
Prova själv
Kartan finns tillgänglig på flights.hakdah.com och uppdateras automatiskt varje minut. Är du nyfiken på att sätta upp något liknande hemma är tröskeln lägre än man tror — en Raspberry Pi och en billig USB-dongel räcker långt.
Hör gärna av dig om du har frågor eller vill dela med dig av din egen setup!
Lämna ett svar