Feeding ADS-B Exchange and community networks: adsb.fi, adsb.lol, airplanes.live

Your receiver is already running – now the data should land on the unfiltered maps too. Here is how to connect ADS-B Exchange, adsb.fi, adsb.lol and airplanes.live in parallel, set up MLAT and check that everything arrives.

Planetrack editorial teamPublished: October 15, 202613 min read

Key takeaways

  • Decoder first, then feeder: The feed scripts of all four networks require a running decoder such as readsb or dump1090-fa. They tap its Beast data stream and forward it.
  • One receiver, many networks: Each script installs its own services side by side. Existing feeders for FlightAware or Flightradar24 keep running unchanged.
  • Give position and height exactly: Without precise coordinates and antenna height above sea level, your station cannot take part in multilateration in any meaningful way.
  • Two ports reveal the status: For adsb.fi and airplanes.live, according to the guides, the data runs over port 30004 and MLAT over port 31090. An established connection on both ports means: you are feeding. adsb.lol shows the status on its home page.
  • Each service has two systemd services: one for the data stream, one for MLAT. You always control status, restart and logs with the same pattern.
Contents
  1. 1.The short answer
  2. 2.Why several networks at once?
  3. 3.Preparation: what your system needs
  4. 4.Connecting ADS-B Exchange
  5. 5.Connecting adsb.fi, adsb.lol and airplanes.live
  6. 6.Setting up MLAT properly
  7. 7.Checking the feed: is everything running?
  8. 8.Typical mistakes and their fixes
  9. 9.The alternatives: image or Docker
  10. 10.Privacy and law
  11. 11.What you get out of it
  12. 12.Conclusion

The antenna is up, the Raspberry Pi is running, and the first aircraft are moving across the screen on your local map. Now comes the step that turns a private receiver into a building block of worldwide flight tracking: feeding ADS-B Exchange and the community networks adsb.fi, adsb.lol and airplanes.live. These four services in particular are exciting for spotters because, as a rule, they do not specifically hide military, government and business flights. This guide shows you how the connection works, how to set up MLAT properly and how to check that your data really arrives.

From receiver straight to sighting

With Planetrack you log every sighting with photo, registration, type, airline and spot – and sighting alerts tell you when a watched registration is on approach. Planetrack is launching soon – join the waitlist and get early access.

Download Planetrack on the App Store Get Planetrack on Google Play

The short answer

You feed ADS-B Exchange and the community networks by downloading one installation script per network on the computer with your decoder and running it with root privileges. The script asks for location, antenna height and a station name, sets up two system services – one for the position data, one for MLAT – and connects them to the network’s servers. Because each network uses its own services, you can run all four in parallel without touching existing feeders for FlightAware or Flightradar24.

The prerequisite is a working receiver. If you do not have one yet, start with Build your own ADS-B receiver and install the decoder following the guide Installing readsb and tar1090. What ADS-B Exchange can do as a map is explained in ADS-B Exchange explained.

4Networks you can supply in parallel with a single antenna
30004Port for the Beast data stream on adsb.fi and airplanes.live
31090Port for the MLAT connection of the same networks

Why several networks at once?

The four services share a history. ADS-B Exchange started in 2016 as a hobby project and has belonged to the aviation data provider JETNET since January 2023. After the sale, community maps such as adsb.fi, adsb.lol and airplanes.live grew, built on the same open-source technology: readsb as decoder and data collector, mlat-client for multilateration and tar1090 as the map interface. Anyone at home on one of these maps finds their way around all of them. A detailed comparison of the maps is provided by Unfiltered community trackers compared.

For you as a feeder this has two practical consequences. First, each additional network costs hardly any resources, because all of them tap the same data stream from your decoder. Second, every additional station improves the MLAT coverage of the respective network. Military aircraft that transmit only Mode S without a position of their own, in particular, show up only when several receivers hear the same signal. How that works is explained in MLAT/multilateration.

Network Installation script Configuration file Services Check status
ADS-B Exchange adsbexchange.com/feed.sh /etc/default/adsbexchange adsbexchange-feed, adsbexchange-mlat adsbexchange.com/myip
adsb.fi adsb.fi/feed.sh /etc/default/adsbfi adsbfi-feed, adsbfi-mlat Connections on 30004/31090
adsb.lol adsb.lol/feed.sh /etc/default/adsblol adsblol-feed, adsblol-mlat adsb.lol home page
airplanes.live install.sh in the GitHub repo airplanes-live/feed /etc/default/airplanes airplanes-feed, airplanes-mlat Connections on 30004/31090

The details come from the projects’ guides as of October 2026. Script addresses can change, so before installing it is worth a look at the respective network’s official page.

Preparation: what your system needs

