For April Fools Day, we are going to dive deeper into APRS. The last session on APRS was a general high level introductory overview. For tonight’s session, we will go into more detail on the APRS protocol as well as more into settings for APRS.
The APRS Working Group, under TAPR (http://www.tapr.org) developed the APRS Protocol Reference in 2000. The complete specification is available on the TAPR web site (http://www.tapr.org/aprs_working_group.html). The working group also had an addendum approved in 2004, and can be found on Bob Bruninga’s web site, http://www.aprs.org/aprs11.html, with APRS 1.2 draft work in progress at http://www.aprs.org/aprs12.html.
APRS was designed to be a real-time tactical communications tool. The power of APRS is from the use of “generic digipeating” – that is, APRS packets are sent to the network without any knowledge of the network configuration. A fundamental APRS concept is the “net cycle time”. This time is the time which a user should be able to hear – at least once – all APRS stations within range. Remember, APRS was designed to be a local communication tool, so the net cycle time gives the APRS user a picture of activity in their local area. The “design philosophy” was for the net cycle time to be 10 minutes. This might be useful for emergency tactical communications, but for everyday use, it adds a lot of traffic on the network. NWAPRS recommends that fixed stations transmit once every 30 minutes, mobiles once every 1-3 minutes.
To understand the APRS protocol, we must start with a basic understanding of data communications. A protocol is a convention or standard that controls or enables the connection, communication, and data transfer between computing endpoints. The Open Systems Interconnection Reference Model (OSI Reference Model or just OSI Model) is an abstract description for layered communications and computer network protocol design. OSI is a seven layer model - from top to bottom these layers are:
- Layer 7 – Application
- Layer 6 – Presentation
- Layer 5 – Session
- Layer 4 – Transport
- Layer 3 – Network
- Layer 2 – Datalink
- Layer 1 - Physical Layer
Each “layer” in this model is defined by having similar functions that provide services to the layer above it and receives service from the layer below it. We are not going to spend much time on the functions of each layer, but it is important to understand there are 7 layers – we will see where APRS fits in next.
The Physical Layer is our radio – RF transmission and reception as well as modulation. There is nothing special that APRS does at this layer other then to use the services provides to modulate the RF signal and transmit and receive it on 144.39MHz. The modulation tones from the packet protocol are also part of this Physical Layer.
The next layer is the Datalink layer, or just Link layer for short. So is this where APRS resides? Well, not quite. At the Link Layer, APRS uses the standard packet protocol AX.25. AX.25 is an amateur radio version of the standard X.25 protocol. So what is AX.25 and what does it so? AX.25 has one purpose – it is responsible for transferring data (encapsulated in packets) between nodes and detecting errors introduced by the communications channel (in our case, the radio propagation path). AX.25 has two modes of operation – connection-oriented (virtual circuit connected) and connectionless (datagram style). The specification can be found at http://www.tapr.org/pdf/AX25.2.2.pdf.
The connection-oriented mode can be been used to establish direct, point-to-point links between packet radio stations, without any additional network layers. This is sufficient for keyboard-to-keyboard contacts between stations and for accessing local bulletin board systems and DX clusters. A simple routing mechanism using digipeaters can be used for the connection-oriented mode. Digipeaters act as simplex repeaters, receiving and retransmitting packets from local stations. They allow multi-hop connections to be established between two stations unable to communicate directly.
But recall APRS is not a connection-oriented protocol; that is, we do not send data to anyone in particular. APRS data is sent without expecting any response, and reception at the other end is not guaranteed. APRS uses the AX.25 connectionless mode. APRS uses what is known as an “Unnumbered Information” or “UI” frame in a broadcast fashion.
The UI frame in AX.25 has 9 fields:
- Flag — The flag field at each end of the frame is the bit sequence 0x7e that separates each frame.
- Destination Address — This field can contain an APRS destination callsign or APRS data. APRS data is encoded to ensure that the field conforms to the standard AX.25 callsign format (i.e. 6 alphanumeric characters plus SSID). If the SSID is non-zero, it specifies a generic APRS digipeater path.
- Source Address — This field contains the callsign and SSID of the transmitting station. In some cases, if the SSID is non-zero, the SSID may specify an APRS display Symbol Code.
- Digipeater Addresses — From zero to 8 digipeater callsigns may be included in this field. Note: These digipeater addresses may be overridden by a generic APRS digipeater path (specified in the Destination Address SSID).
- Control Field — This field is set to 0x03 (UI-frame).
- Protocol ID — This field is set to 0xf0 (no layer 3 protocol).
- Information Field — This field contains more APRS data. The first character of this field is the APRS Data Type Identifier that specifies the nature of the data that follows.
- Frame Check Sequence — The FCS is a sequence of 16 bits used for checking the integrity of a received frame.
The APRS data itself is contained in the Information Field, and you can look at it as a Network-layer protocol with Application-layer data. The Information Field is broken down into the following:
- 1 byte APRS Data Type Identifier defines the format of the data.
- “n” bytes of APRS Data which include one of the 10 types of data:
- -- Position
- -- Direction Finding
- -- Objects and Items
- -- Weather
- -- Telemetry
- -- Messages, Bulletins and Announcements
- -- Queries
- -- Responses
- -- Status
- -- Other
- 7-byte APRS Data Extension, defined for the specific data type (for example, Position can have an extension of Course and Speed).
- “n” byte Comment which is a plain text comment such as a beacon message, or may contain further APRS data such as Altitude, Maidenhead Locator, Bearing, Weather & Storm Data, etc.
The APRS Protocol Specification goes into detail on the format for the various data types.
Let’s look at one application – Messages, Bulletins and Announcements. These are APRS packets that contain free-format strings. A Message goes to a single recipient and an acknowledgement is expected (ok, I did say APRS is “connectionless” – more on this later). Bulletins and announcements are broadcasts to multiple recipients without an acknowledgement. Message text may be up to 67 characters long (47 on the Kenwood D7A), and may have an optional message identifier which is used for the acknowledgement.
This is one case where APRS is used to send a message and to expect a reply, but it still uses a connectionless protocol – that is, there is no guarantee of delivery. The Message Identifier along with the address information is used by the recipient to reply to the message – this is done within APRS and not within AX.25. There is a Message Acknowledgement defined, which is the same as a “Message” with the text being “Ack”. A message reject can also be sent. Note however, that if a station receives multiple copies of the message, which is entirely possible, it will ack each time the message is received. There is no “state” kept.
APRS also defines a National Weather Service Bulletin message format, which can be used to highlight warning areas. There is also a NTS Radiogram format.
There are many other capabilities defined in the APRS protocol which we just do not have time to cover in this session. Perhaps at another session we can focus on the various data types and explore the capabilities to emergency communications further.
Now lets briefly go on to the parameters needed to get started with basic APRS. To transmit APRS data, here is the information that you need (example for the Kenwood D7A):
- Your call sign and SSID (MY CALL)
- Optional station icon (mobile, house, etc.)
- If you do not have a GPS unit connected, you can manually enter your LAT/LON (MY POS)
- You can send a comment along with your position, such as “In Service” (POS COMMENT)
- You can send a 20-character status text along with your comment (STATUS TEXT)
- Packet Path WIDE1-1, WIDE2-1 (PACKET PATH)
- Select the radio to send out either transmit manually (MANUAL) via PTT or automatically (AUTO) via a beacon (BCON). If you select AUTO you need to set the beacon interval, usually 1-3 minutes for mobiles (TX INTERVAL).
That is the basic programming functions required. You should be able to find yourself after several minutes on one of the APRS mapping programs.
You APRS-enabled radio is also capable of seeing who is around you, sending and receiving messages, and all the other functions we covered here tonight. Next time we will talk more about messaging with APRS.
For tonight, 73s and have fun!