[aprssig] Re: GPS/PC/D7A

Stephen H. Smith wa8lmf2 at aol.com
Fri Feb 23 18:53:09 EST 2007


jdv at iglou.com wrote:
> A split cable may be the best way to go about this.
>
> I hooked the D7a w/GPS up to my laptop and ran HyperTerminal.
> With the D7a in packet mode I could see packets from the local APRS
> network but no GPS sentences.
> With the D7a in APRS mode I could not see any data from the D7 at all
> in Hyperterminal.

This is normal.  The whole point of "APRS" mode vs "PACKET" mode is that 
APRS mode is self-contained.  In APRS mode the D700 or TH-D7 operates 
stand-alone. Received APRS packets are processed and decoded by internal 
firmware and displayed on the radio's own screen.   Data is NOT sent out 
the serial port.

In PACKET mode, the radio does nothing to interpret or decode the 
received data. It just passes it as-is out the serial port to an 
external device (computer, ASCII terminal, etc)  that does the "heavy 
lifting" of processing and displaying the data.    

>
> In UI-View there is a file of initialization cmds that get sent to the 
> D7a when it is run as a TNC. One of these is: "GPSTEXT $GPRMC".
>
>
>

In PACKET mode, an added feature of the D700/TH-D7 is that they can echo 
GPS data received on the dedicated GPS port out the main serial port, 
along with received data.  [This allows you to use only one serial port 
instead of two (one for RX data and one for GPS) on the PC. Most APRS 
software knows how to separate RX data from GPS data when mixed 
together. ]  The GPS pass-through feature is very limited.  Only one of 
the several "sentences" output every second by the typical GPS can be 
captured and forwarded out the main serial port.  The GPSTEXT command 
determines which one of these sentences is forwarded.   The sentence 
selected will determine whether your transmitted beacons contain 
altitude information or speed/heading information (you can't have 
both).  See below for more detailed discussion of this issue.

The Kenwoods won't start echoing the GPS data until they receive the 
command "LTMON x"   from your terminal or program.  ( x is the number of 
seconds between updates - the default is "0" which means never)




Standard NMEA-compatible GPS devices automatically output a variety of 
GPS "sentences" , typically once every second.  Each sentence contains 
several fields of data and look something like this when viewed on a 
simple ASCII serial terminal:

$GPVTG,092.2,T,078.3,M,000.2,N,0000.3,K,A*17

$GPDTM,W84,,00.0000,N,00.0000,W,,W84*53

$GPRMC,091635,A,3409.8692,N,11807.0045,W,000.2,092.2,140503,013.9,E,A*07

$GPZDA,091637,14,05,2003,+08,00*60

$GPDTM,W84,,00.0000,N,00.0000,W,,W84*53

$GPGLL,3409.8688,N,11807.0045,W,091636,A,A*50

$GPGSA,A,2,27,28,,,,,,,,,,,00.00,07.83,00.00*30

$GPGSV,3,1,12,07,41,198,29,08,68,060,39,10,05,254,27,11,18,088,39*7A

$GPGSV,3,2,12,13,09,163,29,19,11,117,31,22,07,067,31,26,21,316,29*7E

[ These strings were captured, using HyperTerminal,  from a GPS sitting 
on a table in my living room in Pasadena, California. ]

These strings will be identical for any NMEA Ver 2.x GPS device.  The 
data fields are separated by commas making it easy to write programs to 
pick off the desired pieces of data. 

The most commonly used GPS Data Sentences, and the data they contain, 
are [ Full details on the structure of these strings is at the bottom of 
this post ] :

=== GPRMC   (Time, Lat, Long, Speed, MagVar) 

=== GPGLL   ( Lat, Long, Time)

=== GPGGA   (Time, Lat, Long, GPS Valid, Number of Sats Used, HDOP, 
Altitude) 

=== GPGSV   (Satellite Status)

=== GPZDA   (Time, Date)

==== GPVTG   (Compass, Ground Course Velocity)

Assuming your GPS device actually outputs GPRMC, GPGLL and GPGGA (in 
some units each sentence has to be turned on or off in a setup menu) the 
results will be:

1)  When the US version D7A(G) or any D700 is used in standalone 'APRS" 
mode, the compressed Mic-E transmission format will contain altitude IF 
the GPS outputs the GPGGA string.   

The Euro versions of the THD7 don't encode altitude, even if altitude IS 
present in the GPS data stream.  Note that you can shorten the Mic-E 
burst (useful for posit-after-voice operation) by  turning off the GGA 
string in the GPS device so the comment field doesn't get filled with 
altitude data.
 
2)  When the D7/D700 are used in "PACKET" mode with an external program, 
the internal firmware can echo ONE selected string of your choice 
received at the GPS input out the main serial port connected to the 
PC.    The command GPSTEXT sent to the D7/D700 internal TNC determines 
which one (and only one) GPS string is captured and forwarded to the PC 
each second. ( Use a basic terminal program like Hyperterminal set to 
9600baud 8-N-1 connected to the radio's main serial port to send this 
command, and to view the results.)

( You can see and/or alter this command in the .CMD  TNC initialization 
file for the THD7 or D700 in UI-View. )

If you initialize with "GPSTEXT $GPGGA" the APRS program on the PC  will 
be able to "see" (and therefore transmit) LAT, LONG, TIME and ALTITUDE 
but not speed and heading.

If you initialize with "GPSTEXT $GPRMC" the APRS program on the PC will 
be able to see LAT, LONG, TIME and SPEED. but not altitude.

