Monitor Airplane Traffic with a Raspberry Pi
brianchristner.io
brianchristner.io
A project like Dictator Alert (https://dictatoralert.org/) uses ADS-B Exchange because the authoritarian regimes they're tracking can just pay a commercial site to hide their aircraft—they don't like being tracked.
My Advisory Circular bots (https://skycircl.es/bots/), which tweet in real time whenever they detect police, FBI, military, news or fire aircraft circling, and my "What's Overhead?" Siri shortcut (https://twitter.com/lemonodor/status/1238149529469202433) use ADS-B Exchange because a lot of the most interesting aircraft are the ones that are blocked on commercial trackers.
Edit: I think it's Opensky that filters their data. Not many planes are filtered but their coverage also isn't as comprehensive as ADSBExchange. For one specific usecase I did find Opensky's API easier to work with
Now anyone can subscribe to 360radar, but it is limited to the UK and a small part of northern Europe. It's not the cheapest service, but if you're an aviation photographer in the UK it and its linked community are a key resource.
That wouldn't stop any traffic collision or ATC function from working but would prevent persistent tracking of for example private jets.
I'm not sure how well that would work w/r/t ATC hand-off and their ability to look up flight plans.
Furthermore, there's the problem of getting the random ID to ATC after the plane has "started up."
Why? They are using our airspace. Looking down in to our backyards. I have a right to at least get an identifier I can use to report to authorities.
I've worked with VVIP executive protection teams before and if the trip needs to be secret they will schedule plane swaps along the trip or rent a jet that is not attributable to the company.
As a pilot, it's valuable to be able to see tail numbers to help correlate what I'm hearing on the radio with what I'm seeing on my displays. I can guess who's who from position reports, but seeing the tail number leaves no ambiguity.
There are also some smaller facilities that use ADS-B to monitor traffic, but aren't networked into the national ATC radar system.
Aviation events will also setup their own temporary control tower, and frequently use ADS-B as an aid for sequencing traffic. (Again, without access to the national ATC radar network.)
For folks who need privacy, there are a couple options that already exist - UAT privacy mode or private Mode S addresses. Though notably, both of these are only available options for domestic flight within the US.
Having to coordinate with every ATC jurisdiction along a flight path would be extra work and leave room for errors.
Additionally it wouldn’t work for flights that don’t have a planned route, like a civil aviation pilot who’s just cruising.
It’s akin to having a license plate on your car.
https://www.marinetraffic.com/en/ais/home/centerx:-12.0/cent...
For anyone reading this doing same - you need to fix the ports. FR24 pi image outputs to port 30003. adsb is looking for 30005 and thus fails to find the existing feed
edit it in /etc/default/adsbexchange to align them
In a similar spirit: FR24 should fix their installs and ports.
Install a separate decoder like readsb and drop that FR24 mind control. Then set FR24 craptastic client to read from the decoder if you insist on feeding FR24 ...
is the project I'm most familiar with. If you just want to use the hardware it is a very easy paint by number setup.
https://www.reddit.com/r/stratux
If you are looking for a community.
If you wanted to jump into a GoLang project, this is a really interesting codebase.
I use the same Bluetooth GPS receiver with Avare on an Android tablet in conjunction with a Pi and a pair of antennas. The stock images are more or less fool proof if you pick USB radio receivers that are on the supported list. I had wired a GPS to it too at one point - but had an incident with a model airplane and a lake, so continue to use the external Dual. I've never gotten around to putting it in a one unit case.. basically end up tossing it in the back seat dangling everywhere.
I replaced our Stratus (guess where the project name originated from) with the homemade one. On the recommended hardware, it is solid. I was also able to (usually) make it work on non-certified (if you can call this hand rolled combination certifiable) hardware like the pi zero. Hit and miss with the newer stuff. Need to pick up one of the newer pis to help out with the porting. By far, my biggest issue was making sure the battery pack was charged.
I switched to a Garmin GDL-52 instead. Reliability has since been rock solid. Received signal strength from ground stations are an order of magnitude better.
> Ever wonder what airplane is flying overhead?
Also - not all planes broadcast ADS-B. Also - theres a privacy push to mask a plane's real tail number in ADS-B broadcasts - relevant for private planes (not commercial)
I use it with a cheezy indoor antenna for my rtl-sde dongle. Plenty of range for what I'm doing.
I can also see the high-altitude airliners going to and from JFK.
If you live in the sticks (I don't) flightAware will provide their rPi / receiver / antenna for free, in return for your data feed. I think they're still trying to get more receivers in places like Labrador and Greenland -- definitely fly-over territory.
We haven't done anything with the GPS data yet and probably won't with this generation of FlightFeeders. We're currently in the design phase for a Pi4 based kit with a brand new FlightAware designed SDR. Part of that project includes an Epic for what we're calling "Science Packages" internally. What you suggest fits in with that concept.
Edit: Or maybe support for ATC radio traffic? Again, it probably needs a second SDR, but it would make it much easier for those who are interested than it is now. I would love to be able to just run some daemon and get an audio stream on a local port and maybe an audio player in the web client.
FA / FR24 offering nothing in return but a fake enterprise account, a bunch of gimmicks, basically good marketing to trick fools into proving them 10 of millions of dollars in free data a month.
Suggest looking up https://www.adsbexchange.com/ and talking to them about hardware - that way everyone can make good use of the data instead of FlightAware and Daniel Baker getting rich from a business model based on extortion.
Absurd to me that people brag about hosting FlightAware or FR24 hardware while in reality all they are is getting fucked while FA and FR24 run off with bags of money.
Wiedehopf's readsb is the latest decoder, which is under active development, and designed to pair well with the front-end UI that is also under the most active current development, tar1090.
Installation instructions for readsb: https://github.com/wiedehopf/adsb-scripts/wiki/Automatic-ins...
The world of ADS-B decoders is annoyingly confusing, mostly because people keep forking one executable (while keeping the same name) that does both decoding and web UI instead of creating a decoding library where we could pool our collective efforts at improvement.
Name Last update
---- -----------
dump1090 (antirez) > 7 years ago
dump1090 (mutablity) 6 years ago
dump1090 (adsbexchange's fork of mutability) 4 years ago
dump1090 (adsbexchange's fork of fa) 2 years ago
readsb 4 months
dump1009 (fa) 1 month ago
readsb (wiedehopf dev) 6 days agoTacking on two more software pointers:
- The mikenye collection of docker packages is well maintained, well documented, and a very easy way to get started feeding. Example: https://github.com/mikenye/docker-readsb
- I made a little CLI "gui" to monitor/visualize the SBS1 stream from dump1090 and clones. It was just a little excuse to understand the telemetry/protocol better. Welcome any suggestions or feedback! https://github.com/mik3y/flightmon
Please, call them registrations. The majority of countries don't use numbers in aircraft registrations, and carry them on the fuselage instead of the tail...
Over the radio “registration number” is 6 syllables. “Tail number” is three syllables. And brevity is essential on radio frequencies. However far more common is “call sign” which may or not be the “tail number/registration.” I have flown outside the US frequently, mostly the Caribbean and Latin America, and tail number is extremely common. The ICAO flight plan calls for an Aircraft Identification — which is the technically correct term internationally but I have never heard that in spoken radio communication in any country.
The point is that there is some aviation “slang” that is widely accepted and used. While we can get mired in pedantry, it doesn’t really add to the discussion. I don’t think many people discussing aviation topics are confused about the term “tail number.”
Aircraft that do not broadcast ADS-B have not been airworthy in the US since January 2020.
Aircraft without an electrical system are also exempt from the transponder requirement.
So, the question I wanted to bring up (and might be controversial) is to know what the differences between the two are? Taking a quick look around it does feel like FlightAware has a lot more openness to it than FR24, which is interesting for me, but I am interested in other opinions on this?
I mean, getting the subscription for pushing the data is always a nice bonus, kinda tempted to just push data to both, and have another Pi sitting in my loft!
Personally, I love just being nosey and seeing the flights around my area, but I am just a bit strange like that ;)
Maybe its a sign telling me to go down this rabbit hole!
Thanks ;)
You should feed to ADSBexchange which is a free and open community run network for flight tracking. They don't censor planes for money like FA/FR24/Radarbox/etc do.
I use airplanejs to display the airplanes overhead: https://github.com/watson/airplanejs
There’s a ton of other interesting stuff you can do with the dongle, too. Here’s a great place to start: https://luaradio.io/new-to-sdr.html
You can find it here: https://github.com/shbisson/OverPutney . This version is currently at 33 days uptime on my Piaware set up, and tweeting at @OverPutney.
ex: https://flightaware.com/live/flight/N330AX
Are these planes sending bogus data (like shifted by a tens of miles ?) They are old Archer Hunter planes (apparently) owned by some trust., and two of them seem to have flown very close together.
Some older planes don't have GPS enabled transponders so they can only be accurately pinpointed when interrogated by radar. To get a fix tracking networks will calculate the time the signal arrived at multiple receivers and work out the math to ballpark the location.
It's not surprising that it's owned by a company nor that it flies in formation with similar aircraft.
Flying an airplane like this over water for noise abatement purposes is also common, because they're really loud. The flight path looks like airshow practice.
Their ownership is obscured via the TVPX trust company, but they're really operated by Airborne Tactical Advantage Company (ATAC): https://atacusa.com/
This sort of training happens all the time, and you get used to seeing lots of aircraft circling around over the ocean in southern California.
Edit: Right now in that area I see aircraft from at least two other contractors that do threat simulation for military training, plus an unknown military aircraft. Sometimes you can check the AIS tracking sites and see military ships in the area, too.
https://flightaware.com/adsb/stats/user/vegasbrianc
(from TFA) but it's all just stats. I want to see "Ok, that's an NBC helicopter overhead" or "Oh, that's a flight to Denver overhead")
Or is that only available if you have access to the pi itself?
The key issue is ICAO hex to aircraft mappings, and there you'll need to either do a lookup against (often commercial APIs) or build your own registration database from public data.
We pick up traffic from Sacramento to 1/3 the way down the Baja Peninsula.
Is it even close to being powerful enough?
ADSB uses pulse amplitude modulation, so if you built or bought a downconverter and amplifier, you might be able to pick up the modulation by sending the downconverted/amplified signal to a GPIO pin and reading its state at say 5-10 MHz.
It'd be pretty messy and you'd have to write the demodulator from scratch, but might be able to pickup the frame decoding from one of the other products out there to actually read the content.
Would be a really fun project but not likely to save money and definitely not time.
All the DSP operations are already done by the Raspberry Pi.
http://aaronscher.com/wireless_com_SDR/rtl_sdr_info.html
In the diagram above, it shows “DSP” but that’s just two basic multiplications and a low pass filter. It doesn’t do any heavy lifting.
If you want to get rid of the RTL-SDR, you’d need that analog RF block and the AD converter inside the Pi. That doesn’t make a lot of sense of a general purpose SOC.
https://flightaware.com/adsb/stats/user/vegasbrianc
(from TFA) but it's all just stats. I want to see "Ok, that's an NBC helicopter overhead" or "Oh, that's a flight to Denver overhead")
I don't use the coax connection in my home at all. Meanwhile, there is a coax jack on my roof in case I ever wanted to put a TV there and use actual cable.
I assume it's possible to mount an antenna on my roof and use the existing coax wiring to connect to the dongle FlightAware offers? Has anyone done something similar?
Someone mentioned dit to me today, so I thought I'd stop by. Good post Brian. I haven't actually got mine connected anymore, but still find it fascinating.
US also be like: "let's make it super easy for anyone to tell where every aircraft is"
RTL-SDR stuff is pretty popular, but plugging one into an RPi just doesn't feel like much of an accomplishment on the RPi front.
What would impress me would be two SDRs, one monitoring ADS-B and the other tuned to VHF, pulling down the ATC radio transmissions, recognizing the speech, deducing the tail numbers, and then visually associating them with the ADS-B traces on the map. Now that would be impressive! I've had VHF and ADS-B on my roof for the past few years but never got around to doing the speech parsing.
Since I'm in lockdown I have a lot of time on my hands to break out my soldering iron and more hardware. ;)
Couple other sources:
- Passive radar - Some pretty interesting results in this area https://www.rtl-sdr.com/tag/passive-radar/
- Sound detection/recognition/localization - Could correlate with ADSB to label sounds with known airframes to help train an identification model
- Video detection
Thanks for writing this up and sharing it to HN, vegasbrianc!
- He builds the receiver using hardware he bough/owns/borrowed and software/documentation that he finds on the Internet.
- He documents the process and his rationale/experience.
- He shares that document on his blog
- Someone posts a link to the article on HN
- Sufficient HN readers vote on the link to get it to the front page.
- People comment on it.
- You start typing in the comment box.
- You click submit.