Professional Documents
Culture Documents
TECHNICAL
SPECIFICATIONS
190-00228-21, Revision A
July 2005
© 2005 Garmin Ltd. or its subsidiaries
Garmin International, Inc.
1200 East 151st Street, Olathe, Kansas 66062, U.S.A.
Tel. 913/397.8200 or 800/800.1020
Fax 913/397.8282
Garmin (Europe) Ltd.
Unit 5, The Quadrangle, Abbey Park Industrial Estate, Romsey, SO51 9DL, U.K.
Tel. 44/0870.8501241
Fax 44/0870.8501251
Garmin Corporation
No. 68, Jangshu 2nd Road, Shijr, Taipei County, Taiwan
Tel. 886/2.2642.9199
Fax 886/2.2642.9099
All rights reserved. Except as expressly provided herein, no part of this manual may be reproduced, copied,
transmitted, disseminated, downloaded, or stored in any storage medium, for any purpose without the express prior
written consent of Garmin. Garmin hereby grants permission to download a single copy of this manual onto a hard
drive or other electronic storage medium to be viewed and to print one copy of this manual or of any revision hereto,
provided that such electronic or printed copy of this manual must contain the complete text of this copyright notice
and provided further that any unauthorized commercial distribution of this manual or any revision hereto is strictly
prohibited.
Information in this document is subject to change without notice. Garmin reserves the right to change or improve its
products and to make changes in the content without obligation to notify any person or organization of such changes
or improvements. Visit the Garmin Web site (www.garmin.com) for current updates and supplemental information
concerning the use and operation of this and other Garmin products.
Garmin®, AutoLocate®, and MapSource® are registered trademarks and WAAS Enabled™ is trademark of Garmin
Ltd. or its subsidiaries and may not be used without the express permission of Garmin.
Web site address: www.garmin.com
RECORD OF REVISIONS
Revision
Revision Description ECO #
Date
A 7/8/05 Initial Release --
4 Software Interface........................................................................................12
4.1 Received NMEA 0183 Sentences ...................................................................................................12
4.1.1 Almanac Information (ALM) ..............................................................................................12
4.1.2 Sensor Initialization Information (PGRMI) .........................................................................13
4.1.3 Sensor Configuration Information (PGRMC)......................................................................13
4.1.4 Additional Sensor Configuration Information (PGRMC1)..................................................14
4.1.5 Output Sentence Enable/Disable (PGRMO)........................................................................14
4.1.6 Tune DGPS Beacon Receiver (PSLIB) ...............................................................................15
4.2 Transmitted NMEA 0183 Sentences ...............................................................................................15
4.2.1 Sentence Transmission Rate ................................................................................................15
1.1 Caution
The GPS system is operated by the government of the United States, which is solely responsible for its accuracy and
maintenance. Although the GPS 16/17 is a precision electronic NAVigation AID (NAVAID), any NAVAID can be
misused or misinterpreted, and therefore become unsafe. Use these products at your own risk. To reduce the risk,
carefully review and understand all aspects of these Technical Specifications before using the GPS 16/17. When in
actual use, carefully compare indications from the GPS to all available navigation sources including the information
from other NAVAIDs, visual sightings, charts, etc. For safety, always resolve any discrepancies before continuing
navigation.
1.5 Features
• 12-channel GPS receiver tracks and uses up to 12 satellites for fast, accurate positioning and low power
consumption.
• Differential DGPS capability using real-time WAAS or RTCM corrections yielding 3 to 5 meter position
accuracy (see Section 1.7 Technical Specifications).
• Compact, rugged design ideal for applications with minimal space.
• May be remotely mounted in an out-of-the-way location.
• Receiver position information can be displayed directly on a chartplotter or PC.
• User initialization is not required. Once the unit is installed and has established a location fix, the unit
automatically produces navigation data.
• User-configurable navigation mode (2-dimensional or 3-dimensional fix).
• Highly accurate one-pulse-per-second (PPS) output for precise timing measurements. Pulse width is
configurable in 20 millisecond increments from 20 ms to 980 ms with 1 µs accuracy.
• Configurable for binary format carrier phase data output on COM 1 port.
• Flexible input voltage levels of 3.3 VDC to 6.0 VDC with over-voltage protection in the GPS 16LVS, and
8.0 VDC to 40 VDC in the GPS 16HVS and GPS 17HVS.
• FLASH-based program and non-volatile memory. New software revisions available through Web site
download. Non-volatile memory does not require battery backup.
• Waterproof design allows continuous exposure to the prevailing weather conditions at most locations.
• GPS 17HVS can be flush mounted or pole mounted on the enclosed 1” marine mast mount.
1.7.1.2 Weight
• GPS 16LVS & 16HVS only: 6.4 oz (181 g)
• GPS 16LVS & 16HVS with 5-meter cable: 11.7 oz (332 g)
• GPS 16LVS & 16HVS cable alone: 5.3 oz (151 g)
• GPS 17HVS only: 7.1 oz (201 g)
• GPS 17HVS with 30-foot cable: 16.8 oz (465 g)
• GPS 17HVS with pole mount adapter & cable: 18.2 oz (516 g)
• GPS 17HVS pole mount adapter alone: 1.4 oz (40 g)
• GPS 17HVS cable alone: 9.7 oz (275 g)
1.7.1.3 Cable
• GPS 16LVS & 16HVS: Black PVC-jacketed, 5-meter, foil-shielded, 8-conductor 28 AWG with RJ-45 termination
• GPS 17HVS: White PVC-jacketed, 30-foot, foil-shielded, 8-conductor 28 AWG with JST connector termination
1.7.1.4 Color
• GPS 16LVS & 16HVS: Black with white logos
• GPS 17HVS: White with blue logos
1.7.4.4 Accuracy
• GPS Standard Positioning Service (SPS)
Position: <15 meters, 95% typical (100 meters with Selective Availability on)
Velocity: 0.1 knot RMS steady state
• DGPS (USCG/RTCM)
Position: 3–5 meters, 95% typical
Velocity: 0.1 knot RMS steady state
• DGPS (WAAS)
Position: <3 meters, 95% typical
Velocity: 0.1 knot RMS steady state
• PPS Time: ±1 microsecond at rising edge of PPS pulse (subject to Selective Availability)
• Dynamics: 999 knots velocity (only limited at altitude greater than 60,000 feet), 6g dynamics
1.7.5 Interfaces
• True RS-232 output, asynchronous serial input compatible with RS-232 or TTL voltage levels, RS-232 polarity.
• User selectable baud rate: 300, 600, 1200, 2400, 4800, 9600, 19200, or 38400.
1.7.5.1 Port 1
• Configurable between NMEA 0183 Versions 2.00 and 3.00
• ASCII output sentences GPALM, GPGGA, GPGLL, GPGSA, GPGSV, GPRMC, GPVTG (NMEA-approved
sentences); PGRMB, PGRME, PGRMF, PGRMM, PGRMT, and PGRMV (Garmin proprietary sentences)
• NMEA 0183 Outputs (see Section 4.2 Transmitted NMEA 0183 Sentences for full protocol specifications)
Position, velocity, and time
Receiver and satellite status
Differential Reference Station ID and RTCM Data age
Geometry and error estimates
• NMEA 0183 Inputs (see Section 4.1 Received NMEA 0183 Sentences for full protocol specifications)
Initial position, date, and time (not required)
Earth datum and differential mode configuration command, PPS Enable, GPS satellite almanac
• Configurable for binary data output including GPS carrier phase data
1.7.5.2 Port 2
Real-time Differential Correction input (RTCM SC-104 message types 1, 2, 3, 7, and 9)
1.7.5.3 PPS
1 Hz pulse, programmable width, 1 µs accuracy
M4 Thread
120 Degrees
M4 Thread
Magnetic Mount
The maximum number of fields allowed in a single sentence is 82 characters including delimiters. Values in the
table include the sentence start delimiter character “$” and the termination delimiter <CR><LF>. The factory set
defaults will result in a once-per-second transmission at the NMEA 0183 specification transmission rate of 4800
baud.
Regardless of the selected baud rate, the information transmitted by the GPS sensor is referenced to the one-pulse-
per-second output pulse immediately preceding the GPRMC sentence, or whichever sentence is output first in the
burst (see Table 2 above).
190-00228-21 GPS 16/17 Technical Specifications Rev. A
Page 15
4.2.2 Transmitted Time
The GPS sensor outputs UTC (Coordinated Universal Time) date and time of day in the transmitted sentences.
Before the initial position fix, the on-board clock provides the date and time of day. After the initial position fix, the
date and time of day are calculated using GPS satellite information and are synchronized with the one-pulse-per-
second output.
The GPS sensor uses information obtained from the GPS satellites to add or delete UTC leap seconds and correct the
transmitted date and time of day. The transmitted date and time of day for leap second correction follow the
guidelines in National Institute of Standards and Technology Special Publication 432 (Revised 1990). This
document is for sale by the Superintendent of Documents, U.S. Government Printing Office, Washington, D.C.,
20402, U.S.A.
When a positive leap second is required, one second is inserted at the beginning of the first hour (0h 0m 0s) of the
day that the positive leap is occurring. The minute containing the leap second is 61 seconds long. The GPS sensor
would have transmitted this information for the leap second added December 31, 1998 as follows:
$GPRMC,235959,A,3851.3651,N,09447.9382,W,000.0,221.9,071103,003.3,E*69
$GPRMC,000000,A,3851.3651,N,09447.9382,W,000.0,221.9,081103,003.3,E*67
$GPRMC,000000,A,3851.3651,N,09447.9382,W,000.0,221.9,081103,003.3,E*67
$GPRMC,000001,A,3851.3651,N,09447.9382,W,000.0,221.9,081103,003.3,E*66
If a negative leap second should be required, one second will be deleted at the end of some UTC month. The minute
containing the leap second will be only 59 seconds long. In this case, the GPS sensor will not transmit the time of
day 0h 0m 0s (the “zero” second) for the day from which the leap second is removed.
$GPRMC,235959,A,3851.3650,N,09447.9373,W,000.0,000.0,111103,003.3,E*69
$GPRMC,000001,A,3851.3650,N,09447.9373,W,000.0,000.0,121103,003.3,E*6A
$GPRMC,000002,A,3851.3650,N,09447.9373,W,000.0,000.0,121103,003.3,E*69
Position Record
- 0x10 (DLE is first byte)
- 0x33 (Position record identifier)
- 0x40 (Size of data)
- cpo_pvt_data (See description below)
- one-byte checksum (The addition of bytes between the delimiters should equal 0)
- 0x10 (DLE)
- 0x03 (ETX is last byte)
typedef struct
{
float alt;
float epe;
float eph;
float epv;
int fix;
double gps_tow;
double lat;
double lon;
float lon_vel;
float lat_vel;
float alt_vel;
float msl_hght;
int leap_sec;
long grmn_days;
} cpo_pvt_data;
typedef struct
{
unsigned long cycles;
double pr;
unsigned int phase;
char slp_dtct;
unsigned char snr_dbhz;
char svid;
char valid;
} cpo_rcv_sv_data;
typedef struct
{
double rcvr_tow;
int rcvr_wn;
cpo_rcv_sv_data sv[ 12 ];
} cpo_rcv_data;
.
.
.
if ( rx_state == DAT )
{
if ( data == DLE_BYTE )
{
rx_state = DLE;
}
else
{
in_que[ in_que_ptr++ ] = data;
}
}
else if ( rx_state == DLE )
{
if ( data == ETX_BYTE )
{
rx_state = ETX;
}
else
{
rx_state = DAT;
in_que[ in_que_ptr++ ] = data;
}
}
else if ( rx_state == ETX )
{
if ( data == DLE_BYTE )
{
rx_state = DLE;
}
}
Synopsis
This section describes, using an example, how to download ephemeris information from a Garmin 15, 16, 17 or 18
family GPS unit with the exception of the GPS 15-W and the GPS 15-F.
The DLE (0x10) is a delimiter byte used in conjunction with the ETX byte to determine beginning and ending of a
packet. However, a 0x10 could appear in the data itself; if this occurs, the byte is escaped with another DLE byte
(sometimes referred to as DLE stuffing). In other words, if a DLE occurs in the data, another DLE is transmitted
immediately after to indicate that it is a data byte and it is not being used as a delimiter. Note that the size byte of the
packet does not count the second DLE byte in an escaped DLE pair in the data field. Since a DLE that is a part of
the data will have a second DLE to escape it, a single DLE followed by an ETX byte means that the end of a packet
has been reached.
In order to interpret these packets properly, one must remove the escaped DLE bytes. This can be achieved using an
algorithm similar to the Sample C Code fragment on the previous page.
Send a packet containing the command that requests ephemeris data (IOP_DOWN_LOAD_EPH). The packet should
look like this:
TX Packet: Ephemeris Data Request
Byte Description Name HEX Value
Delimiter DLE 0x10
Command Data ID IOP_CMND_DATA 0x0A
Number of bytes in data SIZE 0x02
Request to D/L ephemeris IOP_DOWN_LOAD_EPH 0x5D
Pad to 2 bytes DATA 0x00
Checksum calculation CHKSUM 0x97*
Delimiter DLE 0x10
End ETX 0x03
* From now on, checksum calculation will not be shown for every packet example
The unit will return an acknowledgement packet that will look like this:
RX Packet: Acknowledgement
Byte Description Name HEX Value
Delimiter DLE 0x10
Acknowledgement ID IOP_ACK_BYTE 0x06
Number of bytes in data SIZE 0x02
Request to D/L ephemeris IOP_CMND_DATA 0x0A
Pad DATA 0x00
Checksum calculation CHKSUM ----
Delimiter DLE 0x10
End of packet ETX 0x03
Then, the unit will immediately send a packet communicating how many data packets to expect for the ephemeris
download (a maximum of twelve):
RX Packet: Number of Data Packets to Expect
Byte Description Name HEX Value
Delimiter DLE 0x10
Record ID IOP_RECORDS 0x1B
Number of bytes in data SIZE 0x02
Number of records NUM_SV 0x0C
Pad DATA 0x00
Checksum calculation CHKSUM ----
Delimiter DLE 0x10
End of packet ETX 0x03
This packet requires acknowledgement, as shown below (note that the data field contains the IOP_RECORDS ID to
indicate the acknowledgement of the IOP_RECORDS packet):
TX Packet: Acknowledgement
Byte Description Name HEX Value
Delimiter DLE 0x10
Record ID IOP_ACK_BYTE 0x06
Number of bytes in data SIZE 0x02
Pad DATA 0x00
ID of packet being ACK’d IOP_RECORDS 0x1B
Checksum calculation CHKSUM ----
Delimiter DLE 0x10
End of packet ETX 0x03
The data portion of each packet can then be parsed into an instance of the following structure. Each of these
structures represents data from a single satellite.
cnvt_ieee_double((long *)&m_TempArray[IDX_EPH_E]);
pTemp->EphStruct.e = *(double*)&m_TempArray[IDX_EPH_E];
cnvt_ieee_double((long *)&m_TempArray[IDX_EPH_SQRTA]);
pTemp->EphStruct.sqrta = *(double*)&m_TempArray[IDX_EPH_SQRTA];
cnvt_ieee_double((long *)&m_TempArray[IDX_EPH_DN]);
pTemp->EphStruct.dn = *(double*)&m_TempArray[IDX_EPH_DN];
cnvt_ieee_double((long *)&m_TempArray[IDX_EPH_M0]);
pTemp->EphStruct.m0 = *(double*)&m_TempArray[IDX_EPH_M0];
cnvt_ieee_double((long *)&m_TempArray[IDX_EPH_W]);
pTemp->EphStruct.w = *(double*)&m_TempArray[IDX_EPH_W];
cnvt_ieee_double((long *)&m_TempArray[IDX_EPH_OMG0]);
pTemp->EphStruct.omg0 = *(double*)&m_TempArray[IDX_EPH_OMG0];
cnvt_ieee_double((long *)&m_TempArray[IDX_EPH_I0]);
pTemp->EphStruct.i0 = *(double*)&m_TempArray[IDX_EPH_I0];
pTemp->EphStruct.odot = *(float*)&m_TempArray[IDX_EPH_ODOT];
pTemp->EphStruct.idot = *(float*)&m_TempArray[IDX_EPH_IDOT];
pTemp->EphStruct.cus = *(float*)&m_TempArray[IDX_EPH_CUS];
pTemp->EphStruct.cuc = *(float*)&m_TempArray[IDX_EPH_CUC];
pTemp->EphStruct.cis = *(float*)&m_TempArray[IDX_EPH_CIS];
pTemp->EphStruct.cic = *(float*)&m_TempArray[IDX_EPH_CIC];
pTemp->EphStruct.crs = *(float*)&m_TempArray[IDX_EPH_CRS];
pTemp->EphStruct.crc = *(float*)&m_TempArray[IDX_EPH_CRC];
pTemp->EphStruct.iod = *(unsigned char*)&m_TempArray[IDX_EPH_IOD];
return;
} /* copyData */
The last packet will be a “download complete” packet that will look like this:
TX Packet: Download Complete
Byte Description Name HEX Value
Delimiter DLE 0x10
Download Complete ID IOP_DL_CMPLT 0x0c
Number of bytes in data SIZE 0x02
Ephemeris Download ID IOP_DOWN_LOAD_EPH 0x5D
Pad DATA 0x00
Checksum calculation CHKSUM ----
Delimiter DLE 0x10
End of packet ETX 0x03
After properly acknowledging this packet (ACK the IOP_DL_CMPLT ID), the ephemeris download is complete.
Selecting a Model
After opening the program (snsrcfg.exe), the following screen appears.
Select the radio button next to the type of Garmin sensor you are
configuring.
Comm Menu
The Comm (Communication) Menu allows you to set the port number, baud rate, and then connect and disconnect
from the sensor.
Setup: Opens the Comm Setup Window, shown to the left. Select the Serial
Port to which the sensor is connected from the drop-down list. Then select
Auto (the program determines the baud rate on its own) or Manual (you
then enter the baud rate) for the Baud Rate entry.
Connect: Select Connect to connect to the sensor to change or view the
configuration.
Disconnect: Select Disconnect to disconnect from the sensor.
Config Menu
The Config (Configuration) Menu allows you configure
the sensor as it is connected.
Sensor Configuration (F6): Opens the Sensor
Configuration Window, shown to the right. Many of the
fields in this window should be left alone. Refer to the
beginning of this manual for clarification about some of
these fields. For the most part, this window is used to
enter a new Latitude, Longitude, and Altitude for the
sensor. This is especially helpful when you are
programming the sensor for use in a particular geographic
location.
Resetting the Unit (Reset Unit) performs a reset on the
unit, much like cycling the power.
Resetting the non-volatile memory (Reset NonVol) will
clear all of the data from the non-volatile memory.
NMEA Sentence Selections (F7): Displays the NMEA
Sentence Selections Window. If the sentence is enabled, a
check mark appears in the box to the left of the sentence
name. Click the box to enable or disable to the sentence.
View Menu
The View Menu allows you to view the NMEA sentences transmitted by the sensor. You can also customize how
the program looks by showing and hiding the Toolbar and Status Bar.
Help Menu
The Help Menu displays the software version and copyright information.
For the latest free software updates (excluding map data) throughout the life of your
Garmin products, visit the Garmin Web site at www.garmin.com.