
                    GPS or LORAN INTERFACED TO APRS


NEWS:  PACCOMM now provides the APRS port-splitter which allows you to connect
both your TNC and GPS to the same COMM port for mobile GPS/TNC operations.
This simple 2-transistor circuit, mounted in the hood of a DB-9 connector
is simple to build, or purchase from PACCOMM.  See the HARDWARE-SINGLE-PORT
mode paragraphs below.

VERSION 5.00 added the GET-GPS-TIME command so that you can SYNC your PC
clock to the next incommming GGA or RMC sentence.  Version 4.03  added the
very handy Hardware Single Port (HSP) interface so you can operate
ANY GPS in the single port mode!  (no longer requires a special programmable
GPS device).  Also PACCOMM now (as of Dayton 94) includes a universal GPS
interface in all their version 3.2 TNC ROMS.  Now you can make a stand-alone
tracker with ANY GPS and one of their TNC's.


OVERVIEW: This file has evolved radically as this APRS project has developed.
We began seriously parsing GPS data within APRS for amateur applications when
the MAGELAN OEM GPS card became available for $445 in Sept 92 (down from
$1000).  Later the Motorola OEM GPS card came down to the same price range,
and these two devices were the only ones that we could find that were cheap
AND which had USER programmable reporting rates so that they could be set up
to operate stand-alone with only a TNC and radio as a tracking device.
Several HAMS began to build these autonomous tracking devices.  DRSI made a
special APRS ROM for TAPR-2 clone TNC's to permit power-up in the proper mode.

    Next, in version 2.0, I added an optional GPS serial interface to APRS so
that a laptop user could see himself tracked on the map.  This interface did
not require any unique programming of the GPS device and so it was compatible
with ANY GPS or LORAN device using the NMEA-0183 interface, but it DID require
a dual port laptop if both GPS and TNC operations were needed.  In version
3.05 this capability was enhanced for single port laptops to permit both the
TNC and the GPS to share the same serial port.  If the GPS is programmable,
then use the SINGLE-PORT-MODE (SPM) below.  If it continually outputs data,
then use the HARDWARE-SINGLE-PORT mode (HSP) below.  In HSP mode, APRS toggles
the DTR line on the single serial port so that two transistors can then switch
between the GPS and the TNC on the same port.  It works!

     Next, PACCOM added a universal GPS interface into all of its product line
of TNC's.  This capability reversed the previous situation, by now permitting
MOST GPS's to be used with PACCOM TNC's instead of ONLY MAGELAN/MOTOROLA
GPS units with ANY TNC.  Howie Goldstein, who writes the software for many
other TAPR-2 Clone TNC's is also working on a GPS command.   BUT
NOTE, that this is still for stand-alone tracking, these TNCs will not be
useable at the same time for TNC (APRS) operations while in this mode.

     Now that handheld GPS units are readily available for under $399 and
the PACCOMM TNC includes GPS commands built-in, most people will probably
prefer to purchase the handhelds.  The only remaining advantage of the OEM
cards is in their use in stand-alone tracking devices.  When building a
sealed up stand-alone package with GPS/TNC and radio, there is still the
problem of turning the GPS on and off!  Most hand-held GPS units have a
keyboard ON/OFF button.  In a stand-alone arrangement, even if the GPS is
running on external power, someone has to press the ON button!  On the other
hand, the OEM cards power up whenever power is applied.  (this is useful
if you want the tracker to come on with the vehicle ignition...)


* * * * * * * * * *     CURRENT RECOMMENDATION SUMMARY  * * * * * * * * * *

BOTH THE (present) PACCOMM AND THE (future) HOWIE GOLDSTEIN TNC MODS ARE FOR
STAND-ALONE TRACKING APPLICATIONS.  IN THE GPS MODE YOUR POSITION IS BOTH
TRANSMITTED ON THE AIR, AND ALSO AVAILABLE TO YOU FOR DISPLAY LOCALLY ON APRS,
BUT THE TNC SERIAL PORT IS USED UP AND NO LONGER AVAILABLE IN ITS NORMAL TWO-
WAY COMM MODE AT THE SAME TIME.  If you want to use your laptop as BOTH a
moving map display AND APRS communication device, you have three options:

FOR DUAL-PORT LAPTOPS:   ANY NMEA GPS and ANY TNC will work with APRS O.K.

SINGLE-PORT LAPTOPS: Choose between the following options:

    A.  Buy a programmable MAGELAN or Motorola OEM GPS card and wire it up
    to operate in the APRS single-port mode with ANY TNC.  This results in
    only occassional (rare) glitches as the position data and TNC data are
    Diode-ORed together to the same port.

    B.  Use any GPS, with APRS in the single port mode.  Connect both the
    GPS and TNC to your serial port via a SPDT Push Button on your dashboard
    and press it for 2 seconds whenever you want to see (and update
    to APRS) your current posit.  All the rest of the time, the TNC is
    connected and operates as a normal comm device.

    C.  Use ANY GPS with APRS in the Hardware Single Port (HSP) mode and build
    a simple two transistor interface which permits APRS to switch between the
    two devices.  This permits automatic GPS reporting and is an improvement
    on option B above.  Since APRS controls the toggling, the potential for
    garbling is further reduced than in A or B.  (You can purchase the APRS
    port splitter from PACCOMM, or wire it up yourself)

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

GPS EQUIPMENT SUMMARY

     The following are the only GPS units with which I have personal