If you initialize with "GPSTEXT $GPGLL" the APRS program on the PC will 
be able to see LAT, LONG, and TIME but nothing else.

3)  If you connect the GPS device directly to the PC through a second 
serial port (i.e. not using the Kenwood pass-through feature)  --AND-- 
your PC-based APRS software knows how to  parse and extract data from 
multiple GPS sentences simultaneously and then format this data into 
APRS format, then you could transmit  LAT, LONG, SPEED, HEADING and 
ALTITUDE at the same time.

======================================================


Details on the GPS Data Sentences:

Note 1: Lat and long are always expressed as Degrees, Minutes and 
decimal fractions of minutes, --NOT-- as Degrees, Minutes and Seconds.  
There is no delimiter between the degrees and minutes but there IS a 
decimal between the whole and fractional part of minutes.  Resulting 
data  is formatted as DDMM.mmm   -- not DDMMSS

Note 2: Lat and long are not signed; a separate field indicates N/S or 
E/W. 

Note 3:  NMEA 3.0 format has added additional decimal places to the 
lat/long values for higher resolution.  Software that parses by counting 
character positions from the beginning of the string (i.e. BASIC MID$ 
functions instead of correctly using the comma delimiters) may not work 
correctly with NMEA 3.0 format.

 GPGLL   ( Lat - Long - Time)

$GPGLL,  LLLL.lll, N, LLLLL.lll, W, HHMMSS.ss, *CS

Fields:
1 - Latitude
2 - North/South
3 - Longitude
4 - East/West
5 - UTC (HoursMinsSecs.secs)
6 - Checksum

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

GPRMC   (Time Lat Long, Speed, MagVar)  Always one per second

$GPRMC, HHMMSS.ss, A, LLLL.lll, N,LLLLL.lll, W, KK.k, HHH.h, DDMMYY
-------------------------------------------------------------------------------

GPGGA   (Time - Lat -Long - GPS Valid - Number of Sats Used, HDOP, 
Altitude)  Always one per second

$GPGGA, HHMMSS, ss, llll.lll, N, LLLLL.LLL, W, 1, NN, 1.7, AA.a, M, 
-A.a, , , *CS

Fields
1 - UTC (HoursMinsSecs.secs)
2 - Latitude in DD MM.mm format
3 - North/South
4 - Longitude in DDD MM.mm format
5 - East/West
6 - GPS Fix  Valid=1, Invalid=0
7 - Number of Sats in Use
8 - HDOP (One is Best, 10 is Worst)
9 - Altitude
10 - Units M=Meters, F=Feet
11 - Geoidal Sep
12 - Geoidal Units M=Meters, F=Feet
13 - Time Since Last DGPS Update Data (Not Used)
14 - Diff Corr Station ID#  (Not Used)
15 - Checksum

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


GPGSV   (Satellite Status)  There will be between one and three of these 
sentences depending on the number of satellites being received currently.

$GPGSV, N, N, NN, 01, Ele1, Azi1, SN1, 02, Ele2, Azi2, SN2, 03, Ele3, 
Azi3, SN3, 04, Ele4, Azi4, SN4, *CS

Fields:
1 - Number of GPGSV Messages
2 - GPGSV Message Number
3 - Number of Sats in View (i.e. determines number of GPGSV messages)

4 - 1st Sat Num
5 - 1st Sat Elevation In Degs (Rounded to integer)
6 - 1st Sat Azimuth in Degs (Rounded to integer)
7 - 1st Sat SNR 00-99 dB, blank when not tracking sat

8 - 2nd Sat Number
9 - 2nd Sat Elevation In Degs (Rounded to integer)
10 - 2nd Sat Azimuth in Degs (Rounded to integer)
11 - 2nd Sat SNR 00-99 dB, blank when not tracking sat

12 - 3rd Sat Number
13 - 3rd Sat Elevation In Degs (Rounded to integer)
14 - 3rd Sat Azimuth in Degs (Rounded to integer)
15 - 3rd Sat SNR 00-99 dB, blank when not tracking sat

16 - 4th Sat Number
17 - 4th Sat Elevation In Degs (Rounded to integer)
18 - 4th Sat Azimuth in Degs (Rounded to integer)
19 - 4th Sat SNR 00-99 dB, blank when not tracking sat
20 - Checksum



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

GPZDA   (Time Date)

$GPZDA, HHMMSS, DD, MM, YY, *CS
1 - UTC Hours, Mins, Secs
2 - Day
3 - Month
4 - Year
5 - Checksum

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

GPVTG   (Compass, Ground Course Velocity)

$GPVTG,  DDD.dd, T, DDD.dd, M, NNN.n, M, NNN.n, K, *CS
1 - Heading (True)
2 - TRUE "T"
3 - Heading (Magnetic)
4 - Magnetic "M"
5 - Speed Knots or Mph
6 - Units  ("N" or "M")
7 - Speed KM/h
8 - Units ("K")
9 - Checksum







--

Stephen H. Smith    wa8lmf (at) aol.com
EchoLink Node:      14400    [Think bottom of the 2M band]
Home Page:          http://wa8lmf.com  --OR--   http://wa8lmf.net

NEW!   TNC Test CD
  http://wa8lmf.net/TNCtest

JavAPRS Filter Port 14580 Guide
  http://wa8lmf.net/aprs/JAVaprsFilters.htm

"APRS 101"  Explanation of APRS Path Selection & Digipeating
  http://wa8lmf.net/DigiPaths

Updated "Rev G" APRS            http://wa8lmf.net/aprs
Symbols Set for UI-View,
UIpoint and APRSplus:













More information about the aprssig mailing list