The Automatic Packet Reporting System (APRS) is a ham packet-based system for real-time tactical digital communication for local area. Using APRS you can report position, status, and send messages that other hams or stations with APRS capability will able to decode, interpret and display the information. APRS also provides means of packet repeating (Digipeters) alongside with internet terminal nodes. Some radio manufacturers saw the potential and included APRS in some of their products as well. You can find more information about APRS here.

APRS uses the AX.25 (Amateur X25) wich is an amateur-radio data-link layer protocol for transmitting and receiving data using packets. It implements basic synchronization, addressing, data encapsulation and some error detection.

A common physical layer for the AX.25 packet protocol and hence a physical layer for APRS is the AFSK1200 modulation. AFSK modulation is a form of BFSK in the audio range (hence the ‘A’). AFSK1200 encodes digital binary data at a data-rate of 1200 bps. It uses the frequencies 1200 Hz and 2200 Hz (center frequency of 1700 Hz ± 500 Hz) to encode the ‘0’s and ‘1’s (also known as space and mark) bits. Even though it has a relatively low bit-rate it is still the dominant standard for amature packet radio over VHF.

You can hear a AFSK1200 signal here:

In the ham world, an implementation of AFSK and AX.25 together is also called a TNC (Terminal Node Controller). In the past TNC’s were separate boxes that hams used to attach to their radios to communicate with packet-based-communication. Today, it is easy to implement TNC’s in software using a computer’s soundcard.

In order to receive and decode APRS messages you need following software:

GQRX can receive the radio APRS transmission, demodulate the FM signal and produce an AFSK1200 audio signal that must be interpreted by an APRS decoder. To do so, tune your GQRX to 144.800 MHz wich is the APRS Network Frequency in Europe and select «Narrow FM» mode in receiver options.

This generated audio signal can feed any software decoder, either through an audiocard or by using the GQRX audio streaming feature.

For example, we can use the AFSK1200 decoder that comes with GQRX selecting the proper sound input (in my case a VB-Audio Virtual cable).

Another powerful and interesting AX.25 decoder is Direwolf, wich is really an AX.25 packet modem/TNC and APRS encoder/decoder. It can be used stand-alone to observe APRS traffic, as a tracker, digipeater, APRStt gateway, or Internet Gateway (IGate).

The audio AFSK1200 signal can also be passed to this decoder as described before, but is more interesting here to use the GQRX audio streaming feature to feed the audio signal. The audio stream generated by GQRX via UDP will be connected to Direwolf sound-card modem software.

To pass the stream to Direwolf, in GQRX select Audio options/Network and set UDP host 127.0.0.1 or localhost and UDP port 7355. Press the UDP button to begin streaming raw audio over UDP.

Now, execute Direwolf by writing:

direwolf -r 48000 -B 1200 udp:7355

You should now receive the APRS messages.