experience.  Any GPS or LORAN with a NMEA output should work just fine with
APRS, and no-one has reported a NMEA device that DOES NOT work with APRS.
I do not have good experience with the USER interface and displays on most
units since I only use the NMEA output into APRS.  For this reason, my sole
purchasing criteria has been price! (including the serial output).  I have
purchased one of each of the following devices.  Many other APRS operators
have used many other GPS devices, and all work!

MAGELAN OEM CIRCUIT BOARD:  My first GPS.  Cost $450 plus $130 antenna.  Well
documented later in this file.  Output periodicity fully programmable and
includes GGA,GLL and VTG data.  Great for any TNC for stand-alone.  LNA on
board, can use home-made antenna.  5 channel.  12 volt model no longer
available.

MOTORLOA OEM CIRCUIT BOARD:  The smallest circuit.  Requires active antenna.
Output fully programmable and has GGA,GLL,VTG and RMC.  The RMC gives posit,
CSE/SPD all in one packet.  Great for any TNC stand-alone.  5 channel.

GARMIN-50:  BEST BUY.  $400 in Feb 94 and includes mounting bracket, NMEA
cable and 6-40 volt supply capability built in.  Has RMC, but does NOT have
GGA (no altitude).  Handheld antenna can be remoted about 6 ft.  8 channel.

MAGELAN MERIDIAN:  Dropped below $400 in Spring 94.  Mounting bracket, NMEA
and external 12v converter are extra for $80, but are not needed if you give
it 6 volts and make your own data cable.  8 channel.

----------------------------------------------------------------------------

THE REMAINDER OF THIS FILE HAS THREE SECTIONS:

    The first describes the new PACCOMM direct TNC interface.
    Second is the direct APRS software interface of GPS to your PC
    Third is the direct TNC/GPS interface for building stand alone trackers
       using the MAGELAN and Motorola OEM cards.
    Forth, in March 94, I added a section on Differential correction.



PACCOM GPS INTERFACE:  All PACCOM TNC's with firmware 3.1 or later have a GPS
ON command which allows you to hook up ANY NMEA-0183 GPS device to the serial
port and the GGA position report will automatically be inserted into your
BEACON text (after stripping off the $GPGGA header.   You then set your
beacon period and away you go!  This is the simplest and most direct way
to go, since  1) You will NOT need a special GPS card,  2) you will not
need modified TNC code.  PACCOMM even sells a TNC with GPS unit built-in!
BUT THIS COMBINATION IS FOR STAND-ALONE TRACKERs!  WHILE IN GPS MODE,
the TNC is not used for packet communications.  You can also hook up the
stand-alone PACCOMM TNC up to an Ultimeter-II weather station for remote
reporting of WX conditions at your DIGI site.  (See WX.txt)

     Now the new PACCOMM 3.2 ROM released at Dayton-94 handles ANY GPS or LORAN
output by allowing the user to specify the exact NMEA-0183 interface to use.
The earlier PACCOMM 3.1 ROM only recognized the GGA sentence.  This meant that
you would not get course and speed, nor would it work with units that did not
use the GGA).  All of these problems go away in the PACCOMM 3.2 ROM.  Please
read the section below on NMEA interfacing.

    PACCOM also added a new UI frame in their 3.2 ROM so that the POSITION
information would be independent from the BText. This LText is just like the
Beacon Text, except it is a separate entity with its own timing.  This keeps
the BText free for other applications. (particularly, for announcing WHAT your
mobile is doing, and what symbol to use, etc....)  This maintains the same
distinction between BTEXT and POSITS that APRS already handles easily.
Similaraly, the LText command allows you to manually enter your LAT/LONG or
grid square in your TNC, even without a GPS, so that TNC's in networks will
send their locations periodically.  The LText permits a free text format so
that it is compatible with any future specific formats (currently APRS parses
GGA, RMC, VTG, APRS L/L, PACCOMM and grid squares and a future 8 character
compressed L/L format) and there will probably be others too.  PText would
be a better name choice than LText, but it is already used by Kantronics as
the PBBS text)

LOCATION TEXT TIMING:  For future designs, the minimum L period should be 1
minute for manual entries, but the LText UI frame should be sent out ONCE
everytime a new manual entry is made.  The ultimate objective for all UI
beacons should be to have the optional APRS DECAYING time period algorithm
built into all TNC's.  This DECAY option would be invoked with the L D N or
B D N option commands.  The D stands for DECAY and the N is the final beacon
period.  With the DECAY option, each new manual entry of BText or LText will
force a UI frame immediately, 15 sec later, 30 after that, 60 after that, 2
mins, then 4 mins, then 8 mins and so on to N minutes, and stay at N minutes
forever.  This way, new UI information is transmitted immediately to all
stations on the net, but old beacons soon fade away.  With this algorithm,
I would expect the minimum value of N for the DECAY option would be 10
minutes, but a default value of 60 would be appropriate.  This way, stations
that have unchanging information only beacon once an hour.  One other
addition to complete the APRS philosophy, is to have the TNC respond with both
its LText and BText randomly within one minute of seeing an APRS query (UI
frame to the address of APRS with the text field set equal to ?APRS?)  This
way, stations could drop back to a decayed beacon rate of once every 4 hours
or so, but still would pop up on an APRS map if requested.