Before you start a script, three things should be in place.

  • A running decoder. adsb.fi and airplanes.live require a separately installed decoder such as readsb, adsb.lol is aimed at existing receivers, and ADS-B Exchange names receivers with readsb, dump1090 or PiAware as the starting point. The decoder must provide its data stream in Beast format, by default on port 30005. If you already run PiAware, dump1090-fa is already there – see Setting up PiAware.
  • Exact coordinates and height. All guides begin with this step. You need your antenna’s latitude and longitude with several decimal places as well as the height above sea level, ideally ground elevation plus mounting height. The projects point to online elevation finders for this.
  • Internet and SSH access. The scripts download software from the network. You work in the Pi’s terminal, directly or via SSH.

Don’t estimate the height

For multilateration every meter counts. An antenna mast on the roof of a three-story house easily sits ten meters above ground elevation. Enter the actual antenna height, not just the elevation of your hometown.

A word on security: all four networks distribute their installation as a shell script that you run with sudo. So download it only from the official project page or the official GitHub repository and take a look inside before starting. The “download first, then run” pattern in the guides gives you exactly that opportunity.

Connecting ADS-B Exchange

For ADS-B Exchange you download the feed script into a temporary directory and start it:

curl -L -o /tmp/axfeed.sh https://adsbexchange.com/feed.sh
sudo bash /tmp/axfeed.sh

The script asks you for the details on location, height and name and sets up the services adsbexchange-feed and adsbexchange-mlat. According to the project, existing feed clients are left untouched. Afterward, from your home network, you open adsbexchange.com/myip. The page detects from your public IP address whether an ADS-B and an MLAT feed are arriving. Whether your station shows up in the MLAT network you can also see on ADS-B Exchange’s MLAT map.

Two optional additions are interesting for spotters:

  • Stats package: It installs an online map that shows only the aircraft your own antenna receives. The address for it is then printed by the command adsbexchange-showurl.
  • Local interface: An extra script under /usr/local/share/adsbexchange/git/ sets up a tar1090 map on your home network, reachable at your Pi’s IP with the path /adsbx.

If you later want to update only the software without re-entering the configuration, use the separate update script feed-update.sh from the same address. For changes to location or name, you simply run the installation again.

Connecting adsb.fi, adsb.lol and airplanes.live

The three community networks follow the same pattern; the scripts are closely related. For adsb.fi:

curl -L -o /tmp/feed.sh https://adsb.fi/feed.sh
sudo bash /tmp/feed.sh

For adsb.lol:

curl -L -o /tmp/lol-feed.sh https://adsb.lol/feed.sh
sudo bash /tmp/lol-feed.sh

For airplanes.live:

curl -L -o /tmp/feed.sh https://raw.githubusercontent.com/airplanes-live/feed/main/install.sh
sudo bash /tmp/feed.sh

Each script stores its configuration under /etc/default/ and starts a pair of services following the pattern <network>-feed and <network>-mlat. In adsb.fi’s configuration file you can see, for example, where the data comes from: the INPUT entry points by default to 127.0.0.1:30005, i.e. the decoder’s Beast output on the same device. If your decoder runs on another computer on the network, you enter its IP address there and restart both services.

1. Check the decoder

Open your local tar1090 or SkyAware map. If you see aircraft, the decoder is delivering data.

2. Note coordinates and height

Have latitude, longitude and antenna height above sea level ready – the script asks for them.

3. Download and look at the script

Download it to /tmp with curl, skim it briefly, then run it with sudo bash.

4. Answer the questions

Enter location, height and an MLAT name. Depending on the network, the name appears publicly, so choose it accordingly.

5. Check the connection

Check service status and ports; for ADS-B Exchange also open the myip page.

6. Next network

Repeat the steps for every further network. The services run side by side.

For adsb.fi and airplanes.live there is also an optional local map interface, which the script install-or-update-interface.sh sets up under /usr/local/share/<network>/git/. For airplanes.live you reach it, for example, at your Pi’s IP with the path /airplanes.

Spotted a rarity on the map?

With Planetrack you set up sighting alerts for registrations, types, airlines and special liveries and find out when they are on approach or landing. Planetrack is launching soon – join the waitlist and get early access.

Download Planetrack on the App Store Get Planetrack on Google Play

Setting up MLAT properly

The position data from ADS-B comes straight from the aircraft. For MLAT, by contrast, your station itself is a measuring instrument: the server compares when the same signal arrives at several receivers and calculates the position from that. MLAT therefore depends on your station’s master data.

  • Coordinates: Wrong decimal places shift your station computationally by hundreds of meters. The server notices and can discard your measurements.
  • Height: It enters the calculation just like latitude and longitude.
  • Clock and synchronization: The timestamps come from the decoder. Stable reception without overloading the Pi helps synchronization with neighboring stations.

