Community
Become a feeder
With a Raspberry Pi, an RTL-SDR dongle and an antenna (about €55–110) you send your receiver's data to the network. In return you get the API with Pro limits for free, and you see what your receiver can't see on its own.
What you get
Your receiver knows what it received. Sending us its data gets you more:
The API with Pro limits, free
300 requests a minute, 10 million a month, the whole world. They apply to your Free keys, for non-commercial use. The Pro plan costs €49 a month + VAT.
Turn it on in My API, opened from your receiver’s network. If the receiver stops, the limits stay for 72 hours.
Turn it on in My API →What flew past you
graphs1090 and tar1090 show what your receiver got. Lightcone also shows the aircraft that passed near you and you did not receive: our server receives every station around you.
Needs MLAT on.
Open Lightcone →How you compare with your neighbours
See how many aircraft you receive compared with the receivers within 40 km, and where you rank. Every day you also see the aircraft only you received and the MLAT positions computed with your data.
The comparison starts with at least 3 receivers nearby.
Your check-up →Hardware
Raspberry Pi
~€15–45Pi 3, 4 or 5 — any model with USB and network. A Pi Zero 2W is sufficient.
RTL-SDR dongle
~€25–351090 MHz Software Defined Radio receiver. RTL-SDR Blog v4 is the recommended choice.
1090 MHz antenna
~€15–30Omnidirectional vertical antenna. FlightAware 66 cm or home-built. Higher is better.
Setup with docker-adsb-ultrafeeder
The easiest way to contribute is docker-adsb-ultrafeeder,
a Docker container that handles ADS-B reception, Mode-S EHS decoding,
MLAT participation and feeding to multiple networks automatically.
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER cat /proc/sys/kernel/random/uuid Do it once and keep it: it is how we recognise your receiver even if its address or network changes. Lightcone needs it.
services:
ultrafeeder:
image: ghcr.io/sdr-enthusiasts/docker-adsb-ultrafeeder
container_name: ultrafeeder
restart: unless-stopped
device_cgroup_rules:
- 'c 189:* rwm'
devices:
- /dev/bus/usb:/dev/bus/usb
ports:
- 8080:80 # tar1090 and graphs1090 on your receiver
environment:
# The RTL-SDR dongle, with readsb's automatic gain
- READSB_DEVICE_TYPE=rtlsdr
- READSB_GAIN=auto
# Antenna position: lat/lon with 5 decimals, altitude above sea level
- READSB_LAT=45.46000
- READSB_LON=9.19000
- READSB_ALT=120m
# The identifier from step 2 and a name for MLAT (letters, digits, - and _)
- UUID=paste-your-uuid-here
- MLAT_USER=your-name
# Data and MLAT to FlyItalyADSB
- ULTRAFEEDER_CONFIG=adsb,dati.flyitalyadsb.com,4905,beast_reduce_plus_out;mlat,dati.flyitalyadsb.com,30100
volumes:
- /opt/adsb/ultrafeeder/globe_history:/var/globe_history
- /opt/adsb/ultrafeeder/graphs1090:/var/lib/collectd docker compose up -d
docker logs -f ultrafeeder MLAT note: accurate lat/lon/altitude is critical (error < 10 m). Use Google Maps or a GPS for exact position. Altitude is the antenna height, not ground level.
Connection endpoints
| Host | Port | Protocol | Use |
|---|---|---|---|
| dati.flyitalyadsb.com | 4905 | BEAST TCP | Send ADS-B data (in) |
| dati.flyitalyadsb.com | 30100 | TCP | MLAT client |
All set up?
Check whether we are receiving your stream: the answer is immediate and needs no sign-up.
Is my data arriving? →Data archive
Network data is in the historical archive: per-aircraft traces since 2022 and coverage, self-serve through the REST API.
Browse data →