Reach Beyond the Horizon with ADS-C

The network built this map.
You can finish it.

ADS-B receivers already cover where people live. The oceans, the poles, the Amazon, the Sahara — those blank spots stay blank because reaching them is genuinely hard. ADS-C changes that. This is the biggest build in community flight tracking. It's for people who want the hardest challenge and the most permanent contribution.

ADS-C Receiver — ADS-B Exchange
Satcom · C-Band ADS-C · For the Few
2.4m
Minimum dish
3
Channels to decode
±3.2°
Orbit to track
<50
Stations worldwide
A direct call

You've mastered the easy signals.
This one's different.

Every ADS-B feeder on this network runs RTL-SDRs and Raspberry Pis in a window or on a roof. That's real coverage and we celebrate it — those receivers are the backbone of this map. But there is a class of blank spot those receivers will never reach, no matter how many are deployed. Someone needs a dish, a GPS-locked LNB, and a tracking loop running through the night. Maybe that's you.

"Your callsign. On the only part of the map no one else can cover."
The Coverage Gap

ADS-B stops at the horizon.
Much of the world is past it.

Ground receivers hear aircraft directly, so coverage ends where the earth curves — or where no one's run a receiver. Over oceans and in the great empty interiors of continents, aircraft go dark for hours. ADS-C is how they report from those places — over satellite, on a C-Band downlink only a real dish can recover.

What ADS-B covers

Line of sight, where people are

Direct broadcasts, dense and fast. The feeder network has this remarkably well covered. Every new ground station makes it stronger — and there's always room for more.

What goes dark

Oceans, poles, and empty land

The North Atlantic, the Pacific, Antarctica, the Amazon basin, central Africa, the Sahara, Siberia. No ground receivers. Flights vanish from the map mid-track, sometimes for hours.

What C-Band recovers

The aircraft's own satellite reports

ADS-C position reports ride an Inmarsat satellite downlink back to earth. Pull that signal down and you put flights back on the map that no ground antenna can see. This is what only a C-Band ground station can do.

Inmarsat
Satellite constellation
~3.6 GHz
C-Band downlink frequency
10500 / 1200 / 8400
Decoder channels (baud)
adsc
How your data tags in the API
Set Your Expectations

Three reasons this build is
genuinely hard.

This isn't a warning — it's the spec. If you're still reading after this section, you're probably the right person. A working station takes months. These are the three problems you'll need to solve.

Challenge 01

The signal is weak and narrow

You're catching a faint C-Band downlink at ~3.6 GHz. That requires real aperture — a 2.4 m dish minimum, bigger if you can source it. No amount of clever RF work substitutes for dish size. More dish is simply more signal.

No workaround. Dish size is the variable.
Challenge 02

The receiver must be rock-stable

The data channel is narrow enough that a standard LNB's clock drifts right off it. You need a GPS-disciplined LNB — specifically an older external-reference Norsat model, before 5G filters became common and silently blocked this signal. Sourcing one is its own project.

The LNB is the make-or-break part.
Challenge 03

The dish has to track

A "geostationary" satellite actually traces a slow figure-8 in the sky every 24 hours. At the gain a 2.4 m dish produces, the beam is too narrow to ignore this movement. You'll build a tracking loop — a linear actuator, an Arduino, and a Node-RED controller that follows the orbit through the night.

Tracking is the price of going big.
The Build Sheet

What it takes,
part by part.

This isn't a shopping cart — the two parts that decide everything are sourced used, not on Amazon. Everything else is more standard. The total cost varies widely depending on what you find and where.

Core · Antenna

C-Band dish, 2.4 m+ (6–8 ft)

Bigger is always better. Old C-Band TV dishes appear second-hand for next to nothing. Not shippable flat-pack — source locally and plan a solid, accessible mount you can reach at any hour.

Browse used dishes on eBay →
$100–300used
Core · LNB ⚠

Non-5G C-Band LNB (3.4–4.2 GHz, external reference)

The make-or-break part. You want an older Norsat with an external reference input that can be GPS-disciplined. Current models ship with 5G filters that silently remove the ADS-C signal. Verify the exact model before you spend anything. Read the warning below.

$50–200used
Clock

GPSDO module (e.g. Leo Bodnar)

Locks the LNB to GPS time so the narrow data channel doesn't drift. You'll open the LNB and inject this reference — a soldering job, not plug-and-play.

Leo Bodnar shop →
$110–150new
RF Chain

Bias-T / diplexer (Mini-Circuits ZABT-2R12G+)

Sends ~20 V and the 10 MHz reference up the coax to the LNB, and passes only RF back down to the SDR — critical protection for your dongle. Order direct from Mini-Circuits.

$80–100new
Feed

Scalar ring + dielectric

A choke ring matched to your dish's f/D ratio, plus a small dielectric — a sliver of bare PCB you cut yourself — to convert the feed to circular polarisation. Small parts, but the dielectric is critical to sensitivity.

$30 + DIY
SDR

RTL-SDR Blog V3

Receives the LNB's downconverted L-band output. The same dongle used across satcom work. Stick with the V3 for this application.

View on Amazon →
~$35new
Tracking

Feedback linear actuator + Arduino H-bridge controller