DIRECT APRS GPS/LORAN INTERFACE OPTION:  Registered APRS users that select the
optional ($9) NMEA-0183 GPS option can plug just about any GPS/LORAN device
directly (almost) into a serial port of your APRS computer.  APRS will not
only plot the position of the attached GPS and its movements, but will also
transmit those position reports into the APRS net.  In this mode, you can also
select TRACK on the P-list to keep your mobile always on the map.  There are
four possible operational configurations:

     TNC only  - 1 Serial - Normal APRS for tracking other stations
     TNC/GPS   - 2 Serial - Normal APRS with automatic GPS position update
     GPS only  - 1 Serial - Tracking yourself (no other stations appear)
     TNC/GPS   - 1 Serial - Single Port Mode will do both! See below
     TNC/GPS   - 0 Serial - Stand-alone-tracker.  Doesnt use APRS except to   
                            plot the resulting packets.

NMEA INTERFACING NOTES:  Operation of a GPS with the optional $9 APRS software
routine is automatic.  But first you must interface the NMEA output of your GPS
or LORAN to your RS-232 input.  NOTE that NMEA and RS-232 are not exactly
compatible.  The NMEA specification is actually EIA-422, which means an
isolated differential receive circuit is recommended.  An opto-isolator is the
receommended interface to RS-232.  But it should also work by simply connecting
the NMEA pin A to RXD and pin B to ground.  Both standards are the same sense,
with NMEA a 0 and +5 volt signal, and RS-232 a +3 and -3 volt signal.  The
direct connection may not work with many serial interfaces without a (-) voltage
pulldown resistor.  Often a series 1k resistor and a 5 to 10k resistor tied
to your unused TXD data line will suffice to provide the - voltage:

GPS NMEA OUT                                           LAPTOP SERIAL PORT
                       1 k
   A  >-------------/\/\/\/\---*------------------------> RXD
                               |          10K
                               *-------\/\/\/\/\--------< TXD

   B  *-------------------------------------------------* GND


NOTE!  If you use this kind of biasing on our GPS when connected to a TNC,
such as the PACCOMM for a stand-alone-tracker, be sure to set ECHO OFF so that
echoed data does NOT come back to the GPS on the TXD line!  If data comes out
of the TNC, then with the bias resistor, it will garble the data trying to
come in!  Also, do NOT connect your PC serial output to your GPS NMEA input
if there is one, since APRS does not send anything to the NMEA device.  It
has been reported that the TRAXAR GPS devices may lock up if you connect
anything to the NMEA input (remove the battery and do a hard reset to get it
back!)  Of course, if you are using one of the programmable OEM cards, then
you WILL make this connection in order to send commands to the GPS.

Once your serial port is set to the NMEA-0183 standard baudrate of 4800 baud,
you should begin to see raw NMEA data.  My APRS software recognizes four of
the NMEA-0183 formats:

    $GPGGA - for position and height  (no loran equivalent)  ] Use only one
    $GPGLL - for position only        ($LCGLL for LORAN)     ] of these two
    $GPVTG - for velocity and course  ($LCVTG for LORAN)
    $GPRMC - Posn, Course and speed   (Has all but height) (not in MAGELAN)


    APRS scans the interface data looking for a valid NMEA-0183  GLL/GGA/RMC
or VTG data format to extract position and speed information.  The data on
the NMEA interface is continuous and refreshed every second or two.  (If you
have been using a MAGELAN or a Motorola and have programmed a very slow data
period, you may want to reset this to a more normal few second rate.)  In order
not to saturate an APRS net or to overload your disk storage or to slow down
your other APRS keyboard processing, APRS only samples the data at slower rate.
This is called the REFRESH rate and is set during intitialization of APRS for
GPS or by using the alt-S command.  This period determines how often your
screen is updated from your own GPS.  Usually this is still too rapid for
transmitting at 1200 baud on a shared packet channel, so APRS also has another
period called PACKET PERIOD which is usually set for 1 to 10 minutes also using
the alt-S command.  We have found that 30 seconds updates are OK for special
events when there are only one or two mobile APRS stations.  As more and more
stations go mobile with GPS/APRS, 1 minute or 2 minute updates are more
appropriate.  To further reduce channel loading, APRS will decay the period
when the station is not moving.


GPS MOBILE AND TNC WITH ONLY ONE SERIAL PORT (Single Port Mode)

     Since most laptops only have a single external serial port, it would seem
to be impossible to both run GPS and operate APRS packet at the same time.  But
by using the programmble MAGELAN or Motorola, to reduce the GPS data rate, it
is possible to diode-OR the TNC and GPS data outputs together going into the
single serial port.  This requires APRS to be looking for packet headers on
everything comming from the TNC, but then to also recognize raw GPS data too.
The only problems with this arrangement are data collisions and ambiguity on
incomming VTG packets.  At a once-a-minute GPS rate and a 100% saturated 1200
baud packet channel, the 9600 baud TNC data will experience a collision less
than 1% of the time and 85% of all GPS reports will be collision free.  The
ambiguity problem is caused by VTG packets transmitted as a second frame from
a tracking device (see above).  These off-the-air VTG packets also have no
packet header and cannot be distinguished from VTG data from the local GPS.
Since GGA sentences off-the-air preceed the VTG and are always received with
an attached packet header, they can be uniquely identified.  APRS will only
process a VTG sentence if it has been received within 1 second of a GGA
and it will assume that the VTG came from the same station.

          DIODE OR-ing of GPS and TNC in SINGLE PORT MODE:


    GPS DATA OUT  >----------*------>|--------*----->  TNC RXD
                             |----/\/\/\/\----|
                                              |
    TNC DATA OUT  >----------*------>|--------*        both R's abt 10K
                             |----/\/\/\/\----|


     Again, this configuration will appear to only work if you were using the
programmable MAGELAN or Motorola which can be told to send GPS data only once
every minute or so.  But (in version 3.08) we just realized that ANY GPS can
be conected in SinglePortMode by just using a SPDT push button switch!  The
laptop is normally connected to receive data from the TNC, but whenever the
operator presses the button and holds it for about 2 seconds, the GPS data
will be routed to the laptop and APRS should be able to parse out at least
one GPS position report!  This updates APRS to your present position and
then on release of the button, the TNC is connected as normal.  (W6PNC built
a simple 555 timer to do this automatically every minute for his.)

   To activate this Single Port Mode (SPM), bring up APRS in one-port TNC mode
being sure to set the TNC to the same BAUD RATE as your GPS.  Then enter the
ALT-S SETUP Menu.  Select SPM under the GPS selection and then do SETUP again
to SAVE the config file.  You will be asked for your regular validation and
your GPS number. If you did this correctly, you will see the lower case (spm)
on the yellow control panel go to uppercase.  ALSO NOTE THAT BOTH THE TNC AND
THE GPS MUST BE RUNNING AT THE SAME BAUD RATE. THIS IS USUALLY 4800 BAUD FOR
NORMAL NMEA OUTPUTS.

     For stations with the programmable GPS units, the data from both the TNC
and the GPS can be permanently diode-ORed together as long as they are both set
to the same baud rate.  Since APRS is receiving the GPS data, it will transmit
the resulting APRS position report for the station and so the GPS should NOT
also be sending data to the TNC (as is normally the case with the standalone
MAGELAN or Motorola GPS).  The screen refresh rate is set by the period
programmed into your GPS (30 seconds or so is about right).  The position
report transmission rate is set by POS-RATE command in the SETUP Menu.


HARDWARE SINGLE PORT MODE  (HSP)

     The Single Port Mode described earlier permits sharing a single computer
COMM port between the TNC and GPS, but requires special GPS devices that can
be programmed to output only once a minute or so.  The only way to do this
with a typical GPS that outputs once a second, was to install a momentary push
button switch and have the operator press the button each time for a fix.
This has all been made automatic in version 4.03 of APRS by using a small
external 2 transistor switch.

     This simple 2 transistor interface can be used to share a single serial
port between both a packet TNC and ANY GPS device.  In mobile APRS operations,
this permits the vast majority of portable computers that only have a single
serial port to both communicate in the APRS network while also simultaneously
reading the vehcile's position from an attached GPS.  In this HSP mode, APRS
will periodically toggle the DTR output of the serial port for a second or so
to switch between the devices.  With DTR held high (normal) the GPS data is
shunted to GND while the TNC operates normally.  When APRS toggles the DTR
low, this holds off output from the TNC, but also enables data through the
emitter follower from the GPS.  As soon as APRS receives the GPS data it
needs, it restores DTR so the TNC is connected for normal APRS operations.
Just learned that the PACCOMM Tiny-2 does not use DTR but does use RTS for
holding off data.  Also, if the +V impedance of your PC RTS line is not strong
enough to provide a good source of +V, you might get it from the TNC's DSR.
REMEMBER THAT YOUR TNC AND GPS MUST BE SETUP AT THE SAME BAUD RATE, usually
4800 baud.

                              *------------------< RTS (source of +V only)
 GPS NMEA                   |/ c                       (Or get from TNC's DSR)
   >------/\/\/\/---*----*--|
 OUTPUT      1k     |   NPN |\ e
                    |         *----->|-----*-----> RXD
 TNC RXD            |              diodes  |
   >--------------------------*----->|-----*
                    *         |            |       SINGLE
                    |         *---/\/\/\/--*       LAPTOP
                   c \|            10k             RS-232
                      |--*--------/\/\/\/--*       PORT
                   e /| NPN        10k     |
                    |                      |
 TNC DTR (or RTS) ////                     |
   <---------------------------------------*-----< DTR

 TNC TXD
   <---------------------------------------------< TXD
  GND
   *---------------------------------------------* GND

My goal was to install these few components in a back-to-back DB-9 connector
so that the GPS can be operated alone or with a TNC.  By installing this
adapter on the end of the cable to my GPS, it is always handy.  Notice that
a dotted line shows how to add just one wire to take the output of the TNC to
the DGPS input of the GPS if your GPS is DGPS capable and if someone in your
area is transmitting DGPS data on your packet channel.


                1     2     3     4     5   DB-9 FEMALE TO COMM PORT
                O     O     O     O     O
                      |  7  |     |     |
                   O  |  O  |  O  |  O  |
                      |  |  |     |     |
                      |  |  |     |     |
  NMEA      N C------ | -*  |     |     *--------E N
  FROM      P E--->|--*     |     *---- | -/\/\/-B P
  GPS       N B---*-- | --- | --- | --- | -------C N
                  |   |     |     |     |
                  |   *--*  |     |     |
   A >-----/\/\/--*   |  |  |     |     |
                      \  -  |     |     |
   DGPS < - - - - *   /  ^  |     |     |
                  |   \  |  |     |     |
                  |   |  |  |     |     |
                  * - *--*  |     |     |
   B ---------------- | --- | --- | ----*
                      |     |     |     |
                      |     |     |     |
                O 1   O 2   O 3   O 4   O 5   DB-9 MALE TO TNC CABLE

                   O     O     O     O


In this adapter, the voltage to provide the -V bias to convert the NMEA output
to RS-232 levels comes from the output of the TNC.  For this reason, if the
GPS is used alone without the TNC, a jumper must be connected between
pins 2 and 3 of the empty TNC connector.  This takes the -v from the unused
TXD output of the PC.  I recommend carrying a stubby DB-9 female connector
with this jumper permanently installed.

                O 1   O 2   O 3   O 4   O 5   DB-9 FEMALE STUB USED TO PROVIDE
                      |     |                    -V BIAS WHEN TNC IS NOT USED
                   O  |  O  |  O     O
                      |     |
                      *-----*

HSP OPERATIONS:  The set up procedure for HSP is identical to SPM, except that
HSP vice SPM is selected from the SETUP menu.   To activate HSP, bring up APRS in
one-port TNC mode being sure to set the TNC to the same BAUD RATE as your GPS,
probably 4800.  Then select HSP under the SETUP menu and then SAVE a new CONFIG
file.  You will be asked for your validation number and special GPS number.
If everything is done correctly,  you will see the lower case (hsp) on the
yellow control panel shift to uppercase.  In HSP mode both the screen refresh
rate and position transmission rate are set with the POS-RATE command.


US NAVY MAGNAVOX 1105 SATNAV SYSTEM:

   I did write a version of APRS that is plug compatible with the MAGNAVOX
1105 SATNAV system.  This is a 1970's vintage TRANSIT SATNAV system which has
both LORAN and SATNAV integrated together in the same box.  This unit is found
on many US NAVY ships.  It sends position updates in a very verbose protocol
once every minute.  This is the system used on the Naval Academy boats.  If
you have use for this module, please contact me.


NOTES ON MOBILE GPS OPERATION:  After over a year of operating GPS mobile, for
other to track me, I finally borrowed an old 8088 Laptop and went James Bond
mobile to the inlaws over Thanksgiving 93.  It worked beautifully.  I actually
never thought it would be anything more than a toy, but when you are stuck in
holiday weekend traffic for hours, and you are on an unfamiliar interstate,
crawling at 10 MPH or less, with no signs in sight, there is nothing that will
tell you where you are other than GPS!  LESSONS LEARNED!

  1) We were 5 miles out when I finally got everything going and then had to
  turn around and drive back home to get my GPS Validation number!!!
  Write it down!

  2) Recommend making a trimmed down disk with only the maps you will need.

  3) When you QUIT APRS, your TRACK HISTORY is NOT saved UNLESS you sepcify a
  file name OTHER than BACKUP.BK (or do a FILE-SAVE).

  4) In version 3.04 I added the TRACK mode so that APRS could recenter the
  map if your station moved to the edge of the screen.

  5) GPS fixes indicate GGA/NUL as course and speed if no VTG data is
  available, or "Last GPS fix" if the GPS device is reporting GPS not
  available and the fix is older than a few seconds.

  6) Set your refresh rate to a long enough time period so that APRS is not
  always processing GPS and has time to service the keyboard.  I set to 20
  seconds or more usually.

  7) Make notes of any map errors or disagreements with GPS, with the latest
  MAPFIX.bas, you can now replay your track history and fix any map easily.

  8) During my trip to Dayton94, I noticed that any error between your PC
  clock and GPS time resulted in DeadReckoning errors.  In APRS 5.00, there
  is a TIME-SYNC command that will sync your PC time to GPS time on the
  next receipt of a GGA or RMC sentence. (be wary of GPS's that are transmit-
  ting old posits and FIX times!)

For most highway maps and 1 minute reporting at 60 MPH, zooming in below
eight miles is usually a waste of time.  For this reason don't waste your
time making maps with every little twist and turn in the road; it just takes
time and memory and makes no difference.  In all applications of
APRS so far, you just want to know what road the mobile is on, and how far
along he is between point A and B.  A straight line between A and B is not as
pretty, but shows the road as well as 20 points showing all the curves.  If
you do save any RAW GPS data outside of the APRS environment, the following
two programs may be useful in reconstructing GPS data.  They are provided
as-is, I just made them for some quick and dirty file conversions that I had
to do in the past, but thought they might be useful to others as a basis for
writing your own routines.

FILTRHST.bas:  APRS automatically builds a track history for all moving
stations.  To avoid saving redundant position reports, a filter was added in
APRS version 2.0 to filter all reports and to only save positions that are
changing.  The default value of the filter is wide enough to include the
variations in position due to GPS selective avaiability. (+/- 0.03 minutes)
This value can be changed with the CONTROLS-FILTER command.  I wrote a QBasic
utility called FILTRHST.bas that can be used to re-filter a track history file
to remove additional points.  Since the source code is provided, this program
makes a good starting point for writing other routines for manipulating APRS
track history files.  In addition to filtering, this program can be used to
combine a number of separate track history files into one file.

GPStoHST.bas:  Since the simplest GPS interface is to just plug the output of
a GPS receiver into a laptop computer and save a text file.  This program will
take such a text file and generate an APRS track history file.  Actually, it
only looks for the GGA and VTG NMEA-0183 sentences and combines them into the
one line APRS format.



STAND-ALONE GPS TRACKERS FOR MOBILES WITHOUT PC's

