Skip to the content.

gr-APRS - A GNU Radio Block for Receiving APRS

GNU Radio Hierarchical Block(s) to Test and Receive APRS Packet (with examples). Tested on GNU Radio v3.10.

(– FINALLY UPDATED AFTER 8 YEARS !!! –)

As of February 2026:


Dependency

Installations

This OOT Module is built upon the GNU Radio hierarchical block scheme. The hierarchical block itself is “transparently” built graphically / visually using GRC. The hier blocks are provided in the gr-APRS/HierBlock folder. Installation steps :

Finish, and now you can open GRC files on gr-APRS/Examples/ or gr-APRS/TestScripts/ and run them.

About the HDLC to AX.25 block

This block, which functions to convert HDLC data into TNC2 APRS formats, is constructed from the “Python Block,” which is native to the GNU Radio Companion. To build one yourself:

APRS-IS I-Gate

This block, which uploads the TNC2 APRS sentence to APRS-IS, is constructed from the “Python Block,” which is native to the GNU Radio Companion. To build one yourself:

The parameters:

Hier Blocks

All the hier blocks are constructed graphically using GNU Radio Companion. AFSK Demod hier block is required by the APRS Rx hier block (hier block which contains another hier block within), so it should be installed first.

AFSK Demod

APRS Rx

Examples

There are some grc examples included in gr-APRS/Examples and gr-APRS/TestScripts folder. WAV files are also included in the gr-APRS/WAV for testing purposes.

A Few notes:

APRS RX RTL

From gr-APRS/Examples/APRS_RX_RTL.grc. This example uses the low-cost RTL-SDR dongle to receive the APRS signal on 144.390 MHz (for another frequency, please change the frequency in the grc).

PLEASE MAKE SURE YOU PUT THE PROPER CALIBRATION VALUE (PPM) IN THE OSMOCOM-SOURCE BLOCK. IT COULD BE DIFFERENT FROM DEVICE TO DEVICE. MINE IS 55-60 PPM (OR THEREABOUT)

The dashboard:

APRS I-Gate

From gr-APRS/Examples/APRS_IGATE_RTL.grc. This example uses the low-cost RTL-SDR dongle to receive the APRS signal on 144.390 MHz and upload it to APRS-IS (functions as an I-Gate).

APRS SCARD

From gr-APRS/Examples/APRS_SCARD.grc. This example uses the onboard sound card with a VHF Radio receiver. Audio from the Radio SPK output should be fed into the MIC input of your soundcard.

APRS AFSK Complete WAV

From gr-APRS/TestScripts/APRS_AFSK_Complete_WAV.grc. These examples will decode AFSK audio files, which are included in gr-APRS/WAV. This example is mainly for testing purposes (for example, to find the best values of Mu and Gain Mu).

TODO

Acknwoledgement

Contributing

  1. Fork it https://github.com/handiko/gr-APRS/fork
  2. Create new branch (git checkout -b add-blah-blah)
  3. Do some editing / create a new feature
  4. Commit your works (git commit -m "Adding some blah blah blah..")
  5. Push to the branch (git push -u origin add-blah-blah)
  6. Create a new Pull Request