A linear actuator with a resistance position sensor (not pulse/end-stop), an Arduino, and an H-bridge to drive it. The Node-RED control loop computes orbital position from TLE data and nudges the dish every 10–15 minutes.

Example actuator →
$80–150
Compute

Capable PC — not a Pi

Decoding several channels simultaneously needs real CPU: an i5/i7 with 8–16 GB RAM and an SSD. A Raspberry Pi cannot keep up with C-Band. A used mini-PC is ideal. Windows or Linux both work fine.

reuse one
Wiring

Coax, power injector, GPS antenna

Quad-shield 75-ohm coax for the run, a low-noise 18–21 V power injector, and a small GPS antenna for the GPSDO (it needs clear sky, not a precise location). All standard satellite-grade parts.

~$80new
Estimated parts cost
≈ $500–800
…if the used dish and LNB go well. Plus foundation, months of commissioning, and the time this project actually deserves.
Read before buying the LNB

The LNB is where money gets wasted. The model people relied on for years is discontinued, and most current C-Band LNBs now ship with 5G filters that block the ADS-C signal — and can't be GPS-modified. Buy the wrong one and you'll have an expensive paperweight that silently filters out exactly what you came for. Confirm the specific model and year with the satcom community on Discord before you spend a cent.

The Moving Part

The approachable way to
track the satellite.

Skip consumer DiSEqC positioners — they're built for light TV dishes, move along the wrong axis, and can't carry a 2.4 m dish. The reliable path is a single elevation actuator with a software loop, built up in stages.

Stage 1 · Start here

By hand — prove the chain first

  1. Move the dish manually twice a day — morning and evening — to catch the top and bottom of the orbit.
  2. Mark the dish positions for the orbit's top, bottom, and sides on a fixed reference.
  3. Confirm you're decoding aircraft. This alone validates the dish, LNB, and feed before you build anything mechanical.
Stage 2 · Then automate

Elevation loop — leave azimuth manual

  1. Mount the feedback linear actuator on the elevation axis, calibrated to the travel you already mapped by hand.
  2. Stand up Node-RED to compute satellite position from auto-updated TLE data.
  3. Arduino compares target to actuator feedback and nudges every 10–15 minutes, with a deadband so it doesn't hunt continuously.
The Build, In Order

From empty sky to
aircraft on the map.

Each step only makes sense once the previous one works. The full sequence can take months — treat this as a project with a worthy finish line, not a weekend.

01

Confirm your satellite — and your sky

Identify which Inmarsat covers you, then verify an unobstructed view across its entire daily orbit. A blocked sightline ends the project before it starts.

A blocked horizon is a hard no-go. Check before buying anything.
02

Plot the orbit

Stand up an orbit graph (Node-RED or similar) with auto-updating TLE data, showing azimuth and elevation over 24–48 hours. You'll reference this constantly during commissioning.

Build this before you buy hardware.
03

Get the dish up

Source and mount the dish on a level, solid base with safe, easy access at odd hours. You'll be out there making fine adjustments during commissioning — often at dawn or dusk.

04

Build the feed

GPS-discipline the LNB, fit the dielectric and scalar ring, wire the diplexer and power injector, run coax to the SDR. This is the soldering-and-care stage.

05

Find the signal

Pivot the dish to the middle of the orbit and hunt the strong 10500 burst on the SDR waterfall. Peak the LNB and dish alignment back and forth until it's clean and consistent.

Seeing the burst comes before decoding anything.
06

Get aircraft on a map

Run Jaero to decode the bursts and output positions. Seeing real aircraft appear over open ocean or remote land — positions no ADS-B receiver anywhere can see — is the proof of concept that makes the rest worth it.

07

Add tracking

Once you're tired of moving the dish by hand, fit the elevation actuator and close the Node-RED + Arduino control loop so it follows the orbit automatically, around the clock.

08

Scale up and feed us

Add VFOs for the 1200 and 8400 channels, one Jaero instance per channel, and send decoded positions to ADS-B Exchange. This is where the capable PC earns its place — and where your callsign goes on the map.

Send Us Your Data

Connecting to
ADS-B Exchange.

Once Jaero is decoding, point its SBS output at feed.adsbexchange.com on port 31600 over TCP. Two paths — both land in the same place.

Simpler · Option B

Jaero client mode

Minimal setup, no relay. Fine to get started; add a readsb relay later for resilience.

  1. In Jaero: Settings → Decoding → ADS data output, switch to client mode.
  2. Set destination to feed.adsbexchange.com port 31600
  3. Jaero sends SBS data directly to our endpoint.

Nothing to configure on our end — port 31600 accepts your connection straight away. Your aircraft appear tagged,"type": "adsc" distinct from ADS-B, and visible to everyone using the map and API.

Go Deeper

The detailed
build guides.

This page is the overview. These community resources are the turn-by-turn detail — hardware sourcing, alignment, frequencies, and the hard-won tuning knowledge that only comes from people who've done it.

For dedicated operators

Tell us you're
building one.

If you have the space, the patience, and a clear shot at the satellite, get in touch before you start. We'll help you identify the right satellite for your location and steer you around the dead ends that have stopped others.