APRS On-Air Protocols and Formats

APRS and Mic-Encoder are Trademarks of Bob Bruninga

APRS protocols are copyrighted material of Bob Bruninga, WB4APR

COPYRIGHT 1992-98: Amateur radio operators may freely copy and use the APRS software in the Amateur Radio Service. I have tried to make APRS fully capable of receiving and plotting ALL on-the-air packets whether a station is registered or not. The registration contribution only balances the headache factor, and to cover myself against un- licensed commercial exploitation. What you get for registering is the ability to interface your own GPS/WX/DF units and a little convenience in saving your configuration.

Amateur Radio operators may apply the APRS formats in the transmission of position, weather, and status packets from their own station. However, the author reserves the ownership of these protocols for all commercial applications and for all reception and plotting applications, amateur or not. Homegrown versions and/or the release of source code would cripple further APRS development and the maintenance of on-air standards leading to chaos and are are not authorized.

APRS is a registered trademark of APRS Software and Bob Bruninga. Other software engineers desiring to include APRS protocols in their software for sale within or outside of the amateur community will require a license from the author. Licensing is not intended to be restrictive, but to provide a means for the maintaining a consistent on-air protocol and for the owner of APRS to share in any proceeds made from APRS applications.

APRS uses UI frames which retain all of the error detection capability of standard packets, but without acknowledgment. In APRS, collisions or lost packets are not a problem since information is redundantly transmitted (AND effeciently! due to the decaying transmission periods). UI packets are the same type that are sent by a TNC using BEACON and BText commands. NOTE, however, that the APRS UI packets are generated internally in the APRS software and the TNC BText is not used while APRS is running.

APRS uses the TNC UNPROTO command to setup the path for the trans- mission of each packet. But when we refer to the UNPROTO command in APRS, we are refering to the APRS UNPROTO or OPS-UNPROTO command which then in turn issues the hardware UNPROTO commands to the TNC.

TO ADDRESS: APRS uses the TO address to indicate the general application of your packets or to address certain sub-nets of interest. By default, APRS will accept packets addressed to the following generic calls:

APRS, BEACON, ID, CQ, QST, BEACON, MAIL, SKYWRN, GPS, DFNET, TEST, DRILL and SPCL.

All other TO addresses are ignored unless you set CONTROLS-FILTERS-OTHER to ON. There is also a alt-SETUP-MODES-SPECIAL command which tells APRS to ignore ALL TO calls except SPCL. SImilarly it configures your station to transmit TO SPCL. This allows participants in a special event to ignore all other traffic on frequency but still all non-participants will still see the SPCL packets. You can also use alt-S-MODES-altNet to set up any other private alternet address so that your APRS packets do not clutter up other APRS users screens.

APRS FORMATS: In the following APRS on-air formats, the abbreviations are D for degrees (or DAY), M for minutes (Both lat/long and time), h for hundredths (or Hours), N for North and W for West. The APRS symbol is identified by the character following the Longitude (shown here as a $). See SYMBOLS.HTM. There are three types of time for local, zulu and hhmmss.

POSITION REPORT: The first character determines the position report format except for the FIXED format which may occur anywhere up to the 24th character position in the packet. If the posit begins with @ or = then APRS is running. If only a TNC is running, then a ! or a / indicates that there is no APRS messaging capability on line. In this case, the date- time means the time that APRS was last running.

FIXED:      .......!DDMM.hhN/DDDMM.hhW$comments...   (fixed short format)
                   =DDMM.hhN/DDDMM.hhW$comments      (message capable)
            /DDHHMM/DDMM.hhN/DDDMM.hhW$comments...   (no APRS is running)
                                                     (fades gray > 2 hrs)
MOBILE:     @DDHHMM/DDMM.hhN/DDDMM.hhW$CSE/SPD/comments...
DF:         @DDHHMM/DDMM.hhN/DDDMM.hhWCSE/SPD/BRG/NRQ/Comments 
            .......z............................. (indicates Zulu date-time)
            ......./............................. (indicates LOCAL date-time)
            .......h............................. (Zulu time in hhmmss)
