Tuesday, March 11, 2025

"CARS In The Skies" A Crash Course on ACARS

                  ACARS Primer

If you've been following along for a while, you may have noticed that I have some various strange combinations of interests, of which one seem to involve things that deal with radios and things that fly. 

On that subject, I've made posts about listening in on things like weather balloons, gliders and commercial aircraft. It's pretty amazing what sorts of rabbit holes you could go down when you are talking about all the various ways that stuff in the air communicates with stuff on the ground. 

Over Christmas, I came across a couple of SDR dongles in a desk drawer while doing a bit of a reorganization. 

Those who don't know, SDR (or Software Defined Radio) are neat little devices that are small radio receivers that can be plugged into the USB port of a computer. While by itself the SDR is just a small brick that doesn't do a lot by itself, but when plugged into a computer that's loaded up with the appropriate software that controls the SDR, you can literally receive any radio signal that's out there.  


Software Defined Radio
SDR Dongle

So, having found my lost stash of SDR dongles, I started to think of what sort of project I could do - after all there's no sense in just keeping them in the desk drawer. 

I wanted to do something that was a bit unique as a project, something that would take more advantage of the processing power of the computer to decipher what was coming down the wire. So obviously I wanted to focus on something was a bit obscure. 

After some snooping around the web,  I came across this image

Flight Management Computer
Flight Management Computer

If you ever seen any photos of the flight deck of any commercial airliner, you may see this little screen sitting between the pilots. This is the Flight Management Computer and is typically used as a navigation database. This database is used to store route information which the autopilot in turn will use to fly the aircraft to the proper destination. It also reads in data from the aircraft's systems to give a gross weight and determine the best speeds for climb, cruise, descent, holding, approach, etc.  It will also compute the aircrafts position based upon inputs from the IRSs, GPS and radio position updating. On top of all that, this little box also monitors the aircrafts systems to keep any eye out for any potential issues. 

So there is a lot going on with this little gizmo. However, the most important thing, at least from my perspective, is that the FMC also transmits data about what's going on with the airplane down to ground stations through either VHF or HF radio frequencies using the ACARS transmission standard

ACARS, which stands for Aircraft Communications Addressing and Reporting System, is a digital data link standard that allows aircraft to communicate with ground stations, enabling the exchange of information for operational efficiency and flight safety. 

The type of stuff that is communicated through ACARS include:

  • Air Traffic Control (ATC) requests for clearances and instructions from air traffic controllers. 
  • Communication between an aircraft and its base for operational matters. 
  • Communication between an aircraft and its base for administrative purposes. 
  • Weather reporting 
  • Transmit aircraft health and maintenance information. 
As you can see, there is a lot of stuff that could go into an ACARS transmission. Since I am relatively close to a number of large airports, I figure that I should be able to listen in some action. 

But first I needed to understand what exactly was being transmitted.

From what I can gather, ACARS transmit in a standardized message format that typically, among some other details, contains the following information in the message:
  • Date and Time
  • Label - which indicates the nature of the message 
  • Aircraft Registration Number
  • Flight Number
  • Message details 

So for example, a typical ACARS message could look something like this:

