← Projects
raspberry-pi beginner Sep 13, 2026 ◯ 6 min read

Build an ACARS and VDL2 Aircraft Message Decoder with Raspberry Pi and RTL-SDR

Build time: An afternoon for software setup; a full day if also building the antenna
Tools needed: Computer to flash the microSD card, basic Linux command-line familiarity, crimping tool or soldering iron for a custom antenna feedline
Parts List
acarsvdl2rtl-sdrraspberry piaircraft trackingsdr

An ADS-B receiver tells you where aircraft are; an ACARS/VDL2 receiver tells you what they're actually saying — text messages between aircraft and airline operations covering everything from gate assignments and weather requests to maintenance reports and out-of-range position updates. It's a genuinely different data feed from position tracking, decoded from a completely different set of frequencies, and it pairs naturally with an existing ADS-B setup since both run happily on the same low-cost RTL-SDR hardware. This build turns a spare Raspberry Pi and a second RTL-SDR dongle into a dedicated ACARS and VDL2 message decoder with a local web dashboard, and optionally feeds the decoded messages to community aggregators the same way a flight tracker feeds ADS-B data.

ACARS and VDL2: What's Actually Being Decoded

ACARS (Aircraft Communications Addressing and Reporting System) is a narrowband digital data link aircraft have used for decades to exchange short text messages with airline operations centers over VHF — think of it as a slow, aviation-specific precursor to modern data messaging. VDL2 (VHF Data Link Mode 2) is a newer, faster digital mode carrying similar traffic plus some ADS-C and CPDLC (controller-pilot data link) content on a dedicated frequency. Both are unencrypted and legal to receive in most jurisdictions under the same general allowances that cover receiving ADS-B and other public aeronautical broadcasts — this build is receive-only and transmits nothing.

Difficulty, Time, and Requirements

This is a beginner-to-intermediate software-focused build — no soldering or fabrication required unless you're also building a dedicated antenna. Budget an afternoon for software setup if you're reusing an existing Raspberry Pi and RTL-SDR, or a full day if building the antenna from scratch alongside it. A Raspberry Pi 4 or 5 is recommended if this Pi is also running other services (like an existing ADS-B feeder); a Pi Zero 2 W is workable as a dedicated single-purpose decoder given ACARS/VDL2 decoding's modest CPU requirements compared to something like ADS-B's higher message rate.

Parts List

Tools Required

A computer to flash the microSD card, basic Linux command-line familiarity, and a crimping tool or soldering iron only if building a custom antenna feedline rather than buying pre-terminated cable.

Software Setup

  1. Flash Raspberry Pi OS Lite to the microSD card and complete a headless first boot with SSH enabled — this site's headless Pi setup guide covers the standard process in detail.
  2. Install RTL-SDR drivers and blacklist the kernel's default DVB-T driver, which otherwise claims the dongle before your decoding software can use it — the same first step needed for any RTL-SDR project on a fresh Pi image, including this site's ADS-B and NOAA satellite receiver guides.
  3. Install acarsdec (for ACARS) and/or dumpvdl2 (for VDL2) — both are open-source, actively maintained decoders built specifically for RTL-SDR-based reception, packaged for easy build from source on Raspberry Pi OS or available as pre-built binaries depending on your distribution.
  4. Configure the decoder with your region's active ACARS/VDL2 frequencies. Frequency assignments vary by region and are published by hobbyist aviation communities — common US ACARS frequencies cluster around 130-137 MHz, with VDL2 commonly on 136.975 MHz in most regions, but always confirm current assignments for your area rather than assuming these carry over exactly.
  5. Install a web dashboard such as acarshub, which combines ACARS and VDL2 decoding with a browser-based live message feed, searchable history, and a built-in database that annotates messages with flight and airline information where available.
  6. Set the decoder and dashboard to start on boot via systemd services, so the station comes back online automatically after a power interruption without manual intervention — the same reliability pattern used for any always-on Pi service on this site, including the ADS-B and Pi-hole setup guides.

Antenna Considerations

ACARS and VDL2 both live in the VHF aviation band (roughly 118-137 MHz), which is a meaningfully different antenna design target than the 1090 MHz used by ADS-B — a discone or ground-plane antenna cut for VHF aviation frequencies will outperform a generic "wideband" antenna bundled with a cheap RTL-SDR kit, and outdoor placement with a clear view of the sky matters even more here than for ADS-B, since VHF signals are more sensitive to obstruction from buildings and terrain. A simple homemade ground-plane antenna (a length of coax with radial elements cut to a quarter-wavelength at your target frequency) is a legitimate and cheap starting point before investing in a commercial discone.

Reading What You've Decoded

Message TypeWhat It Tells You OOOI reports (Out, Off, On, In)Automated timestamps for pushback, takeoff, landing, and gate arrival — the backbone of airline operational tracking Position reportsPeriodic lat/long updates, particularly valuable over oceans and remote areas with no ADS-B or radar coverage Weather requests/uplinksCrew requests for current weather at destination or alternate airports, and the uplinked responses Maintenance/fault reportsAutomated aircraft system messages sent to maintenance operations, sometimes visible in the raw decoded traffic depending on airline configuration Free text messagesCrew-to-dispatch text communication, gate/ground handling coordination

Contributing to Community Aggregators

Several community-run aggregators (airframes.io among others) accept ACARS/VDL2 feeds from home stations similarly to how flightaware and adsbexchange accept ADS-B feeds, building a crowd-sourced picture of message traffic well beyond any single receiver's range. Feeding is optional and configured separately from local decoding — check the current submission requirements and feeder software for whichever aggregator you choose, since these details change over time and each project maintains its own onboarding documentation.

Troubleshooting Common Issues

An ACARS/VDL2 station is a natural next step for anyone who's already built an ADS-B feeder and wants a genuinely different slice of the same airspace — instead of watching dots move on a map, you're reading the actual operational chatter behind those flights. It runs happily alongside an existing Pi-based ADS-B setup on separate hardware, and the decoded message history builds into a surprisingly interesting log of what's actually happening in the sky overhead.