Skip to main content

Install and Configure acarsdec

acarsdec is a multi-channel VHF ACARS decoder. This guide covers installation, configuration, and feeding to Airframes.

Installation on Debian/Ubuntu

Install dependencies

sudo apt-get install build-essential cmake git libusb-1.0-0-dev librtlsdr-dev libxml2-dev zlib1g-dev pkg-config

Install libacars (required for message decoding)

git clone https://github.com/szpajder/libacars.git
cd libacars
mkdir build && cd build
cmake ../
make
sudo make install
sudo ldconfig

Build acarsdec

git clone https://github.com/TLeconte/acarsdec.git
cd acarsdec
mkdir build && cd build
cmake .. -Drtl=ON
make
sudo make install

Build options for other SDR hardware:

  • Airspy: cmake .. -Dairspy=ON
  • SDRplay: cmake .. -Dsdrplay=ON
  • SoapySDR: cmake .. -Dsoapy=ON

Configuration

Basic usage

acarsdec -o 4 -j feed.airframes.io:5550 -i MY-STATION-ACARS -r 0 130.025 130.450 131.125 131.550

Key command-line options

OptionDescription
-r <device> f1 f2 ...RTL-SDR device number followed by frequencies (MHz)
-s <device> f1 f2 ...Airspy device number followed by frequencies
-o <level>Output format: 0 none, 1 one-line, 2 full (default), 3 monitor, 4 JSON, 5 route JSON
-j <host:port>Send JSON messages via UDP to the specified destination
-i <station_id>Station identifier included in output messages
-g <gain>Tuner gain in dB (use -10 or values over 52 for AGC)
-p <ppm>Frequency correction in PPM
-AOnly display aircraft (downlink) messages, not uplink
-eExclude empty messages
-l <logfile>Log to file instead of stdout
-HRotate log file hourly
-DRotate log file daily

Feeding to Airframes

To feed VHF ACARS data to Airframes, use the -j flag with JSON output (-o 4):

acarsdec -o 4 -j feed.airframes.io:5550 -i MY-STATION-ACARS -g 42 -r 0 130.025 130.450 131.125 131.550

Important parameters for feeding:

  • -o 4 enables JSON output (required for Airframes)
  • -j feed.airframes.io:5550 sends data to the Airframes ACARS ingest (UDP port 5550)
  • -i MY-STATION-ACARS identifies your station (see Station ID format below)

Station ID format

Your station ID helps identify your feed on Airframes. The recommended format is:

XX-YYYY-ACARS

Where:

  • XX — Your initials or a personal identifier (e.g., KE)
  • YYYY — The ICAO code of the nearest airport (e.g., KSEA)
  • ACARS — The decoder type

Example: KE-KSEA-ACARS

Common ACARS Frequencies

All frequencies must be within the same 2 MHz band. Up to 8 channels can be decoded simultaneously.

North America

FrequencyProvider
129.125 MHzARINC (USA/Canada)
130.025 MHzARINC (USA/Canada)
130.425 MHzARINC (USA)
130.450 MHzARINC (USA/Canada)
131.125 MHzARINC (USA)
131.550 MHzARINC (USA/Canada)

Recommended North America set: 130.025 130.425 130.450 131.125 131.550

Europe

FrequencyProvider
131.525 MHzSITA
131.725 MHzSITA (primary)
131.825 MHzSITA
131.850 MHzSITA
136.900 MHzSITA
136.925 MHzARINC

Recommended Europe set: 131.525 131.725 131.825 131.850

Asia-Pacific

FrequencyProvider
131.550 MHzSITA (primary)
131.450 MHzSITA
129.125 MHzARINC
130.025 MHzARINC

Middle East / Africa

FrequencyProvider
131.550 MHzSITA (primary)
129.125 MHzARINC
130.025 MHzARINC
tip

Check the Airframes stations page to see what frequencies other feeders in your area are using. Frequencies vary by region and may change — the station list shows what's working for feeders near you.

Running as a Service

To run acarsdec at boot, create a systemd service:

sudo tee /etc/systemd/system/acarsdec.service << 'EOF'
[Unit]
Description=acarsdec ACARS decoder
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/acarsdec -o 4 -j feed.airframes.io:5550 -i MY-STATION-ACARS -g 42 -r 0 130.025 130.450 131.125 131.550
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable acarsdec
sudo systemctl start acarsdec

Verifying Your Feed

Once running, visit the Airframes stations page and search for your station ID. You should see message counts appearing within a few minutes (depending on air traffic in your area).

Troubleshooting

No messages received:

  • Verify your SDR is detected: rtl_test
  • Check your gain setting — try different values between 20–48
  • Ensure you're using frequencies active in your region
  • Make sure no other software is using the SDR device

Permission errors:

  • Create a udev rule for the RTL-SDR: sudo sh -c 'echo "SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"0bda\", ATTRS{idProduct}==\"2838\", MODE=\"0666\"" > /etc/udev/rules.d/rtl-sdr.rules'
  • Blacklist the kernel DVB-T driver: sudo sh -c 'echo "blacklist dvb_usb_rtl28xxu" > /etc/modprobe.d/blacklist-rtlsdr.conf'
  • Reboot after making these changes