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/f00b4r0/acarsdec.git
cd acarsdec
mkdir build && cd build
cmake ..
make
sudo make install

Configuration​

Basic usage​

acarsdec --output json:udp:host=feed.acars.io,port=5550 -i MY-STATION-ACARS --rtlsdr 0 130.025 130.450 131.125 131.550

Key command-line options​

OptionDescription
--rtlsdr <device> f1 f2 ...RTL-SDR device number followed by frequencies (MHz)
--airspy <device> f1 f2 ...Airspy device number followed by frequencies
--output <format>Output format: see --output help for details
-i <station_id>Station identifier included in output messages
-g <gain>Tuner gain in dB (leave unset for AGC - not recommended)
-p <ppm>Frequency correction in PPM
-AOnly display aircraft (downlink) messages, not uplink
-eExclude empty messages

Feeding to Airframes​

To feed VHF ACARS data to Airframes, use the --output json:udp:host= format:

acarsdec --output json:udp:host=feed.acars.io,port=5550 -i MY-STATION-ACARS -g 42 --rtlsdr 0 130.025 130.450 131.125 131.550

Important parameters for feeding:

  • --output json:udp:host=feed.acars.io,port=5550 enables JSON output (required for Airframes) and 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 --output json:udp:host=feed.acars.io,port=5550 -i MY-STATION-ACARS -g 42 --rtlsdr 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