---
title: "Feeding FlyItalyADSB: what you need and what you get"
description: "Anyone with a Raspberry Pi, an RTL-SDR dongle and a 1090 MHz antenna (about €55–110 in all) can send their receiver's ADS-B data to FlyItalyADSB, a global community network born in Italy in 2020. In return a feeder gets the API with Pro's limits and features for free (non-commercial use), and Lightcone: the aircraft that passed near the receiver and it did not receive, and a comparison with nearby receivers."
url: https://flyitalyadsb.com/community/feeder.md
page_for_people: https://flyitalyadsb.com/community/feeder/
language: en
generated: 2026-11-09
license: CC BY-SA 4.0 (data)
---

# Feeding FlyItalyADSB: what you need and what you get

> Anyone with a Raspberry Pi, an RTL-SDR dongle and a 1090 MHz antenna (about €55–110 in all) can send their receiver's ADS-B data to FlyItalyADSB, a global community network born in Italy in 2020. In return a feeder gets the API with Pro's limits and features for free (non-commercial use), and Lightcone: the aircraft that passed near the receiver and it did not receive, and a comparison with nearby receivers.

## What a feeder gets

1. **The API with Pro's limits and features, free:** the Pro plan limits and features on the feeder's Free API keys at no cost (300 requests/minute, 10,000,000/month, whole world, 30 days of flight history; non-commercial use; turned on in My API from the receiver's network, kept 72 h if the receiver stops). The Pro plan otherwise costs €49 a month plus VAT. Turned on in My API (https://flyitalyadsb.com/data/api/account/) opened from the receiver's network.
2. **What flew past the receiver:** graphs1090 and tar1090 on the receiver show what it received. Lightcone also shows the aircraft that passed near it and it did not receive, which only a server that receives every station around can know. Needs MLAT on. See https://flyitalyadsb.com/community/lightcone.md.
3. **A comparison with the neighbours:** how many aircraft the receiver gets compared with the receivers within 40 km and its rank (from 3 receivers nearby), plus every day the aircraft only it received and the MLAT positions computed with its data.

## Hardware

| Part | Price | Notes |
| --- | --- | --- |
| Raspberry Pi | about €15–45 | Pi 3, 4 or 5; a Pi Zero 2 W is enough |
| RTL-SDR dongle | about €25–35 | a 1090 MHz software-defined radio; RTL-SDR Blog v4 recommended |
| 1090 MHz antenna | about €15–30 | omnidirectional vertical (for example the FlightAware 66 cm, or home-built); higher is better |

Total: about €55–110.

## Setup with docker-adsb-ultrafeeder

The simplest way is the `docker-adsb-ultrafeeder` container, which handles reception, decoding, MLAT and feeding.

1. Install Docker on Raspberry Pi OS:

```sh
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
```

2. Generate the receiver's identifier once and keep it: it identifies the receiver even if its address changes, and Lightcone needs it.

```sh
cat /proc/sys/kernel/random/uuid
```

3. The settings that matter in `docker-compose.yml` (environment of the `ultrafeeder` service, image `ghcr.io/sdr-enthusiasts/docker-adsb-ultrafeeder`):

```yaml
- READSB_DEVICE_TYPE=rtlsdr
- READSB_GAIN=auto
- READSB_LAT=45.46000      # antenna position, 5 decimals
- READSB_LON=9.19000
- READSB_ALT=120m          # antenna height above sea level
- UUID=paste-your-uuid-here
- MLAT_USER=your-name      # letters, digits, - and _
- ULTRAFEEDER_CONFIG=adsb,dati.flyitalyadsb.com,4905,beast_reduce_plus_out;mlat,dati.flyitalyadsb.com,30100
```

The complete file is on https://flyitalyadsb.com/community/feeder/.

4. Start: `docker compose up -d`, then `docker logs -f ultrafeeder`.

For MLAT the antenna position must be accurate (error under 10 m); the altitude is the antenna's, not the ground's.

## Endpoints

| Host | Port | Protocol | Use |
| --- | --- | --- | --- |
| dati.flyitalyadsb.com | 4905 | BEAST over TCP | ADS-B data in |
| dati.flyitalyadsb.com | 30100 | TCP | MLAT client |

Check that the data arrives, with no sign-up: https://flyitalyadsb.com/community/feeder-status/ (for scripts: `https://my.flyitalyadsb.com/am_i_feeding`, JSON).

## MLAT: how it works

Multilateration computes the position of aircraft that have a Mode-S transponder but do not broadcast their position (many military aircraft, helicopters, general aviation). The same signal reaches different receivers at slightly different times; with four receivers hearing it at once (three if the aircraft reports its altitude), the time differences give latitude, longitude and altitude. Our server, mlat-ng, also places aircraft heard by only two receivers, from their motion (https://flyitalyadsb.com/community/mlat-server.md). Receiver clocks are synchronised continuously against aircraft with a known ADS-B position, so receivers need no GPS hardware.

To take part: a receiver with Mode-S support (most RTL-SDR setups), an accurate antenna position, the MLAT client connected to `dati.flyitalyadsb.com:30100`, and other receivers nearby that pick up the same aircraft (with mlat-ng one can be enough; the more there are, the more aircraft get a position).

---

Written for AI assistants. The page for people is https://flyitalyadsb.com/community/feeder/; to get an API key or sign in, send people to https://flyitalyadsb.com/data/api/. All pages for assistants: https://flyitalyadsb.com/llms.txt (index), https://flyitalyadsb.com/llms-full.txt (all in one file). Facts as JSON: https://flyitalyadsb.com/facts.json. Cite the data as: Flight data: FlyItalyADSB (flyitalyadsb.com), CC BY-SA 4.0.
