FlightAware Discussions

Got a pi, set up Piaware, MLAT ok. Many without GPS still


Hello. I am somewhat new to this but with the help of CivMil on twitter and some random bits of info from forums I have gotten a merged feed in Virtual Radar Server to show MLAT, which was my primary interest. I wanted to get as much on the map, as a visual, as possible. I have had some more than usual showing up with GPS but several just remain without GPS, even though the FA site says I am synchronised with over 400 other feeders. How is it possible I am seeing multiple long-term flights without GPS every time I keep checking every couple minutes?

Is there something I am doing incorrectly? The status of my feeder on the FA site clearly says MLAT is working and synchronised. My location and elevation are all bang on. There are the odd “MLAT” showing up on VRS even though some are ADSB and a couple were Mode-S. But my assumption would be that with 400+ feeders synced up, that there would be hardly any nearby flights that would remian GPSless.

If anyone could shed some light on this I would appreciate it.


Looking at your stats your reception is not that great.
The more messages you receive the more likely you are included in the MLAT process.

See this post and maybe also the thread around it:
(Not many MLAT for me)


Well I have only had this running for a couple hours or so. But now that I am using a Flight Aware Pro Plus, I am getting a much better range and I am getting messages from the aircraft I am hoping to see on the map. So if I am detecting them, getting messages, why would I not get it’s location when it’s location is known? I checked a test case on ADSB Exchange and the flight was clearly showing up and being tracked via MLAT. My pi was detecting it’s presence and getting it’s messages yet no location. I do not make sense of this.


Maybe this will help, there are on the key “ADS-B, MLAT, Other, TIS-B” Every one that is showing no distance is marked as “Other”. Could this help explain anything? If it’s not ADS-B and it’s not Mode-S (the only things I have ever seen with my prior setup of a good NESDR Smartee and RTL1090 and VRS), then what is this Other and why are they all not showing positions?


Other is Mode-S messages.

But please just read the link i posted above.


I have been looking through that thread. So, if I understand correctly, it’s like Russian Roulette, only instead of blowing your head off, if you get to see the one particular message which was used to coordinate the location, then and only then you (me) get to see the position of the plane?


And additionally to seeing that message it needs to be used by the MLAT servers to calculate the position.
As the MLAT servers don’t use more than 10 receivers or so you could well be receiving every message but still your timing is not used to make the calculation.
So you don’t get the position.
Once your receiver was used once, you get all positions of that plane for 3 minutes.
The roulette continues :wink:


Well I have to say that given what I have read before investing in setting this up, that is not what I expected. I thought it was my dongle/piaware saying “I saw this aircraft!” then everyone else who saw that aircraft gets used to calculate it’s position, then like ADSB Exchange, it is known to the system and we get to see it, only in this case you only see it if it was detected by your dongle.

It seems the way this truly works is pretty much purely insanely good luck. If I am synced to over 400 people, that means I will rarely ever ever ever see an MLAT location because by the time the 430 other people have detected it, I am just a 1 in 10 chance out of 430 people. How can this be? If only the first 10 people who see it, get to see the location, you’re paying to set up a system to give you an extremely small chance of finding their locations. Am I wrong?


The chance is not quite as bad as you make it out to be.
While you might be synced with 400 receivers that does not mean you see the same MLAT planes as 400 receivers.
Especially with lower flying planes this will increase your chances a lot.

I think flightaware knows the system is not perfect, but “verifying” who else saw messages from an MLAT plane to determine who gets the positions is probably prohibitively expensive. As they don’t want to provide you with MLAT positions just based on your location and range you are out of luck.

Anyway you didn’t pay flightaware, you bought hardware to use their system. Quite a difference.
Still i agree a disclaimer mentioning this problem would not hurt.


I would agree with that. So, another question. Is it one magic message per 3 minutes? Or are the messages continually checked and so you can keep trying every second to get that next message that more than 4 other people also saw and then get the location? I guess it would have to keep being checked, else it would be a single blip of where it was at that time, rather than a realtime tracking. So at least am I right in thinking that second by second you have chances to capture a message that was used that second to ascertain it’s location? By that I guess I mean every message it’s sending to FA and when jackpot happens than 4 or more people come together in the presence of the same aircraft… boom position updated and in that second if you were one of the people who saw the same message, you see it? Or you have to be actually part of the 4-10 people who were used to calculate it? (even though you saw it but but were not utilized for the calculation)