GRDSQR:     [XXnnyy]comments to end of line
            [XXnn]comments to end of line
W3AB>FM19SX:Hello there....                       (Space/MScat/Grid-SQ mode)
W3AB>FM19SX:]$[Hi there....                       (Space/MScat with stn symbol
POWER:      ..........................$PHGabcd... (Power,ant/height/Gain.  

OMNI-DF: ..........................DFSxbcd... (Same as PHG, but x=sig str) RTTY: APRS DE WB4APRx/011427/3859.11'07629.11($ ... This format uses only the RTTY subset of the ASCII alphabet where ',)( mean N,S,E & W, and the x is an SSID number and the $ is the APRS symbol character. The ... comment field can contain the normal APRS CSE/SPD. The callsign must be padded to six spaces.

POWER-HEIGHT-GAIN: This optional field replaces the CSE/SPD fields with a report of transmitter power, antenna height-above-average-terain and antenna gain. APRS uses this to plot radio range circles around all stations. The following details the format to be used in the BText of a TNC dedicated as an APRS digipeater:

!DDMM.mmN/DDDMM.mmW#PHG5360/WIDE...(identifying comments)... | | | | |||| |_____ makes station show up green | | | | ||||________ Omni (Direction of max gain) | | | | |||_________ Ant gain in dB | | | | ||__________ Height = log2(HAAT/10) LAT LONG | | |___________ Power = SQR(P) | |_____________ Power-Height-Gain identifier * |_______________ # is symbol for digipeater

As you can see by the integers in the PHG string, there are only 10 possible values for each of these fields as follows:

DIGITS 0 1 2 3 4 5 6 7 8 9 Equation ------------------------------------------------------------------- POWER 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 watts SQR(P) HEIGHT 10,20,40, 80,160,320,640,1280,2560,5120 feet LOG2(H/10) GAIN 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 dB DIR 0,45,90,135,180,225,270, 315, 360, . deg (D/45)

The DIRECTIVITY field offsets the PHG circle by one third in the indicated direction. This means a front to back range of 2 to 1. Most often this is used to indicate a favored direction or a null even though an OMNI antenna is at the site. Note that 0 means OMNI and 8 means 360 or a NORTH offset.

HIGHTS are ABOVE-AVERAGE TERRAIN! Not above ground or sea level. Your antenna may be at 1000 ft above sealevel and be on a 100 foot tower. But if you go out 10 miles in all directions and find that the average elevation is 1200 feet, then your height-above-averag-terain is less than ZERO!!!!

OMNI-SIGNAL-STRENGTH DIRECTION FINDING REPORT: APRS can localize jammers by plotting the overlapping signal strength contours of all stations hearing the signal. This OMNI-DF format replaces the PHG format with DFS to indicate DF Signal strength, and the transmitter power field is replaced with the relative signal from 0 to 9. The following beacon would represent a weak signal heard on an antenna with 3 dB gain at 40 feet:

@141923/3859.11N/07629.23WDFS2230/comments

A signal of ZERO (0), is equally SIGNIFICANT beacuse APRS uses these 0 signal reports to draw BLACK circles where the jammer is NOT! These BLACK circles are extremely valuable since you will get a lot more reports from stations that don't hear the jammer than from those that do. This quickly eliminates a LOT of territory!

WEATHER REPORT: APRS uses the underline symbol character for WX reports. For these, the COURSE/SPEED field is used for the WIND and the remainder of the comment line contains other weather items. See WX.HTM

@DDHHMM/DDMM.hhN/DDDMM.hhW_CSE/SPDgXXXtXXXrXXXpXXXPXXXhXXbXXXXXdU2k r is in hundredths of an inch of rain in the LAST HOUR p is in hundredths of an inch of rain in the LAST 24 HOURS s is INCHES of snow in the last 24 hours b is in tenths of millibars h is percent humidity (00=100%) dU2k is Ultimeter 2000, /U5 is the 500 and /Dvs is Davis The "d" means it is running DOS

OBJECT POSITION: OBJECT reports are identical to POSITs except that the posit is preceeded with a fixed nine character object name and a *.

OBJECT___*DDHHMM/DDMM.hhN/DDDMM.hhW$CSE/SPD/comments... STATUS PACKET: These packets are used to tell the world your current mission or any other single line announcement. Mobiles may indicate their destination and ETA. These packets are time stamped so the sender knows when they were valid.

>DDHHMM/comments

ALL OTHER PACKETS: Any packet that does NOT meet any of the above formats is assumed to be just a STATUS beacon and is placed on the LATEST list.

CQ anyone out there?

MESSAGE: Station to station messages use the following format, again padding the addressee call with spaces to a total of nine characters followed by a colon:

W3XYZ____:one line message text......{3 (the {3 is the line counter)

MSG ACK: An ACK is just a message with the letters ACK# where the # is the message line number (following the { character at the end of the line).

W3XYZ____:ack3

BULLETINS: BULLETINs are simply messages to the call signs of BLN1, BLN2, ... BLN#. They will never be acked, but all APRS stations will capture and sort them onto the special BULLETINS page. Bulletins sent to BLN# will decay to very long periods but bulletins sent to BLNx will decay down to once every 20 minutes and stay at that rate.

DF REPORTS: The DF report includes a NRQ field in addition to the position, course and speed of the vehicle plus the bearing line. @DDHHMM.xxN/DDDMM.xxW\CSE/SPD/BRG/NRQ/DF report...

NRQ indicates the Number of hits (for an N7LUE interface), the approximate Range and the Quality of the report. If N is 0, then it means nothing. Values from 1 to 8 give an indication of the number of hits per period relative to the length of the time period. So 8 means 100% of all samples possible, got a hit. The N is not processed, but is just another indicator from the automatic DF units. By entering a 9 as the HIT indicator, you can indicate to other users that your report is manual. The range limits the length of the line to the original maps scale of the sending station. The range is 2^R so, for R=4 would be 16 miles.

DIGIPEATERS, NODES, BBS's AND ALL OTHER PACKET STATIONS:

APRS should be used as a generalized position displaying tool, EVERY TNC that is permanently on the air, and that also transmits a periodic ID beacon, should be reporting its position in that ID beacon! This way, stations monitoring can quickly see a geographical plot of the network. If you want to keep the exact location of your transmitter ambiguous, then use the GRID-SQUARE format, and your position will be ambiguous to a few miles, but stations can still see that you are on the air. If you have special formats for your BEACONS that contain variable information, then APRS is perfect for grabbing that information and making it available to users... If you have any unused aliases, set one to RELAY so others can find you.

QUERIES: THere are two types of APRS Queries. One is general to all stations and the other is in a message format to a single station:

?APRS? Queries all stations (respond in 2 mins) ?APRS?LLLLLL,OOOOOO,RRRR Queries a radius around a LAT/LONG point If RRR is less than 8 then respond immediately ?WX? Queries all WX stations W3ABC____:?APRS? Queries just W3ABC (all of his data) W3ABC____:?APRSP Queries for W3ABC's Posit W3ABC____:?APRSS Queries for W3ABC's Status W3ABC____:?APRSM Queries for W3ABC's messages W3ABC____:?APRSO Queries for W3ABC's Objects W3ABC____:?APRSD Queries for stations heard DIRECT by W3ABC W3ABC____:?APRSH W4XYZ Queries to see if W3ABC has heard W4XYZ W3ABC sends back a packet with W4XYZ as an OBJ and sends back a message with the number of packets heard per hour from him.

W3ABC responds with his Posit, Status, Messages or Objects as appripriate. For the APRSD he responds with a single MESSAGE back to the query station as follows: Directs= N3ABC W4XYZ AB3GH N5QSO ...

In the cse of the ?APRSH query, W3ABC sends back the POSIT of W4XYZ as an OBJECT and sends back a single line message as follows: Hrd: 14 15 4 . 10 6 7 . Which are his Heard statistics per hour for the last 18 hours.


Return to Table Of Contents

Mail comments/corrections on content to Bob Bruninga and on HTML formatting to Steve Dimse