One detail concerns the MLAT results: the scripts can feed the calculated positions back to your decoder so they also appear on your local map. In the configuration the RESULTS entry controls this, delivering to 127.0.0.1:30104 by default. If you feed several networks, it can make sense to leave the feedback active for only one network, so your map does not mix duplicate positions from different sources. ADS-B Exchange documents its own commands for switching this off and on.

Important: MLAT only works where several stations hear the same aircraft. In sparsely populated areas your station can be set up perfectly and still deliver hardly any MLAT positions. The more networks you supply, the greater the chance that at least one has enough neighbors within range.

Checking the feed: is everything running?

After installation you check each service by the same pattern. First the status:

sudo systemctl status adsbfi-feed
sudo systemctl status adsbfi-mlat

Both services should appear as active and running. For adsb.fi and airplanes.live you then check the network connections:

netstat -t -n | grep -E '30004|31090'

The result should show connections in the ESTABLISHED state to the servers – one on port 30004 for the data and one on 31090 for MLAT. For ADS-B Exchange a look at adsbexchange.com/myip is enough; for adsb.lol the home page shows whether you are recognized as a feeder.

How well your receiver works overall you do not see on the feed services but on the decoder. For range, message rate and signal strength, Measuring reception performance with graphs1090 is worthwhile.

Typical mistakes and their fixes

Symptom Probable cause Fix
Service starts, but no connection on port 30004 Decoder delivers no Beast stream on 30005 Check the decoder, check the INPUT entry in /etc/default/<network>
myip page shows no feed Query from another network or via VPN Open the page from the same home network without VPN
MLAT service runs, but no synchronization Wrong coordinates or height, too few neighboring stations Correct the master data, run the script again
Duplicate aircraft on the local map MLAT results fed back from several networks Empty RESULTS on all networks except one
Services missing after a system update Installation incomplete or damaged Run the network’s update script or reinstall

If that does not help, you read the logs. For support requests the projects ask for the last lines of both services after a restart:

sudo journalctl -u adsbfi-feed --no-pager
sudo journalctl -u adsbfi-mlat --no-pager

For the other networks you replace adsbfi with adsbexchange, adsblol or airplanes. You can restart any service with sudo systemctl restart, and display the current configuration with cat /etc/default/<network>.

Don’t write into configurations at random

The files under /etc/default/ are generated by the scripts. Minor adjustments such as the input source are intended; for everything else, you are better off running the installation script again. That keeps the configuration consistent with what the projects expect.

The alternatives: image or Docker

Individual scripts are ideal when you want to extend an existing receiver. If you start fresh, there are more convenient ways.

Individual scripts if …

  • your Pi is already running, for example with PiAware or readsb
  • you want to add one or two networks specifically
  • you like working in the terminal

Ready-made image if …

  • you are setting up a new Pi or single-board computer just for feeding
  • you prefer to select networks with a checkbox in the browser
  • you want to worry about updates as little as possible

Docker if …

  • the computer carries other services too
  • you are familiar with containers
  • you want to manage many networks centrally

ADSB.im is a ready-made feeder image for single-board computers that adsb.lol recommends in its documentation for new stations on dedicated hardware. After flashing, you open the address adsb-feeder.local in the browser, enter name, location and time zone and then select the networks you want to supply. airplanes.live also offers its own image for the Raspberry Pi that bundles decoder, MLAT client, map and statistics.

For Docker users there is the widely used Ultrafeeder container from sdr-enthusiasts, and adsb.lol also documents a Docker route for technically experienced users. How to run many networks at the same time with it is shown in Feeding multiple networks at once with Ultrafeeder. Which feeder programs exist besides the ones described here is summarized in ADS-B feeder programs compared.

Privacy and law

Anyone who feeds passes on data, and that includes your location. The networks need your exact coordinates for MLAT, but display your station in varying detail depending on the service. Read the privacy and license notes before installing. adsb.lol, for example, states in its terms that you waive copyright and related rights in the data you supply under CC0, and says it collects no personal data apart from briefly stored log files.

Whether receiving and passing on the data is allowed in your country is a separate question. An overview for Germany, Austria and Switzerland is given in Receiving ADS-B data: the legal situation.

What you get out of it

The community networks are not an exchange with premium subscriptions like the commercial services, but feeding is still worth it. You improve coverage around where you live, often exactly where you spot yourself, for example at the Munich Airport visitors’ hill or the Teveren spotters’ hill near Geilenkirchen. With ADS-B Exchange you get, through the stats package, a map of only your own receptions. What the commercial and community services offer in return, one by one, is compared in What feeders get in return.

