[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