Recipes
Copy-paste starting points for the most common setups. Swap in your own station ID, device serials, and receiver position.
Don’t know which frequencies are active near you? Run xng scan first (see the Quickstart) — it prints a session block you can paste straight into a station file.
Two ACARS channels → Airframes
The headline recipe: capture two channels from one RTL-SDR, decode the full application layer, feed the network.
xng listen --sdr driver=rtlsdr -r 2400000 -c 131.500M \
--channels 131.550,131.725 \
--feed-airframes --station-id XX-KSEA-ACARS1VDL2, four channels including the worldwide CSC
xng listen --sdr driver=rtlsdr --mode vdl2 -r 2400000 -c 136.800M \
--channels 136.650,136.800,136.925,136.975HFDL on an Airspy HF+ Discovery
xng listen --sdr driver=airspyhf --mode hfdl -r 768000 -c 10060.000k \
--channels 10027k,10060k,10063k,10081k,10084k,10087kFull-band Iridium on an Airspy R2
The wideband burst hunter wants threads — give it cores.
xng listen --sdr driver=airspy --mode iridium -r 10000000 -c 1622.000M \
--channels 1622.000 --decode-threads 8AIS, both channels from one capture
xng listen --sdr driver=rtlsdr --mode ais -r 2400000 -c 162.000M \
--channels 161.975,162.025 --nmea-tcp 0.0.0.0:10110ADS-B with a live map, feeding the community
Native 2.4 MS/s on a plain RTL-SDR, with your own tar1090-style dashboard plus Beast and SBS streams for other tools.
xng listen --sdr driver=rtlsdr --mode adsb -r 2400000 -c 1090.000M \
--channels 1090 --receiver-pos 47.62,-122.35 \
--http 0.0.0.0:8080 --beast 0.0.0.0:30005 --sbs 0.0.0.0:30003That --beast stream is what community ADS-B aggregators ingest — point a Beast feeder at Airplanes.Live or Plane.Watch to contribute your coverage while xng keeps feeding ACARS, VDL2, and the rest to Airframes.
Replay a recording — no hardware
xng iq-info capture.cf32 -r 2000000 -c 131500000
xng decode capture.cf32 -r 2400000 -c 131.500M --channels 131.550,131.425 --jsonWrap an existing decoder onto the xng bus
Keep your current decoder, but gain the shared application layer, asf-2.0, and Airframes feeding.
dumpvdl2 --output decoded:json:file:path=- 136975000 \
| xng extern --format dumpvdl2 --asf2-grpc http://ingest:6001A whole station, one process
Once you run more than one mode, move to a station file and let xng station manage every SDR, mode, and output together:
xng station station.toml
xng statusFeeding multiple modes? Give each its own suffixed station ID with the per-mode [outputs.airframes] block, so your ACARS, VDL2, and HFDL contributions show up separately on the network.