A small utility to parse and explain ARINC 424 records

The ARINC 424 specification is the universally accepted standard for encoding aeronautical navigation data. Databases that follow it store that data in fixed-length, 132-character records. I created a utility that parses a single ARINC 424 record and prints the fields along with column numbers and plain-language explanations. The Python arinc424 module does the heavy lifting; I provide a wrapper around it, plus the logic that maps fields to the column numbers used in the official specification.

Example ARINC 424 record

A typical record, one of thousands in the FAA Coded Instrument Flight Procedures (CIFP) dataset, looks like this:

This is for the IMTN localizer at KMTN. The utility breaks it down into human-readable information:

Installation

The code lives in arinc424_explainer. You will need pyenv, pyenv-virtualenv, and Python 3.12.

Clone the repository:

git clone https://github.com/NSBum/arinc424_explainer.git
cd arinc424_explainer

Install a Python version if you do not already have one:

pyenv install 3.12.11

Create and activate a virtualenv:

pyenv virtualenv 3.12.11 arinc-3.12.11
pyenv local arinc-3.12.11

pyenv local writes .python-version, so this environment is selected automatically whenever you are in the project directory. Confirm:

python --version   # should report 3.12.x from arinc-3.12.11
which python       # should point at the arinc-3.12.11 virtualenv

If you previously ran pyenv shell, clear it so the local env takes effect:

pyenv shell --unset

Install the dependencies:

pip install -r requirements.txt

That pulls in arinc424 and its dependencies.

Usage

Pipe a 132-character ARINC 424 record into the script. On macOS, the clipboard is convenient:

pbpaste | python test_arinc_424_parser.py

Or feed a record from a file:

python test_arinc_424_parser.py < record.txt

Notes

I have only tested this on macOS, but I have no reason to suspect that it wouldn’t work on other platforms. Obviously pbpaste wouldn’t be available outside of macOS, so you would have to adapt. Apart from that, it should run.

You can grab the code from arinc424_explainer on GitHub. Contributions are welcome — feel free to open an issue or pull request. If you have questions or run into trouble, see my contact page.