[#4 (F:130.025 L:-34.5 E:1) 18/02/2025 00:03:54.852 --------------------------------
Mode : 2 Label : H1 Id : 0 Nak
Aircraft reg: N27722 Flight id: UA0630
No: D26K
#DFB9 94.1316CLMBAIR -26.3  -9.50.584 94.59 94.0621CLMBAIR -26.8  -9.
80.584 94.59 94.0926CLMBAIR -27.0 -10.30.585 94.59 94.1331CLMBAIR -27
.5 -10.50.590 94.59 94.0936CLMBAIR -28.0 -10.50.597 94.59 94.13

Obviously it's rather cryptic, but sometimes you do see some stuff in plain text, usually of a pretty mundane nature:

 [#3 (F:131.725 L:-19.1 E:0) 17/02/2025 01:58:21.571 --------------------------------
Mode : 2 Label : 84 Id : 1 Nak
Aircraft reg: C-GDMP Flight id: WS1224
No: M24A
HI
ITS LOOKING CLOSE FOR MI
N REST FOR MY DH TMW.
ANY CHANCE OF CHANGING T
O SHERATON TO IMPROVE MY
TURN AROUND TIME.

The key to figuring out the meaning of the messages can be found in the Label value. It took a bit of digging around but I did manage to source out a list of what those labels meant - which once you know what the labels meant, you are able to roughly decipher the contents of the message.

Since I needed to spend a fair amount of time doing the research on what those labels actually meant, I figured I would be helpful and provide the definitions that I uncovered for the ACARS Message labels for anyone that's interested (a bit of a warning, it's a pretty long list!):

 Label         Message Type
    00 Emergency SitRep, Hijack Situation Report
    10 British Airways ETA Report, American Airlines Freq Change
    11 Inrange Arrival Report, Fedex In Range Arrival Report
    13 CMU loadsheet uplink
    14 General Aviation Free Text
    15 General Aviation Position Report
    16 Fedex Position Report-AUTPOS, General Aviation Weather Request
    17 Northwest Airlines Position/Weather Report
    18 General aviation weather report
    19 ATIS report
    1C Flight plan request
    1L Atlantic Coast Airlines/United Express QF OFF message
    1M Estimated Time of Arrival report
    20 SAS Initialization
    21 SAS Takeoff Data calculation
    23 SAS Loadsheet Uplink
    24 Northwest Airlines Position/Weather Request
    25 SAS Special Load Notification
    26 SAS SIGMET message
    27 SA Weather Request
    28 Weather Request
    29 SAS Flow Message
    2S Weather Request
    2U Weather
    30 UPS Position Report
    31 Northwest Airlines Weather Report
    36 Northwest Airlines In Range Message
    39 Northwest Airlines arrival/free text message
    3F UPS ETA Downlink Message
    3G UPS Free Text Message Format
    3J UPS Downlink Message
    3S UPS Downlink Message
    3U UPS Uplink acknowledgement
    41 SAS Flow Message
    46 Pirep
    47 747-400 Airway Position Downlink
    48 Misc Msgs
    49 Air Canada Status Reports
    4A Air Canada latest new format
    4M Cargo Info, Air Canada Uplink to Cockpit Printer-specific message
    4P Weather report/forecast
    4Q Air Canada departure format
    4R OFF Air Canada-Specific Message Format
    4S Weather Request
    4T ETA Report
    4X Air Canada Frequency List
    50 Possible HFDL Msg router
    51 Ground GMT Request/Update
    52 Ground UTC Request/Update
    53 Reserved Spare
    54 ACARS Frequency Uplink, Aircrew Initiated Voice Contact Request
    57 Alternate Aircrew Initiated Position Report
    58 Aircraft Tracking Control, Aircraft Tracking Periodic Position Report
    5D ATIS Request
    5P Temporary Suspension of ACARS Service (reponse to Q6)
    5R Aircraft initiated position report
    5U Downlink Weather Request
    5V VDL Switch Advisory
    5Y ETA Revision, Diversion
    5Z Airline designated downlink
    7A Aircraft Initiated Engine Data, Takeoff Thrust Report
    7B Misc Aircrew Initiated Msgs
    80 Delta/Canadian specific 3C03 position report format, Airline Defined
    81 Airline Defined
    82 Airline Defined
    83 Airline Defined
    84 S.A.S. Free Text Message, Airline Defined
    85 Airline Defined
    86 Airline Defined
    87 Airline Defined
    88 Airline Defined
    89 Airline Defined
    8A SAS Out report
    8B SAS Off report
    8C SAS On report
    8D SAS In report
    8E SAS Out/return in report
    8G SAS Take off data calculation request
    8H SAS Loadsheet request/confirmation
    8I SAS Flightplan request
    8J SAS Crewlist request
    8X Uplink ATIS Information
    8Z Avionics unable to process data
    99 Emergency Situation Report
    A0 ATIS Facilities Notification
    A1 Deliver Oceanic Clearance
    A2 Unassigned
    A3 Deliver Departure Clearance
    A4 Acknowledge Departure Clearance
    A5 Request Position Report
    A6 Request ADS Report
    A7 Forward Free Text to Aircraft
    A8 Deliver Departure Slot
    A9 Deliver ATIS Information
    AA ATC Communications
    AB Terminal Weather Information for Pilots
    AC Pushback Clearance Uplink
    AD Expected Taxi Clearance
    AE Unassigned
    AF CPC Command Response
    AG Unassigned
    AW ATS Wind Data
    B0 ATS Facility Notification
    B1 Flight Plan Oceanic Clearance Request
    B2 Oceanic Clearance Readback
    B3 Request Departure Clearance
    B4 Acknowledge Departure Clearance
    B5 Provide Position Report
    B6 Provide ADS Report
    B7 Forward Free Text to ADS
    B8 Request Departure Slot
    B9 Request ATIS information, Flight Plan Information Receipt
    BA ATC Communications
    BB Terminal Weather Information for Pilots
    BC Pushback Clearance Request
    BD Expected Taxi Clearance Request
    BE CPC Log-on/Log-off Request
    BF CPC Wilco
    BG Unassigned
    BW ATS Wind Response
    C# Message to Cockpit Printer #
    C0 Uplink message to all printers
    C1 Uplink message to printer 1
    C2 Uplink message to printer 2
    C3 Uplink message to printer 3
    CA Printer Error
    CB Printer Busy
    CC Printer Local, Printer in Test Mode
    CD Printer out of Paper, Printer No Paper
    CE Printer Buffer Overrun
    CF Printer Reserved Status
    DL Reserved for Data Loading
    D  De-Icing Downlinks
    DI De-Icing Uplinks
    EI Internet Email Message
    E1 Internet Email Message
    E2 Internet
    EL Engine Monitoring Unit Message Downlink
    ER Engine Monitoring Unit Message Downlink
    F3 Dedicated Transceiver Advisory
    H1 Message to/from terminal, Messages from Avionic Subsystem, OAT, OAX
    H2 Meteorological Report
    H3 Icing Report
    H4 Meteorological Report Configuration Downlink
    HF HF Report
    HX Undelivered Uplink report
    KB Loopback Request/Response
    LB Cabin E-Logbook
    LC Cabin E-Logbook
    LS Technical (Cockpit) E-Logbook
    LT Technical (Cockpit) E-Logbook
    M1 IATA Departure Msg, IATA Departure Message
    M2 IATA Arrival Msg, USR, User Defined Message
    M3 IATA Return to Ramp Message
    M4 IATA Return from Airborne Message
    P0 AMS-Protected Downlink Message, Test System Destination
    P6 Unassigned
    P7 AMS-Protected Uplink ATS Message
    P8 AMS-Protected Uplink AMS-Specific Message
    P9 AMS-Protected Uplink AOC Message
    PA AMS-Protected Downlink ATS Message
    PB AMS-Protected Downlink AMS-Specific Message
    PC AMS-Protected Downlink AOC Message
    Q0 ACARS Link Test
    Q1 ETA Departure/Arrival Report
    Q2 ETA Report
    Q3 GMT Clock Update
    Q4 Voice Circuit Busy - Reply to 54
    Q5 Unable to process uplinked messages
    Q6 Voice-to-ACARS change over-Joining ACARS
    Q7 Delay message
    Q8 Reserved
    Q9 Reserved
    QA Out/fuel report, Departure Report
    QB Off report
    QC On Report
    QD Arrival Report / In Fuel
    QE Out/fuel destination report
    QF OFF (Off/destination report) / Out Fuel
    QG Returning to Gate Report
    QH Out Report
    QK Landing report
    QL Arrival Report
    QM Arrival Info Report
    QN Diversion Report
    QP OUT report
    QQ OFF report
    QR ON report
    QS IN report
    QT OUT/Return IN report
    QU Unassigned
    QV Autotune Reject
    QW Unassigned
    QX Intercept, airborne subsystem unable to process
    QY Unassigned
    QZ Unassigned
    RA Command Acft terminal to TX data
    RB Response of aircraft terminal to RA uplink message
    RE Refuel
    S1 VHF Network Statistics Report
    S2 VHF Performance Report
    S3 LRU Configuration Report
    SA Media Advisory
    SQ Uplink Squitter
    UP Message Acknowledgement
    WP Potable Water Remote Pre-selection
    _D General Response
    _J No info to TX
 

Whew!

So, armed with this knowledge, looking at the 2 messages I used as an example:
  • I see that the first message has a label of "H1" which means that it's a message from the aircraft's avionic subsystem - likely a status report on aircraft position and activity - by looking at the message contents I can make out GPS co-ordinates and altitude. 
  • The second message, the one with the plain text, had a label of "84" - which indicated that it was a SAS Free Text Message - which makes sense when you look at the message contents
Now that I am armed with this new found knowledge, my next step is to step up my SDR dongle and computer to monitor ACARS frequencies and to capture the messages that are received. 

My ultimate plan is to only parse out the free text messages, since they seem to provide a bit of a behind the scenes peek of the working lives of aircrew, and probably far more interesting than position reports. 

Once I've got a process sorted out on how to capture these messages, I would like to perhaps post them as a live feed somewhere. Now since I believe there are some rules out there that prohibit posting "live" transmissions, I would need to create something that won't post until at least 48 hours after the transmission. 

In my next post I'll work on getting my SDR up and look at starting to gather my messages.