planedata.io

How to feed multiple ADS-B networks from one receiver

Last reviewed 3 November 2026 · For: anyone with a working receiver who wants to share with more than one network

One receiver can feed many networks at the same time: each gets its own copy of the same data. Here’s how that works, what to watch out for, and how to set it up with Ultrafeeder, the adsb.im image or a plain readsb install.

How multi-feeding works

Your decoder (readsb, inside Ultrafeeder or installed directly) opens a separate outgoing connection to each network and sends each one the same stream of decoded messages, usually in the compact beast_reduce_plus format. MLAT is separate again: an mlat-client connection per network, each sending timing data and receiving positions back for your map. The connections don’t interfere with each other, and the extra upload per network is small.

Your station is identified by a UUID. Most setups send the same UUID to every network; Ultrafeeder can also give a single network its own UUID by adding uuid=… to that network’s entry.

What to avoid

Ultrafeeder (Docker)

List every network in ULTRAFEEDER_CONFIG, separated by ;. Each network usually has an adsb entry and an mlat entry; the networks’ own pages list their addresses.

      - ULTRAFEEDER_CONFIG=
          adsb,feed.adsb.fi,30004,beast_reduce_plus_out;
          mlat,feed.adsb.fi,31090;
          adsb,feed.planedata.io,30004,beast_reduce_plus_out;
          mlat,feed.planedata.io,31090

Apply with docker compose up -d. The Ultrafeeder guide covers this step by step, and the compose generator builds a complete file with the networks you tick.

adsb.im image

The adsb.im image lists many networks on its data sharing page. For a network that isn’t listed there, such as planedata.io, add it as a custom entry: open Setup → Expert, paste the network’s entries into Add additional Ultrafeeder arguments (separated by ;) and submit. The exact entries for planedata.io are on the feeding page.

readsb without Docker

If you installed wiedehopf’s readsb directly, each network is a --net-connector option. Add it inside the quotes of the NET_OPTIONS line in /etc/default/readsb, using your station’s UUID:

sudo nano /etc/default/readsb
# inside the quotes of NET_OPTIONS="...", add:
#   --net-connector feed.planedata.io,30004,beast_reduce_plus_out,uuid=YOUR-UUID
sudo systemctl restart readsb

Create a UUID with cat /proc/sys/kernel/random/uuid if you don’t have one. MLAT needs a separate mlat-client for each network; the feeding page shows the mlat-client command for planedata.io.

Only use this with a readsb install you manage yourself. Vendor images such as PiAware manage their own decoder, and readsb’s install script isn’t meant for PiAware SD-card images. A tested guide for those setups is in preparation.

Verify and remove

Add planedata.io to your receiver

Related guides

References

Checked against: the SDR-Enthusiasts docker-adsb-ultrafeeder README and ADS-B setup guide (multiple aggregators in ULTRAFEEDER_CONFIG, per-entry UUIDs); adsb.im’s documentation (the Expert page’s additional Ultrafeeder arguments, and its warning against combining receivers’ data); wiedehopf’s readsb README and readsb install documentation (--net-connector … beast_reduce_plus_out,uuid=…, and that the install script isn’t for PiAware SD-card images); and adsb.lol’s feed client documentation (manual feeding with readsb plus a separate mlat-client). The readsb connector was tested against a readsb aggregator hub.