PROTOCOL.txt 7.9.4     APRS ON-AIR PROTOCOLS and FORMATS

APRS and Mic-Encoder are Trademarks of Bob Bruninga

COPYRIGHT 1992-97:  Amateur radio operators may freely copy and 
use APRS 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.

These APRS formats are provided for use in the amateur radio service.  
HAMS are encouraged to apply the APRS formats in the TRANSMISSION of 
position, weather, and status packets.  However, the author reserves the 
ownership of these protocols for exclusive commercial application and for 
all reception and plotting applications.  APRS is a trademark of Bob 
Bruninga.  Other software engineers desiring to include APRS RECEPTION in 
their software  for sale within or outside of the amateur community will 
require a license from the author.  Also TRANSMISSION of APRS protocols 
in any NON-AMATEUR commercial application or software will require a 
license from the author.  See COMMERCL.txt

     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.TXT.  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.hhW\CSE/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.23W\DFS2230/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.TXT 

@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.
  