Yes you need to be one of the 4-10 people.
So you receive a mode-s message with uknown position. According to some algorithm it is forwarded with timestamp to FA.
Their server picks a message to base multilateration on. It then selects 4-10 receivers it has received messages from to calculate the position.
Those 4-10 receiver will then receive MLAT results for that plane for 3 minutes.
They of course can participate again in the 3 minutes and the timer will reset to 3 minutes.

At least that is my understanding / guesstimation.
The linked post was made by obj who actually works on the serverside MLAT code.
So interpret that post as you want :slight_smile:


This makes sense. And I do like the dongle, clearly it has increased my range by a nice chunk. But if I had have clearly seen this documented, I may not have bought the Pi because my intent was buy the Pi, set it up on there so I can see “all the aircraft that I detect, since there’s an absolutely ton of people in my area, there’s almost no way I can miss anything”. Which clearly is absolutely wrong. Maybe it was in some fineprint somewhere but I doubt it. That is a big point that should be really made well known to people on the “build a piaware” page or something (unless I missed it).

Still, money is spent, I like the Pi and I am happy with the range I am getting, so there’s always that.

Thanks for the help and time answering my queries.


Let me know which dongle and antenna you are on, you might be able to reduce the gain to improve reception close in. (which might be of most interest to you)


I have the blue pro plus dongle. My antenna is a trimmed bargain basement DTV antenna to 69 or 67mm or what ever it is. I have ordered a 15cm cake tin with removable base so I can use the base as a ground plane, as I am currently using a rectangular steel box and I think I am getting lobsided coverage.


The logic on the server side for receiver selection is roughly:

For each aircraft:

  • pick up to 15 receivers randomly from the set of receivers that can currently hear that aircraft
  • ask those receivers to send all Mode S messages they hear for the aircraft
  • re-do the receiver selection process every approx 30 seconds

The server then correlates all the messages that are forwarded to try to find copies of the same message from different receivers that can be used for multilateration. This requires that both (a) the receivers were asked for the aircraft and (b) the receivers are synchronized with each other (which is a separate process)

So if there are a lot of receivers that can hear the aircraft (e.g. it’s at FL390 over western Europe…) it might take a while before yours is picked, and until that happens you aren’t actually forwarding data for multilateration.

We have to limit the number of receivers to use as cost of the correlation process goes up very rapidly as the number of receivers increases, IIRC it was somewhere around O(n^3)

mlat-client will log about what fraction of aircraft it’s actually forwarding data for, see /var/log/piaware.log


I figured it would be a “test enough to get the location” then “pull the lever and ‘pay’ (location data) all the winners who received that same message” or something. is that too costly too? I mean it’s not any extra math to make it even more precise, it’s just giving it to everyone who saw that same message?


We don’t know that it’s the same message until we’ve done the correlation work, which is the expensive bit.

(Many Mode S messages e.g. DF11 are bit-for-bit identical from one transmission to the next)

Also we’d have to request messages from all receivers, not a subset, which has a cost in terms of bandwidth (on both sides) and CPU to process the extra messages. Pretty much everything gets expensive when you scale it up to almost 20k receivers.


Ah I see. Oh well, I have better range from the dongle and I guess MLAT will be the now and then bonus to add to the detections. And you say these calculations are only done once every 30 seconds, so my other theory about every second by second there’s a chance to win the “I got MLATTED” waggon, is false then, since it’s every 30 seconds?


With the advent of the satellite based tracking eventually change the MLAT system somehow? Perhaps if the satellites are triangulating everyone, a simple “saw this hex code” would be enough to return the location to Piaware etc?


The satellites only provide single coverage i would expect. For MLAT you need the area to be covered by 4 satellites which would be well a lot more expensive.
It’s a service for companies who pay, and companies who pay will equip their aircraft to transmit locations.
Most airplanes companies want to track come with ADSB anyway due to new regulations.

Anyway you can check on your signal strength with this file:

Just post the last block starting after local.
Or you can just check for signal / noise, which is given as dB full scale.
Then there is the number of accepted messages and strong signals.
The percentage of strong signals gives you a good hint if you should decresase or increase gain.

If your antenna is suboptimal though most likely the default setting is fine.
Anyway you should consider building a so called quick spider
(QUICK SPIDER - No Soldering, No Connector)
from some coax that comes terminated with an SMA connector, something like this:

Or just get yourself this ebay antenna from hong kong:

That needs not only a cable but also a male to male SMA adapter.

Enough rambling have fun with your ground plane :slight_smile: