How to Feed the Network
The Short Version
Add this line to the ULTRAFEEDER_CONFIG of your ultrafeeder and recreate the container:
adsb,feed.arksignal.net,30004,beast_reduce_plus_out;
MLAT goes in the same place with one more line and your exact position. Because the two nearly always run together, the example below includes it and the MLAT page explains it in full.
UAT: if you also have a 978 MHz receiver there is nothing extra to send us: see the UAT page for the radio and the container.
Already feeding? Stations using feed.adsb.allisononline.org keep working and do not need to change anything; both host names reach the same hub.
Your feeder is identified by the UUID value in the same configuration. After it connects, create an account and claim your feeder to name it and add its location. To see whether the hub is hearing you, use Am I Feeding?. Everything the network is doing right now is on the service status page.
How It Works
ADS-B (Automatic Dependent Surveillance–Broadcast) is how most aircraft report themselves. The aircraft's own GPS works out where it is, and its transponder broadcasts that position, altitude, speed and identity about twice a second on 1090 MHz. Anyone with a small antenna and a USB radio can hear it, which is why a few hundred dollars of hobby equipment can watch the whole sky above a county.
Your receiver decodes those broadcasts and sends them to the network's hub, which merges every station into one picture. More stations mean better coverage: aircraft low to the ground, behind hills or far from any one antenna are heard by whoever is closest. The live map is that merged picture.
Not every aircraft is that simple, so the network uses several ways of knowing where something is. Selecting an aircraft on the live map tells you which one applies to it:
| Source | What it is |
|---|---|
| ADS-B (1090 MHz) | The aircraft broadcasts its own GPS position. The most accurate and the most common: airliners, most business jets and a large share of light aircraft. |
| MLAT (multilateration) | The aircraft only answers radar-type interrogations, so no position is broadcast. The network works the position out from timing. See the MLAT page. |
| UAT (978 MHz) | A second datalink used only in the United States, mainly by light general-aviation aircraft below 18,000 ft. It needs its own receiver. See the UAT page. |
| ADS-R | A ground station copies a report from one datalink (978) onto the other (1090) so aircraft on either can see each other. Same data, rebroadcast. |
| TIS-B | A ground station sends a position it got from air-traffic radar for an aircraft that is not broadcasting. Shown, but not reported by the aircraft itself. |
| Mode S only | The aircraft is heard but nothing says where it is. If enough stations hear it, MLAT can find it. |
What You Need
- A receiver: an RTL-SDR style USB dongle for 1090 MHz, or a similar ADS-B receiver.
- An antenna tuned for 1090 MHz, mounted as high as you can with a clear view of the sky.
- Coax cable to connect them. Keep it as short as practical; low-loss cable matters on long runs.
- A small always-on computer: a Raspberry Pi or any Linux machine that can run Docker.
- A network connection that can reach feed.arksignal.net (see Ports).
- Your location: latitude, longitude and the antenna's height above sea level. ADS-B needs it only for the local map and for your station's range figures; MLAT needs it exact.
Hardware
| Item | Options and Notes |
|---|---|
| Receiver | RTL-SDR Blog V4 is a popular low-cost choice. Airspy Mini is a higher-performance option. FlightAware Pro Stick is a dongle with a built-in filter. |
| Antenna | A 1090 MHz antenna such as a ground plane, collinear or a commercial ADS-B antenna. Outdoors and high beats indoors and low. |
| Filter or LNA | A 1090 MHz filtered preamp helps in areas with strong cellular or broadcast signals. Place it close to the antenna. |
| Computer | Raspberry Pi 3, 4 or 5, or any small Linux machine or home server that runs Docker. |
| Check your coverage | HeyWhatsThat shows what your antenna location can see at different heights. |
Hardware Setup
- Mount the antenna outdoors, as high as possible, away from metal obstructions and other antennas.
- Connect the antenna to the receiver with the shortest practical run of good coax. If you use a filter or LNA, put it between the antenna and the cable run.
- Plug the receiver into the computer's USB port, preferably a USB 2.0 port or a short extension cable to keep it away from the computer's noise.
- Give the computer a reliable network connection. A cable is better than Wi-Fi, and MLAT in particular dislikes a connection that stalls.
- Adding a 978 MHz radio too? Set up the second radio and antenna from the UAT page before plugging in both.
Software Setup
The network is built around the ultrafeeder container from the SDR Enthusiasts project. It decodes your receiver, shows a local map and sends data to any network you list.
New station (ultrafeeder)
- Install a Linux operating system. On a Raspberry Pi, the Raspberry Pi Imager writes Raspberry Pi OS to an SD card.
- Install Docker by following the SDR Enthusiasts Docker install script or the official Docker instructions.
- Make sure the computer's clock is kept right (the default systemd-timesyncd or chrony is fine).
- Generate a UUID for your station and keep it: cat /proc/sys/kernel/random/uuid
- Create /opt/adsb/compose.yaml with the example below, replacing the values in capitals.
- Start it with docker compose up -d in that folder.
services:
ultrafeeder:
image: ghcr.io/sdr-enthusiasts/docker-adsb-ultrafeeder
container_name: ultrafeeder
hostname: ultrafeeder
restart: unless-stopped
device_cgroup_rules:
- "c 189:* rwm"
ports:
- 8080:80
environment:
- TZ=America/Chicago
- READSB_DEVICE_TYPE=rtlsdr
- READSB_GAIN=auto
- READSB_LAT=YOUR_LATITUDE
- READSB_LON=YOUR_LONGITUDE
- READSB_ALT=YOUR_ANTENNA_ALTITUDE_ABOVE_SEA_LEVEL_IN_METERS_m
- READSB_RX_LOCATION_ACCURACY=2
- UUID=YOUR_UUID
- MLAT_USER=YOUR_STATION_ID
- ULTRAFEEDER_CONFIG=
adsb,feed.arksignal.net,30004,beast_reduce_plus_out;
mlat,feed.arksignal.net,31090
- TAR1090_PAGETITLE=My ADS-B Station
volumes:
- /opt/adsb/ultrafeeder/globe_history:/var/globe_history
- /opt/adsb/ultrafeeder/graphs1090:/var/lib/collectd
- /proc/diskstats:/proc/diskstats:ro
- /dev/bus/usb:/dev/bus/usb
tmpfs:
- /run:exec,size=256M
- /tmp:size=128M
- /var/log:size=32M
Set READSB_ALT to the height of the antenna above sea level, for example 98m or 320ft. Each line in ULTRAFEEDER_CONFIG except the last must end with a semicolon. If your 1090 radio has a serial number set, add READSB_RTLSDR_DEVICE=SERIAL as well. The mlat line and MLAT_USER are explained on the MLAT page; leave them out if you do not want MLAT. A 978 MHz radio adds a second container and one more line: see the UAT page.
Already feeding other networks
Keep your existing configuration and add our line to ULTRAFEEDER_CONFIG (the line shown in The Short Version), then set UUID and, for MLAT, MLAT_USER. The full list of options is in the ultrafeeder documentation.
Not using ultrafeeder? (readsb, dump1090-fa, PiAware)
Anything that offers a Beast output can feed us. With readsb add a connector:
--net-connector feed.arksignal.net,30004,beast_reduce_plus_out
MLAT with this kind of setup needs a separate program: see the MLAT page.
After You Are Feeding
- Use Am I Feeding? to confirm the hub sees your station.
- Create an account and sign in, then claim your feeder. If you are on the same network as the receiver it is found automatically; otherwise paste its UUID.
- Choose a station ID, set the location with the map, and describe your setup. You decide whether the public sees an approximate location, the exact one, or none. This does not change what the receiver sends.
- Your station's range, activity and uptime appear on its page and in the network statistics.
- Most stations send MLAT as well: see the MLAT page.
Ports and Firewall
Your station only makes outbound connections. You do not need to open or forward anything on your router.
| What | Direction | Destination | Port |
|---|---|---|---|
| ADS-B feed | outbound TCP | feed.arksignal.net | 30004 |
| MLAT (see the MLAT page) | outbound TCP | feed.arksignal.net | 31090 |
If your network filters outbound traffic (some schools, businesses and carrier-grade NAT connections do), allow those ports to the host name above.
Troubleshooting
| Symptom | What to check |
|---|---|
| Am I Feeding finds nothing | Look at docker logs ultrafeeder for the line mentioning feed.arksignal.net. Check the line ends in beast_reduce_plus_out, a semicolon separates each entry, and the host can reach port 30004 (nc -vz feed.arksignal.net 30004). The check only sees feeders on the same public address as the browser you use. |
| Fed once, now shows offline | The container stopped or the network dropped. Run docker compose ps and docker compose up -d. The status page shows whether the network side is healthy. |
| Fewer aircraft than expected | Antenna height and view matter most. Check for a loose connector, long coax or an indoor antenna; a filtered preamp helps near strong transmitters. |
| Nothing decodes at all | docker logs ultrafeeder should show the radio opening. Check the dongle is in a USB port that is not shared with heavy devices, and that nothing else (another decoder) has taken the radio. |
| MLAT problems | They have their own list on the MLAT page. |
Your Data and Privacy
- The aircraft messages you send are public flight data. They are merged into the network's map and statistics.
- Your location is shown publicly only as you choose: approximate, exact or hidden. The MLAT server needs your exact position to work and keeps it private; the portal never shows it.
- You can change your choice, rename the station, or delete your account at any time from your account pages.
- Station statistics (uptime, messages, range) are public for named stations, without anything that reveals a hidden location.
More Help
- The other feeding pages: ADS-B, MLAT, UAT (978 MHz), Weather Stations, Radiosondes, Mesh Nodes, ACARS, AIS, Satellite Receivers, and Am I Feeding?
- Service status: is the network itself working right now?
- MLAT network: who is connected and synchronised with whom.
- Feeders and the network statistics: how stations are doing.
- Contact someone from the network if you are stuck.