(Note that this section is somewhat obsolete due to the availability of
cheap handheld GPS's and the PACCOMM TNC or Howie Golsteins ROMs that
make them useable as-is.  BUT for Balloons, and small stand-alone tracking
boxes for taping to the roof of special vehicles for special events, using
the innexpensive OEM cards, is still a viable way to go.

     This section describes an alternate method to the PACCOM interface
described above for interfacing navigation devices directly to a TNC for
building small autonomous mobile position reporting devices without requiring
a PC computer to do format conversions.  This method has the advantage of
transmitting any of the NMEA-0183 sentences (to include course, speed and
altitude) but requires the use of special programmable GPS/LORAN devices.
Although almost all GPS/LORAN devices have an NMEA-0183 serial data output
(except for the Rockwell engine and the SONY Pixis), most of them do not give
the user the ability to modify the periodicity of the data reported via the
interface.

     In most devices, navigation data is continually updated about every two
seconds at 4800 baud.  This is far too much data to transmit over a shared
1200 baud AX.25 packet link.  Fortunately some devices do permit the operator
to specify not only the reporting rate, but also what data formats are included
in the reports.  I have seen some LORAN devices that have a separate
"printer" port which can be configured by the user to output a report once
every N minutes or even hours.  Unfortunately, most users manuals I have
peruised in my local boat store do not make it immediately obvious what the
user configuration options are.  We have found two GPS engines which are
designed for the experimenter.

1.    The MAGELAN OEM 5000 circuit board that we initially used as a GPS engine
is no longer available.  It has been replaced by a $295 5 volt/TTL card that
DOES NOT HAVE A NMEA OUTPUT.  This makes the remainder of this section
specifically referring to the MAGELAN OEM card, valuable for historical
purposes only.  This card was 3.5 by 7 inchs, cost $445 required only a GPS
antenna and 12 volts at 250 MA input; it included the RTCM-104 differential
correction.  Call Emiel Yakoub at MAGELAN 960 Overland Ct, San Dimas,
CA 91733, phone 714 394-5000.  It had full user programmability with periods
up to 5 minutes maximum.

2.  The Motorola OEM prototype card also has user programmability of the NMEA
outputs and can be slowed down to APRS application rates for direct connection
to a TNC without the need for a computer in between.  This card includes the
RMC message which contains both position and course/speed in one NMEA
sentence.  Call Jennifer Spitzen at MOTOROLA, 708 480-5699 and ask for the
BASIC ENCORE circuit board.  The card runs on 12 volts, has NMEA 0183 output
and RTCM-104 (differential correction) standard and comes with an active patch
antenna and cable for $499 (gtys 1-99).  Without antenna is $435, but unlike
the Magelan, this card must have the additional 20 dB gain from an active
antenna in front of it to work.  The 1 pulse per second timing option is
an additional $100.  The combined Motorola Rcvr/Ant pricing is about equal to
the MAGELAN card/antenna combination, but it is smaller, and it outputs the
combined RMC message which is more effecient packet wise.  It also outputs
altitudes to 56,000 feet in the GGA message.

Unfortunately, they do not include all the DOCS and the user setup software
in the quantity one shipment.  That costs an additional $1200 for their full
development package.  Fortunately, (Sept 94) I finally got my hands on one of
these units and wrote a simple program called MOTOROLA.BAS which will allow
you to send the needed initialization and NMEA timing commands.  THis program
will also generate the command to take the OEM card out of its default BINARY
format, and place into NMEA format.

     An automatic vehicle tracking system can be assembled by simply
connecting the RS-232 output from one of these programmable GPS's directly
into the TNC, setting the periodicity to 1 minute or so and selecting only
the RMC or GGA/VTG sentences to be output.  The TNC must be placed in UNPROTO
CONVERSE, and from then on, every minute a GPS position report will be
transmitted.  The APRS software will decode the raw NMEA position reports
and plot the station on the map!

MAGELAN CARD OPTIONS:   The $60 development kit with this card consisted of
PC setup software, technical manual, a wall power supply, RS-232 cable, Power
switch, and short SMB to TNC adapter cable.  Their external "egg" antenna
cost $130 with built-in LNA for operation through either 18 ft of cable.  They
also offered a $60 passive antenna with its own 6 inch SMB pigtail.  This
antenna is a 1x1x3 inch weather proof antenna like you see on their handheld
GPS units.   Since the circuit card has no display, it can actually be mounted
in a weather proof container right at the antenna.  Only 12 volts and RS-232
need to come down inside your vehicle.  I use the card in the 2D mode for
better fixes, and besides, the MAGELAN cannot output an altitude above 999
meters except in a propriatery NMEA sentence which is not included in APRS.

GPS ENGINE SET UP:  Follow all manufacturer instructions for initializing your
GPS engine using your PC and their setup program.  After the system is running
and producing fixes, send commands to enable GGA/VTG or RMC data between
30 to 120 seconds using the following commands:

MAGELAN COMMANDS:
$PMGLI,00,B00,7,A  (for GGA GPS position only)       Where 6 = 30 Secs
$PMGLI,00,B01,7,A  (for GLL LORAN position only)           7 = 1 Minute
$PMGLI,00,EOO,7,A  (for course and speed with either)      8 = 2 Minutes
                                                           9 = 5 minutes

     Each line must end with a carriage return-linefeed.  The GPS engine
gives no responses to commands, other than doing what it is commanded.  You
might try a value of 5 which is once every 10 seconds as a test to be sure
the GPS card is recognizing your commands.  The commands for the MOTOROLA
card are similar, but MUST have the proper checksum:

MOTOROLA COMMANDS:
$PMOTG,GGA,0030*csCRLF (sets up GGA once every 30 secs)
$PMOTG,RMC,0060*csCRLF (sets up RMC once every 60 secs etc..)

BATTERY BACKUP:  Be sure to add the battery back up supply so that the card
can be turned off without having to re-initialize every time.  Each of the
cards has a connection for a 3.6 volt battery.  I use 3 AA cells soldered
together.   DO NOT EXCEED 5 VOLTS!

TNC SETUP DETAILS:  If your OEM card does NOT output the RMC sentence, (such
as the Magelan), and you want course and speed, you must use the GGA and also
the VTG sentence.  These two sentences are separated by enough time that the
TNC usually generates two packets, one right after the other.  This is a
problem if a digipeater path is used, because the digipeater will begin
digipeating the first position fix packet and cover up the trailing velocity
packet.  To solve this problem, (not needed for balloons which dont need
digipeaters), the sending TNC needs to be instructed to send packets not on
receipt of every carriage return, but on a timing function.  Set CPACTIME ON
and change the SENDPACK character from $0D to anything else (say $01).  This
way, both the position fix and velocity lines will be sent together in the
same packet one second after the last character is received from the GPS.
This packet, containing two frames, will then be digipeated all together by
the digipeater with no break in between.  If you use the Motorola card,
with the RMC sentence, this double packet problem does not exist.

LINEFEEDS and FLOW CONTROL:  Since the GPS is sending each line with a CR/LF
on the end, your TNC will always end up placing the superfluous linefeed at
the beginnning of the next packet.  To defeat linefeeds, set LFIGNORE on.
(for the non-standard TNC products, try the Linefeed Supress, LFS ON)
Similarly, your terminal program must send CR-LF on each command to the GPS
card.  When you try to talk to your TNC with CR-LF, you will experience a
lockup condition since the extra LF will look to the TNC like the beginning
of a new command line and will hold off all TNC output.  To overcome  this
problem, set FLOW OFF.  Here are the commands which must be changed from
factory defaults for most TAPR-2 TNC's:

  ECHO OFF,  FLOW OFF,  LFIGNORE ON,  CPACTIME ON, SENDPAC $01

(Remember that you have SENDPAC set to $01, and change it back to $0d for
normal packet operations!   I was pulling my hair out while driving through
Knoxville and trying to connect to the local node.  It would ignore all of my
node commands as if I was personna-non-grata!  I finally realized it didn't
like the $01's being imbedded in my packets!)

UNPROTO-CONVERSE-MODE:   And now for the last problem; keeping the TNC in
converse mode.  TNC's always default to command mode when turned on.  Until
the manufacturers put an UNSTART command in their TNC to cause it to power up
in Unproto-Converse, you must either keep the TNC permanently turned on after
setting converse mode, carry along a terminal to issue the CONV command, or
try to make a firmware patch to the TNC code.  Transparent mode could be
used, but the monitor function does not work in transparent mode and the TNC
can not then be used for receiving APRS packets.  Fortunately, Howie
Goldstein who wrote the original TAPR-2 code, identified a software patch to
the DRSI version of the ROM that will power up in UNPROTO converse.  This ROM
should work in most TAPR-2 clones.  I have used it in the MFJ-1274, and it
should easily work in the PACCOM Tiny-2.  I have asked DRSI to make this ROM
available to amateurs at a nominal cost.  Their price is $27.  This ROM does
not preclude any other TNC functions.  If you hit ctrl-c you get instantly
to command mode for normal operations.  PROCOMM has now also included a
command called UIMODE ON in their version 3.2 ROM, which can be used to force
the TNC into UNPROTO-CONVERSE on power up.

DUMB TERMINAL SETUP:  So I can see the command that I am typing into the GPS
card, I configure my terminal device as half duplex.  The GPS also needs the
CR/LF sequence at the end of each command, so I set the terminal to translate
CR to the CR/LF sequence.  In order to use the same terminal with the TNC,
then, that is why I turn ECHO and FLOW off in the TNC.  My GPS/TNC box has
one DB-9 serial connector and two switches to select whether the terminal is
talking to the GPS or the TNC, and the second switch to enable the data
output from the GPS to go into the TNC after all configuration is complete.

SYMBOLS:  APRS has more than 40 different symbols for packet stations or
objects placed on the map.  Since a simple TNC/GPS tracking combo does not
have the advantage of a PC running APRS to format the APRS position report,
I have made two methods to permit the TNC alone to designate the desired
display symbol.  First, when APRS receives a raw NMEA position report over
the air, it first checks the SSID of the callsign.  If it matches any of the
default SSID's shown belwo it will use that symbol.  Secondly, any of
the APRS symbol designation characters can be placed at the beginning of the
TNC BText surrounded by {} braces.  Once the BText with that symbol is
received, the station will then appear with the proper display symbol.  See
the SYMBOLS.txt file for details.

    SSID     SYMBOL                    SEE SYMBOLS.txt for other SYMBOLS
    ----     --------------
    -4       BIKE
    -5       YACHT (sail)
    -6       HELO
    -7       AIRCRAFT
    -8       SHIP (boat)
    -9       CAR
    -10      SPACE
    -11      BALLOON

OPERATION:  With the special UNPROTO start-up ROM, and after initialiation
the other TNC parameters once, all future tracking evolutions are initiated
by simly applying power to the GPS/TNC/Radio.  In over 6 months of daily
operation, I have never had to re-initialize the GPS engine.  Without the
special ROM, however, every tracking evolution would require applying power,
turning on a dumb terminal, and sending the TNC the CONV command.  Then the
terminal can be removed or turned off until the next power up.  If you do not
have the UNSTART ROMS, be careful if you use a battery supply of C or D cells
with spring loaded battery holder!  A bicycle equipped with this system reset
the TNC after hitting the first bump, and there was never time to stop and
reset the TNC until the race was over.  This shows the problem of the TNC not
having a power up CONVERSE mode in it!

We have assembled a nmumber of these GPS/PACKET tracking devices.  In fact,
the small OEM cards can be included within some of the larger TNC enclosures.
THen add two switches to the front panel to select whether the external
terminal device is talking to the GPS or TNC, and to enable or disable GPS
packet reporting.  Other smaller packages have been made using the PACCOM and
DRSI TNC's and the TTL only model of the OEM cards, but I shy away from this
card for the casual experimenter because of the absence of any data or power
supply buffering.  One wiring error or static charge and you have blown a
$395 card!

MOST OF THIS TEXT AND THE HOOK-UP SCHEMATICS WERE PUBLISHED
IN THE FEB 94 ISSUE OF QEX.


CONCLUSION:  With the cost of GPS OEM cards falling below $299 in the summer
of 94 and handhelds falling below $399, there is every reason to begin
considering GPS applications in Amateur Radio.  At your next club budget
meeting, instead of throwing another $400 at the repeater monster, buy the
components to build a GPS/TNC tracking device in to a cigar box size package.
Then at all future public service events, you have a package with whip
antenna on top that can be duck-taped to the top of any vehicle for automatic
vehicle tracking.  Let your imagination roam!


OTHER EXPERTS OR APRS USERS THAT HAVE GPS INTERFACES RUNNING:

WB4APR Bob Bruninga. Annapolis. Built 4 GPS/TNC devices and 22 SATNAV/TRANSIT
W3IWI  Tom Clark. AMSAT GURU working on GPS for Satellites. Uses Motorola
N3MNT  Bob Boltz. Annapolis MD. Has MAGELAN GPS/TNC mobile
W8RIK  Joe Hussy. Columbus OH is GPS/TNC mobile
N6JSX  Dale Kubicheck Works at MAGELAN! San Dimas, CA
W1BEL  Gwyn Reedy. Tampa. PACCOM makes commercial TNC/GPS automatic combo
W9LZQ  Kent Helman, Onalaska WI. Built GPS-TNC interface & Did map of WI!
W1KRU  Jim Warakouis. WestRoxbury MA. Built GPS-TNC interface
WB6LPG Bill Bliss. HalfMoonBay CA. Has LORAN (and now GPS mobile)
N5SSY  Ross Mocklin.  NewOrelans LA. Has MAGELAN cards on order...
KD1E   John Moore. GPS mobile at GM Proving Ground. @ N8NNN.#SEMI.MI
...
A total of 20 APRS/GPS mobiles were tracked in-and-around DAYTON, 1994!




DIFFERENTIAL CORRECTION

Tom Clark (W3IWI) has installed a Differential GPS xmtr in the Wash DC area
transmitting 30 second DGPS data on the APRS freq.  APRS GPS mobiles can now
obtain accuracies to 5 meters or so.  We are pleased to report that the RTCM-
104 format works perfectly well with APRS and with TNC's:

*  The GPS rcvrs seem to ignore the packet headers and act on the RTCM data
*  The RTCM gybrish is all printable ASCII and does not garble APRS screens

Although this is an excellent demonstration and there are surely HAM
applications that can take advantage of the DGPS accuracy, APRS is probably
not one of them.  First, APRS is not concerned with NAVIGATION accuracy,
because  a) no maps are that accurate (with DGPS you can make 'em so!), and
b) the purpose of APRS is to inform others of mobile locations over a wide VHF
area, NOT to the nearest 15 feet.  (APRS formats do maintain positions to 60
foot precision)  Secondly, A mature APRS net involved in a special event or
activity, can probably NOT handle the QRM from 30 second RTCM transmissions.
In the long term, the DGPS data should probably be transmitted MORE OFTEN and
on another frequency, OR be remotely controlled such that it can be requested
by a mobile user on demand, but silenced most of the time.  Transmitting less
often is meaningless due to latency of the data.  The only application of DGPS
that I can think of is to keep track of golfcarts at a hamfest, and be able
to see who's booth they are at.  I will probably incorporate a ?RTCM? format
in APRS to permit stations to request DGPS data.

I am not negative about this at all, I am only pointing out that there is NO
need for you to feel that you need to rush out and implement a DGPS system
in your area for APRS.

DGPS TRANSMITTER SET UP:  Set your TNC to transmit TO DGPS instead of the
usual TO APRS and set up whatever UNPROTO path is desired to cover the area.
Then enter the location of the DGPS transmitter into the TNC BText in the
usual format making sure to use the special (.) symbol in the symbol field:

  BT !3859.11N/07629.11W.RTCM transmitter operated by TOM W3IWI...

The symbol designation character is the period (.) following the W for WEST.
All after that is free text.  APRS will flash a DGPS flag on the screen each
time it hears a DGPS transmission, but will not add the station to the L or
P-Lists unless it also sees the (.) symbol in the position report.  Set your
beacon to every half hour or so.  Finally, set your TNC into CONVERSE and
tell your RTCM-104 DGPS receiver to output once every 30 seconds.

See the new HSP mode schematic above where I added the interface wire between
your TNC and GPS for automatic DGPS operations.

CONFIGURING FOR DGPS:  There are two options for routing the DGPS data from
your TNC to your GPS unit:  1) For ANY arrangement: run an external wire from
your TNC RXD data output over to your GPS DGPS data input.  2) For dual port
operations only:  connect your GPS DGPS input to the PC serial port TXD line
and select DGPS from the SETUP menu in order to enable DGPS data output from
APRS.  NOTE that there was a bug in APRS, and this did not work until 5.00.
CAUTION:  This will not work if you are operating in the SPM or HSP modes or
if you are using the same serial port TXD output as a source of -V bias for
the NMEA conversion as suggested in the above paragraphs.

