Note: New and improved instructions – Sep. 2nd 2016

Due to increasing censorship and restrictions on MLAT data distribution by other flight tracking sites, ADSBexchange is developing it’s own MLAT system.

For now, the service is in beta. I recommend that you only participate if you are comfortable with the command line interface on the Raspberry Pi, and/or you have a backup of your current SD card and feel like a bit of experimentation! Our MLAT implementation is based on obj (mutability)’s “mlat-server” code and has been tested successfully running in parallel with FlightAware’s MLAT client. It operates under a different process name, and does not interfere.

All MLAT participants will receive a back-feed of any aircraft where their data was used in the calculations. Unlike FlightAware, no aircraft will be censored, hidden, removed, or otherwise scrambled. Additionally, there will be no restrictions on your redistribution of the data.

It will take some time for our MLAT network to reach critical mass. In order to perform the calculations necessary to determine an aircraft’s position, we will need at least 3 feeders receiving the aircraft. Additionally, these feeders need to be positioned reasonably far away from each other and preferably not in a straight line.

Even if there are no MLAT feeders in your area, don’t let this keep you from participating. If everyone approached it like that we could not grow the network! Someone in each area needs to be first.  Of course, if you have a group of friends in a similar geographic area and can get everyone participating, that would help. You guys in the UK should have the entire country covered in no time flat!

For right now, we have only a single MLAT “process” running on the server, which will max out at around 70-80 feeders or so. Once we hit that, we will add additional MLAT “processes” in order to accommodate more participants. Likely we will need to “group” feeders by geographic area, but that will be down the line. Synchronization stats between all the stations are currently available here: more details will be available once we get further along with testing and development. A current map of participating stations is available here:

Anyhow, should you wish to participate, the following steps have been tested on a fresh PiAware 3.0.4 image install.  It will likely work on other OSes as well.  Additionally, if you’re looking for a complete software package to feed FlightAware, FR24, ADSBexchange, PlaneFinder, etc. all with nice graphs, check out

Warning – if you are running 360radar based in the UK, you do not want to re-install the mlat-client as it seems to cause problems. In this case, just setup a script to run a command like this on startup:

mlat-client --input-type dump1090 --input-connect localhost:30005 --lat xx.xxxxx --lon xx.xxxxx --alt xxx.x --user PUTRECEIVERNAMEHERE --server --no-udp --results beast,connect,localhost:30104

Without further ado, here are the steps.

  • If you have not already done so, expand the filesystem to fill the entire card using “sudo raspi-config” (then option 1, finish, reboot).


  • You will need to know your lat/lon coordinates and altitude (above sea level) in meters. If you’re already running piAware and have FlightAware MLAT setup, one way to find your lat/lon coordinates is to execute “ps -eaf | grep dump1090-fa” which will show you a string containing your FA configured lat and lon coords. Another option is to use google earth, or We will want the numbers in decimal format, for example 12.12345, or -12.12345 (5 places after the decimal is one-meter accuracy – more than enough).


  • You will also need to know the elevation of your antenna in meters. The number the script fills in by default is the height in meters above sea level the ground is in your location, that elevation figure (no need for decimals) is probably accurate enough, but if you want, you can add the height of your antenna above the ground in meters.  If you have your antenna on a high tower, this becomes more important!


  • Finally, you will need to know your username on If you don’t have one, register here: (note this is not absolutely required, but will help if we need to get in touch with you about your feed).  If you have more than one receiver, you will need to ensure this field is unique, such as “username-01”, “username-02”, etc.  This is the label that will be used on the coverage map to show your station.


  • With this information in hand, follow the instructions here:

Give it a couple minutes, and see if you are syncing with nearby stations here: .  See where other feeders are here:  Any MLAT results we calculate with your data are fed back into your pi on port 30104 (the same place piAware sends them by default).  You can change this by editing the file.

Comments, questions, suggestions? Please ask in the forums, or report an issue with the install here.