For practice at the fence what counts most is: the denser the network, the more reliably military aircraft on the map and business jets that are missing on other services appear.

Is your feeder set up cleanly?

Check off what you have done – at the end you will see whether your station runs smoothly.

  • My decoder delivers data, the local map shows aircraft.
  • I entered coordinates and antenna height exactly.
  • Feed and MLAT services run for every network.
  • I see connections on port 30004 and 31090, or a hit on the myip page.
  • MLAT results are fed back to my decoder from only one network.
  • I have read the networks’ privacy and license notes.

Data becomes sightings

Post your sightings with photo, registration and airport in Planetrack, collect them in the hangar with a wish list and exchange ideas with the community. Planetrack is launching soon – join the waitlist and get early access.

Download Planetrack on the App Store Get Planetrack on Google Play

Conclusion

Feeding ADS-B Exchange, adsb.fi, adsb.lol and airplanes.live is not rocket science once your decoder is running. One script per network, a few details on location and height, two new services – and your antenna contributes to several unfiltered maps. The master data deserves the most care, because MLAT depends on it. For checking, service status, ports and logs are enough. Anyone new to this saves the individual steps with a feeder image.

In short

First get the decoder running, then run the official script per network, enter coordinates and antenna height exactly and check the feed via service status, ports 30004/31090 or the myip page. All four networks run in parallel without problems.

Summary

  • ADS-B Exchange, adsb.fi, adsb.lol and airplanes.live collect data from volunteers and show it on tar1090-based maps without targeted filtering.
  • For all four services the connection runs through a shell script that you download and run with root privileges. It asks for location, height and station name and sets up two services.
  • Anyone starting fresh can use a ready-made feeder image such as ADSB.im instead of individual scripts, where you tick the networks in a web interface.
  • For problems, almost always the same three steps help: check service status, check connections or feeder status, read logs.

Frequently asked questions

Do I need my own receiver for ADS-B Exchange?

Yes. Feeding means passing on data from your own receiver. You need a computer such as a Raspberry Pi, an SDR stick, a 1090 MHz antenna and a decoder such as readsb or dump1090-fa. Only once this decoder receives aircraft is it worth installing the feed scripts.

Can I feed several networks at the same time?

Yes. The scripts from ADS-B Exchange, adsb.fi, adsb.lol and airplanes.live each install their own services that access the decoder’s data stream in parallel. According to the project pages they do not interfere with existing feeders. Many spotters therefore supply FlightAware, Flightradar24 and several community networks with the same antenna.

How do I check that my feed reaches ADS-B Exchange?

From your home network, open the page adsbexchange.com/myip. Based on your public IP address it detects whether an ADS-B and an MLAT feed are arriving. On the Pi itself, sudo systemctl status adsbexchange-feed and sudo systemctl status adsbexchange-mlat show whether the services are running.

How do I check the feed on adsb.fi, adsb.lol and airplanes.live?

For adsb.fi and airplanes.live the quickest way is via the network connections: netstat -t -n | grep -E '30004|31090' must show connections in the ESTABLISHED state to the respective server. For adsb.lol, the home page adsb.lol shows whether you are recognized as a feeder.

Where do I find the feeders’ configuration?

Each script creates its own file under /etc/default/: adsbexchange, adsbfi, adsblol or airplanes. It contains, among other things, the decoder’s input source and the setting for MLAT results. For bigger changes you simply run the installation script again.

What do I do if MLAT does not work?

First check coordinates and antenna height, because even small errors make the time-difference measurement useless. Then use sudo systemctl status to check the MLAT service and read its log with journalctl. MLAT also needs other stations within range that receive the same aircraft.

How do I uninstall a feeder again?

Each project comes with an uninstall script at /usr/local/share/<service>/uninstall.sh, for example sudo bash /usr/local/share/adsbfi/uninstall.sh. If it is missing on older installations, you disable the two services with sudo systemctl disable --now.

Is my data freely available on the community networks?

That depends on the service. adsb.lol states explicitly in its terms that you waive copyright and related rights in the data you supply under CC0. Before feeding, read the privacy and license notes of the respective network, especially if displaying your station’s location matters to you.

PT

Planetrack editorial team

We build the Planetrack app and go spotting ourselves – on observation decks, under approach paths and at the fence. Every guide is based on our own experience and is updated regularly.

More articles in ADS-B, MLAT & receivers →

Read more in ADS-B, MLAT & receivers

Related airports & manufacturers

Airports, manufacturers, airline groups and alliances – who is behind them and what you should know as a spotter.

All airports & manufacturers →

Related spotting locations

Specific vantage points with the runway configuration, light times, coordinates and an honest take on whether the trip is worth it.

All spotting locations at a glance →

← Back to the blog