The ADS-B signals that many aircraft broadcast include not just the aircraft's GPS positions, but also a measure of GPS accuracy (strictly speaking, ADS-B doesn't talk about GPS specifically and can handle any sort of navigation technology; I'm sure there are some planes out there reporting positions based on inertial navigation systems, with correspondingly low accuracy, or GLONASS-derived positions, or whatever, but my understanding is that right now something on the order of 99% of aircraft with ADS-B are using good old GPS so I'll just keep using the term GPS in this description). If you go to https://globe.adsbexchange.com and click on just about any aircraft, you'll see an info sidebar on the left of the screen. Scroll down until you see the ACCURACY section, and you'll see values labeled NACp, SIL, NACv, NICbaro, and Rc. Those are all self-reported measures of the accuracy of the data being sent by the aircraft[1]. NACp is "Navigation Accuracy Category for position", and is a good measure of whether the aircraft's GPS is working well. (A somewhat obscure feature of ADS-B Exchange lets you see a map of all aircraft that are currently reporting poor navigation accuracy for their GPS: https://globe.adsbexchange.com/?badgps)
To make the maps, I process a day's worth of data from ADS-B Exchange to find all the aircraft reporting poor navigation accuracy and then I color map hexes (using H3 hexes) according to the proportion of aircraft passing through that hex that reported bad GPS accuracy. Specifically, I'm counting an aircraft as experiencing "interference" if it at some point reported good navigation accuracy and then reported low accuracy. Doing this helps filter out aircraft that just have an ongoing issue with their GPS equipment, or don't even have GPS.
When I do that, areas where there is systematic interference—almost always jamming by military systems—become obvious. There are a few conflict zones (Syria, Cyprus, Israel) that have been experiencing jamming for years, and the U.S. often has smaller scale military testing, especially in the West and Southwest. You can also see the jammers that are apparently setup around Moscow to prevent drones from flying near Oligarch dachas[2].
I started making these maps in February before Russia invaded Ukraine because I thought it might provide an early warning of an invasion. I didn't see that, and in fact this technique doesn't do a very good job of mapping GPS jamming around the actual war zones because civil aviation stopped over Ukraine, so there are zero or few aircraft with ADS-B reporting their GPS accuracy[3]. Without that data, I can't make a map.
Sometimes I do see changes, like when Russia suddenly started jamming around Kaliningrad in March 2022, causing interference in many Baltic states and leading to Finland to cancel some flights[4]. Then a few days later, they just stopped.
I don't think too many people have realized yet what an amazing source of GPS interference data is available using ADS-B! It's like having thousands of sensors roaming the planet, broadcasting GPS accuracy data every few seconds. I sometimes wonder if I would disrupt someone's nascent business model if I started publishing my maps regularly.
Most of the red zone around Moscow is situated on east and northeast, whereas "oligarch dachas" are mostly located directly west of Moscow (that hexagon is also red).
Having said that, of course GPS/GLONASS in the form of consumer phone-based navigation works just OK in Moscow. There is sometimes visible interference near the Kremlin though (your phone might suddently think it's in VKO).
Virtually all of the oligarch dachas are actually to the west of Moscow; Wikimapia shows though that there are some military areas such as firing ranges and artillery ammo dumps to the east.
I noticed that the map is perhaps the one that moves more smoothly on my browser (Firefox Android), included the browser version of Google maps. Well done but how did you do it?
On the other side I couldn't use the history button to come back to HN after visiting the site: too many URLs pushed into history. As a very low priority activity, is there a way to keep the URL constant and generate one only if someone wants to share a screen?
Amazing work, but just some feedback, I'm running Opera 70.3 on an Android phone, and navigating the map filled my navigation history with a large amount of links to a given lat/long, I'm guessing they referred to where I touched while rotating or zooming in.
Anyway, edge case browser and all, but thought I'd raise it in case it's an issue.
the european plate observing system has a subservice that distribute GPS data from GPS stations, including some ukrainian ones https://gnssdata-epos.oca.eu
I don't know if they are usable for your idea though
I'm around there and my boat plotter (~2005 device) was going berserk in June! Will have to ask other boaters if they had similar experience?
Also, how does ADS-B exchange get coverage around antarctic (i.e. Durban to Australia flights)? I thought they rely on RTL-SDR's sprinkled around the land? I know Iridium monitors ADS-B and AIS from space, but at this point they can also monitor jammed signals itself?
Meatsock my old buddy! Nope, no one has complained to me yet.
Back before I made this site, when I was publishing my maps on twitter, on-demand, I did get DMs like "I'm Ukrainian. Could you make maps for [range of dates] for [region]?" and I had to think through the ethics. Was I OK publishing information that could not-inconceivably get someone killed in a war zone? Was that person really Ukrainian? Did it matter?
I decided that this information is being broadcast for anyone to easily receive, and also that it is self-censoring in a way: aircraft generally don't fly with ADS-B in a war zone, so I don't have data for hot war zones. (But I'm open to revisiting if someone has a different perspective.)
A quick update on some of the infrastructure behind the map: One day of being on the front page of HN has used up half of the Mapbox free quota of map loads. To sustain this level of traffic would cost me something like $2000/month just for Mapbox. Since this is a non-profit project that I do in my spare time, something is going to have to give.
Since you don't actually need very detailed maps -- the hexagons are large, zooming in is pointless -- and your dynamic data is a simple overlay, I think you should be able to use static tiles generated just once. And you should be able to generate the tiles from free OpenStreetMap data, the country outlines & major cities there are plenty good enough for this use, even globally.
Yes, I know it's not as simple to throw together as just using Mapbox.
This is fascinating. Really cool to see a map of GPS signals on Earth and the site looks really good, too. Love the colors and interface! Awesome :)
Can anyone narrate any of the jammed signals? Like for instance what would be jamming in the ocean between Tripoli and Benghazi? Or what would be jamming around San Antonio, TX?
I know the stories behind some of the regions, or at least some hypotheses.
Interference in the U.S. is almost always the result of military testing or training. If you check against another map (Google maps, or skyvector.com/globe.adsbexchange.com to see sectional charts) you'll see that the interference region is usually centered on or close to a military base or Military Operations Area. There are often FAA notices to pilots about potential GPS outages in those areas.
Around Syria, C4ADS did some research a few years back identifying Russia as the main culprit; I think the conclusion was that Russia is jamming GPS to defend their bases from drone attack. https://www.c4reports.org/aboveusonlystars
In the Baltic, the assumption seems to be that it's usually Russian military.
I wish someone more knowledgeable about what's going on in other regions with interference would write about them! I just don't have the time and expertise do dig into all of them.
There's currently a red area around Mexico City. I googled "gps jamming mexico city" and found a couple of interesting links. There are reports from pilots about GPS issues at the airport going back years [0], and a recent news article claiming that car thieves are using jammers to prevent detection [1].
It's not immediately obvious to me that a jammer employed on the surface will affect planes going overhead at 30,000 feet. Such consumer GPS jammer products will probably have better customer satisfaction if their range is less than several miles.
I zoomed in on a red spot in the US and was surprised to see the city name "Uvalde" pop up. Not quite in the center of the spot, but any thoughts on if it might be related to the reason that a European like me knows that name?
From what I've read in the newspapers, Uvalde is the home of a big Customs and Border Peotection headquarters, which is a federal sorta-military operation. That's why so many CBP officers responded to the school shooting.
Speculation on my part, but it coincides with the fact that most jamming in the U.S. is near military facilities.
There was a spot I stood on in Japan probably 20 years ago that made my (handheld Garmin) GPS think I was traveling at something like 700mph at some angle across the globe. Once I left the area by maybe 10 feet, everything returned to normal. Went back to the spot, same thing. Always wondered what caused that.
The "travelling" part sounds like it could be an artifact of your GPS receiver interpolating between two vastly different location points, and interpreting that as moving between them -- at impossible speed/angle. So a single wildly wrong location could be enough to cause this.
Id be fairly confident that they would. They also are encoded so that receivers that literally have no idea where they are can train on the received stream. Also don't forget that the receiver needs to hear signal from at least 3 or 4 satellites to be able to triangulate their position and altitude.
The wikipedia page has some info, looks like various CRC and parity checks. Maybe the receiver was just ignoring them, and receiving faulty data.
I dunno, it seems to me like that GPS receiver had fairly bad software. If you get packets from a bunch of different satellites but one is way off, it seems like good sense to throw that one away.
I have the same experience with a handheld garmin from like 20 years ago. This was in Finland while boating, the gps suddenly decided we were going around 700mph heading north north west. It lasted for around 30min or so before it returned us to where we were. I remember using a Garmin GPS 45.
Was it in a big city? Because parts of Japan are so vertical, they have a lot of trouble with urban canyons and multipath from signals getting reflected off of buildings (which is why they built the high-elevation QZSS mini-constellation to augment GPS)
How difficult is it to build a CRPA receiver? Apparently that’s how the military avoids GPS jamming, and likely why HIMARS is able to remain accurate in the face of Russian jamming (or INS).
Transmit a strong signal on the main GPS frequency (1575.42 MHz). Receivers get saturated and can't hear the real signal.
Medium Jamming:
Transmit the signal that a receiver would receive at a specific location loudly. GPS receivers will lock onto that signal, and report they are at the location you choose, rather than the real location they're at.
Advanced Jamming:
Pick a target, such as a VIP plane. Calculate the aggregate GPS signal that that plane is receiving right now from all the GPS satellites. Now start transmitting that same signal towards your target (you'll have to transmit ahead of time due to the speed of light delay, but that isn't an issue because GPS signals are fully predictable). Now gradually modify the signal to make the target think they're moving off their desired course, and to make them make corrections. Watch them in realtime, and adjust the signal so they correct in the direction you choose.
This is how Iran stole a drone[1].
Military GPS is encrypted (ie. XORed with a crypto-stream), which makes the signal not predictable ahead of time, which makes the advanced attack impossible. The basic and medium attacks are still possible though.
It is alleged that the RQ-170 was expressly designed for risky operations (where loosing it eventually is likely, and retrieval/destruction may not be possible) and so was created without sensitive technology.
The crypto for US military GPS uses the same keys worldwide, and rotated ~ weekly. That means if you capture any device which has the crypto keys, then you can spoof military GPS for the rest of the week, allowing you to do lots more damage.
Therefore, the military often doesn't even use the keys in their own devices.
The format of GPS civilian signal is public and you could just spoof it with any transmitter like a HackRF SDR box. There’s no cryptographic signature to verify or anything. The military code has had cryptographic anti-spoofing from the earliest days.
Or you could just send any super strong signal on the frequency to cover the satellite signal up. That can also work.
Thank you for giving us a new way to discover impeding military conflicts. I'm surprised how you have found a way to creatively reuse the existing data.
> In Europe, Poland, Romania, Lithuania, Latvia, Kaliningrad, and Finland sometimes show presumed jamming activity, depending on how active Russia is.
The wording here is confusing, it seems to imply that Kaliningrad is a country, which it is not (it's a Russian exclave, as the author mentions in one of the HN comments).
Would it sound similar like saying hurricane about to hit Cuba, Florida and Dominican Republic. This does not imply that Florida is a country is just more precise location definition than saying USA. Same here with Kaliningrad as part of Russia.
The more satellites in sight you have access to, the cooler stuff you can do with GPS. Minimum to establish 2D (on globe projection 2D) location is 3 sats, minimum for altitude is 4 sats. There are mathematical simulations you can do to see if, and when, a given aircraft will have access to 4 sats (or more), called RAIM: https://www.mygdc.com/new/static/usermanuals/web_help/RAIM_P...
Now, things get even better if you use 4+ sats, or sats from different constellations (I am not sure how mature is cross-constellation data validation, however, so let's pretend 1 constellation for now). With 5 sats, the receiver can calculate the position even more precisely, determine the level of URE, etc. You can even detect that one source is unreliable, and discard it (effectively falling back to 4 sats). With even more sats you can (theoretically) do cool data analysis, where you can determine those factors even more precisely.
Now, add the inertial factors. Many passenger have either in-software (history of previous positions) or in-hardware (think accelerometers, magnetometers) inertial data sources. A sophisticated flight management software (FMS) can cross-corelate the inertial data with GNSS data and determine when the latter becomes unreliable.
All of those measurements and factors can subsequently be reported via ADS-B or ACARS, to help with fleet management, and general predictive maintenance. While aviation technology might sometimes look way out of date at a first glance, the modern airplanes have some really cool technology hiding in it.
Friend of mine is doing ocean bottom surveys. He uses pretty decent GPS receiver, but also gets real-time (or applies it later) "correction" data from ground based stations that calculate error caused by atmosphere, which gets him down to 1cm accuracy.
This is trying to measure ionosphere disturbances which affect signal propagation rates via ground reference stations. The real-time model is then calculated and distributed using ground stations and geostationary satellites.
GPS is way, way cool, and it's a pity the extent of its engineering is not better known.
I'm using data reported by aircraft equipped with ADS-B. Those aircraft broadcast their positions, and they include information about how much uncertainty they think is in their position estimate. When an aircraft that has been reporting low position uncertainty (< 1 nautical mile) starts reporting high uncertainty (> 4 nautical miles), it seems to correlate well with known areas of GPS interference, so that's what I use to make the map.
Perhaps they are jamming GPS and Galileo in favor of Glonass. They are certainly concerned about US GPS-powered artillery like the HIMARS given to Ukraine. They’d need fairly precise jammers because the frequencies are only 50MHz apart (GLONASS uses a frequency of 1.602 GHz, whereas GPS uses 1.57542 GHz).
You are underestimating how vast Russia (and Ukraine) are.
Moscow is out of reach even for the longest range (300km) HIMARS missiles which are not supplied to the Ukraine.
GPS jamming protects Russia's command and control structures from American intermediate range cruise missiles that can be launched from Mk41 launchers in Romania and Poland as well as from American ships.
> GPS jamming protects Russia's command and control structures from American intermediate range cruise missiles that can be launched from Mk41 launchers in Romania and Poland
I don't think Mk41 are operating in these two countries.[0] They do have Aegis Ashore [1] though which is an anti-ballistic defense system. AA uses SM-3 missiles that in theory could reach Moscow though.
Copying a comment I made on HN a few weeks ago:
The ADS-B signals that many aircraft broadcast include not just the aircraft's GPS positions, but also a measure of GPS accuracy (strictly speaking, ADS-B doesn't talk about GPS specifically and can handle any sort of navigation technology; I'm sure there are some planes out there reporting positions based on inertial navigation systems, with correspondingly low accuracy, or GLONASS-derived positions, or whatever, but my understanding is that right now something on the order of 99% of aircraft with ADS-B are using good old GPS so I'll just keep using the term GPS in this description). If you go to https://globe.adsbexchange.com and click on just about any aircraft, you'll see an info sidebar on the left of the screen. Scroll down until you see the ACCURACY section, and you'll see values labeled NACp, SIL, NACv, NICbaro, and Rc. Those are all self-reported measures of the accuracy of the data being sent by the aircraft[1]. NACp is "Navigation Accuracy Category for position", and is a good measure of whether the aircraft's GPS is working well. (A somewhat obscure feature of ADS-B Exchange lets you see a map of all aircraft that are currently reporting poor navigation accuracy for their GPS: https://globe.adsbexchange.com/?badgps)
To make the maps, I process a day's worth of data from ADS-B Exchange to find all the aircraft reporting poor navigation accuracy and then I color map hexes (using H3 hexes) according to the proportion of aircraft passing through that hex that reported bad GPS accuracy. Specifically, I'm counting an aircraft as experiencing "interference" if it at some point reported good navigation accuracy and then reported low accuracy. Doing this helps filter out aircraft that just have an ongoing issue with their GPS equipment, or don't even have GPS.
When I do that, areas where there is systematic interference—almost always jamming by military systems—become obvious. There are a few conflict zones (Syria, Cyprus, Israel) that have been experiencing jamming for years, and the U.S. often has smaller scale military testing, especially in the West and Southwest. You can also see the jammers that are apparently setup around Moscow to prevent drones from flying near Oligarch dachas[2].
I started making these maps in February before Russia invaded Ukraine because I thought it might provide an early warning of an invasion. I didn't see that, and in fact this technique doesn't do a very good job of mapping GPS jamming around the actual war zones because civil aviation stopped over Ukraine, so there are zero or few aircraft with ADS-B reporting their GPS accuracy[3]. Without that data, I can't make a map.
Sometimes I do see changes, like when Russia suddenly started jamming around Kaliningrad in March 2022, causing interference in many Baltic states and leading to Finland to cancel some flights[4]. Then a few days later, they just stopped.
I don't think too many people have realized yet what an amazing source of GPS interference data is available using ADS-B! It's like having thousands of sensors roaming the planet, broadcasting GPS accuracy data every few seconds. I sometimes wonder if I would disrupt someone's nascent business model if I started publishing my maps regularly.
1. https://twitter.com/lemonodor/status/1493789598077440000 2. https://www.gpsworld.com/jammers-at-dachas-add-to-russias-ab... 3. https://twitter.com/lemonodor/status/1497295859196649475 4. https://twitter.com/lemonodor/status/1500719113185816577