APRS Packet Radio

This page is still in development, and will eventually include more software applications and a base radio.

About APRS

APRS stands for Automatic Packet Reporting System. The aprs.org website has a wealth of information on how to interface with the system and its protocols, and Wikipedia has a lengthy article on the origins and uses of APRS.

Stations within earshot

Amateur radio operators leverage APRS to:

  • share location in the form of GPS coordinates
  • share a status such as the type of station they are operating or what frequency they’re monitoring
  • share weather data including wind speed and rainfall amount
  • send messages with other nearby operators and contacts on other services

Data is transmitted as audio, over the air, on a regional frequency. North America uses 144.390 MHz. This data is also picked up by digipeaters that act as an Internet gateway, where the data is pulled together and displayed on websites like aprs.fi, or relayed via a Message Gateway to other services like email and SMS. More on this later.

Some radios include APRS functionality, but more often than not, a data entry device such as a computer or smartphone is used in conjunction with a Terminal Node Controller (TNC), and a radio. A Terminal Node Controller is a modem in the form of hardware or software. For the uninitiated, modem is short for modulation / demodulation, in that it modulates data into sound, and demodulates sound back to data that the phone can process and display in a user readable format, like text and maps. Sometimes, the computer or smartphone will also function as the TNC, using the system’s soundcard to transmit and receive the audio. Unfortunately, this is subject to line noise introduced by the computer, especially in the HF realm.

Operators are identified on APRS by their callsign followed by an SSID number. When operating with my handheld transceiver, I’m KC1JMH-7, for instance. Messages are sent and received to operators using this format. Maps will usually identify the operators with their various SSIDs with icons on the map.

Portable Operations

My first experiments with APRS was using the APRSdroid app with the BTECH APRS-K1 Cable, an audio cable that goes from phone to my BaoFeng BF-F8HP (UV-5R 3rd Gen 8-watt) radio. The software on the phone can connect to the APRS system via the Internet, can utilize a TNC if connected, or leverage the phone’s sound card to function as its own TNC. I’m using the built in audio based TNC functionality.

I’ve learned that the APRSdroid app will default to using the phone’s cellular Internet connection. What’s the fun in that? I found the settings to change it from Internet to Audio, which feeds the signal over the audio cable to the Baofeng. I set my radio with voice activation (VOX) set at level 3 sensitivity and muted notifications on my phone, to minimize unnecessary bleeps and bloops.

In the app’s menus: go to Preferences > Connection Preferences > Connection Protocol > Change from Internet (APRS-IS) to Audio (AFSK).

List of nearby stations and their statuses

With the Nagoya NA-771 15.6-Inch antenna, I couldn’t pick up much more than an occasional broadcast from the weather station the next road over. However, when connected to my 5′ Ed Fong DBJ-1 antenna, I was able to connect to a nearby digipeater to broadcast my location and send messages, and picked up a couple of repeaters, a few trucks in transit, and a couple of home base stations – from Boston to Augusta!

I blogged about that experience, and took photos of my son and I using his “treehouse” as the antenna tower. At the time, I didn’t yet have the materials to install a mast on the house or the funds for a power supply for a mobile base station, but this did remarkably well!

Sending Messages

Getting messages to other operators is easy. In APRSdroid, tap the three dots at the top to open the menu and select Messages. Now, at the bottom of the screen, tap Send message too… and enter the Callsign and Message text.

Once the message is transmitted over the radio, the remote party will either pick it right up if they’re in earshot of your radio, or it will be relayed through the APRS system until it either reaches the remote party or expires.

I’ll document the process in other softwares, once I’ve gotten the base station set up!

Email and SMS Gateways

During my treehouse test run, I successfully tried the the Email and SMS gateways. The process is similar to sending a standard message, but the Callsign field will need to contain the gateway used to relay the message. The body will then include the intended destination, followed by the message.


There are two email gateways, EMAIL and EMAIL2:

  • EMAIL is one-directional, you can send an email over the APRS system, but a reply will produce a non-delivery report (NDR) or error response email.
  • EMAIL2 is bi-directional, but the response must be specially formatted for it to be routed correctly through the system. I have yet to master this.

Sending from the radio is as simple as sending the message to the recipient EMAIL or EMAIL2, and then including the destination followed by the message in the body of the message. (e.g.: user@domain.com Hey there!)

Sending an email from APRSdroid
Receiving an email from the EMAIL gateway


Sending a text message via SMS to a cellular phone is as trivial, and responses will actually make it back, if formatted with the callsign and SSID. (e.g.: KC1JMH-7)

Simply send the message to SMSGTE, and precede the body of the message with @phonenumber. (e.g.: @123456789 Hi there!)

Sending a text message from APRSdroid
Receiving a text message from SMSGTE


Sending the message to BLN or BLN# (1, 2, etc.) will broadcast a message to all radios within earshot of your transmission. Broadcasts can advertise the time of an upcoming net on a specific repeater, SKYWARN activations, etc. Keep it concise!

(I have not yet tested this command)

Other Commands

QRZ Call Lookup

Don’t have Internet access? You can transmit to DOQRZ with a callsign in the message text, and receive back their information.

(I have not yet tested this command)