Campbell GPS16X-HVS User manual

GPS16X-HVS GPS Receiver
Revision: 8/12
Copyright © 2003-2012
Campbell Scientific, Inc.


Warranty
“PRODUCTS MANUFACTURED BY CAMPBELL SCIENTIFIC, INC. are
warranted by Campbell Scientific, Inc. (“Campbell”) to be free from defects in
materials and workmanship under normal use and service for twelve (12)
months from date of shipment unless otherwise specified in the corresponding
Campbell pricelist or product manual. Products not manufactured, but that are
re-sold by Campbell, are warranted only to the limits extended by the original
manufacturer. Batteries, fine-wire thermocouples, desiccant, and other
consumables have no warranty. Campbell's obligation under this warranty is
limited to repairing or replacing (at Campbell's option) defective products,
which shall be the sole and exclusive remedy under this warranty. The
customer shall assume all costs of removing, reinstalling, and shipping
defective products to Campbell. Campbell will return such products by surface
carrier prepaid within the continental United States of America. To all other
locations, Campbell will return such products best way CIP (Port of Entry)
INCOTERM® 2010, prepaid. This warranty shall not apply to any products
which have been subjected to modification, misuse, neglect, improper service,
accidents of nature, or shipping damage. This warranty is in lieu of all other
warranties, expressed or implied. The warranty for installation services
performed by Campbell such as programming to customer specifications,
electrical connections to products manufactured by Campbell, and product
specific training, is part of Campbell’s product warranty. CAMPBELL
EXPRESSLY DISCLAIMS AND EXCLUDES ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE. Campbell is not liable for any special, indirect,
incidental, and/or consequential damages.”

Assistance
Products may not be returned without prior authorization. The following
contact information is for US and international customers residing in countries
served by Campbell Scientific, Inc. directly. Affiliate companies handle
repairs for customers within their territories. Please visit
www.campbellsci.com to determine which Campbell Scientific company serves
your country.
To obtain a Returned Materials Authorization (RMA), contact CAMPBELL
SCIENTIFIC, INC., phone (435) 227-9000. After an applications engineer
determines the nature of the problem, an RMA number will be issued. Please
write this number clearly on the outside of the shipping container. Campbell
Scientific's shipping address is:
CAMPBELL SCIENTIFIC, INC.
RMA#_____
815 West 1800 North
Logan, Utah 84321-1784
For all returns, the customer must fill out a "Statement of Product Cleanliness
and Decontamination" form and comply with the requirements specified in it.
The form is available from our web site at www.campbellsci.com/repair. A
completed form must be either emailed to repair@campbellsci.com or faxed to
(435) 227-9106. Campbell Scientific is unable to process any returns until we
receive this form. If the form is not received within three days of product
receipt or is incomplete, the product will be returned to the customer at the
customer's expense. Campbell Scientific reserves the right to refuse service on
products that were exposed to contaminants that may cause health or safety
concerns for our employees.

Table of Contents
PDF viewers: These page numbers refer to the printed version of this document. Use the
PDF reader bookmarks tab for links to specific sections.
1. Overview......................................................................1
1.1 Default Settings.............................................................................1
1.2 Compatible Dataloggers................................................................2
1.3 Common Accessories....................................................................2
2. Specifications .............................................................3
3. Wiring...........................................................................4
4. GPS Data .....................................................................6
4.1 $GPGGA Sentence (Position and Time)..............................................6
4.2 $GPRMC Sentence (Position and Time)..............................................7
5. CRBasic Programming...............................................8
5.1 GPS() Instruction .................................................................................8
5.2 Example Program Using GPS() Instruction .......................................10
5.3 Example Program Using Serial Instruction........................................11
6. Troubleshooting........................................................13
6.1 Testing and Evaluating Serial Communications ................................13
6.2 NMEAStrings Variable Populated, but Clock Not Setting ................14
Appendices
A. Changing GPS16X-HVS Settings........................... A-1
A.1 Computer Connections.................................................................... A-1
A.1.1 Using the A200 ........................................................................ A-1
A.1.1.1 Driver Installation ......................................................... A-1
A.1.1.2 Wiring ........................................................................... A-2
A.1.1.3 Powering the Sensor...................................................... A-3
A.1.1.4 Determining which COM Port the A200 has been
Assigned .................................................................... A-3
A.1.2 Using the SC110 ...................................................................... A-3
B. CR23X Wiring and Programming .......................... B-1
B.1 CR23X Connections.........................................................................B-1
B.2 Programming....................................................................................B-1
B.2.1 Program Execution Interval ......................................................B-1
i

Table of Contents
ii
B.2.2 Reading GPS Data.................................................................... B-2
B.2.2.1 CR23X Example of Instruction 15 (P15) ...................... B-3
B.2.3 Filters........................................................................................ B-3
B.2.4 Managing the Data ................................................................... B-3
B.2.5 Program Discussion.................................................................. B-4
B.2.5.1 CR23X Example Program ............................................. B-6
B.3 Troubleshooting............................................................................... B-9
C. Using an SDM-SIO4.................................................C-1
C.1 SDM-SIO4 Connections.................................................................. C-1
C.2 CR9000X Example Program........................................................... C-1
Figures
1-1. The GPS16X-HVS terminates in pigtails for direct connection
to our dataloggers............................................................................. 1
3-1. CR1000 to GPS16X-HVS connection................................................. 5
A-1. A200 Sensor-to-PC Interface........................................................... A-2
Tables
1-1. Default Settings ................................................................................... 1
3-1. Datalogger Wiring............................................................................... 5
4-1. NMEA $GPGGA String Definition .................................................... 6
A-1. A200 Wiring.................................................................................... A-2
A-2. SC110’s DCE Cable Wiring............................................................ A-3
B-1. CR23X Wiring ................................................................................ B-1
B-2. P15 for NMEA $GPGGA Data String............................................. B-2
B-3. Filter ................................................................................................ B-3
C-1. SC110’s Cable Wiring..................................................................... C-1

GPS16X-HVS GPS Receiver
1. Overview
FIGURE 1-1. The GPS16X-HVS terminates in pigtails for direct
connection to our dataloggers
The GPS16X-HVS is a complete GPS receiver manufactured by Garmin
International, Inc. Campbell Scientific configures the GPS16X-HVS to work
with our dataloggers and modifies its cable so that the cable terminates in
pigtails. The pigtails connect directly to the control ports of our dataloggers.
The GPS16X-HVS includes the GPS receiver and antenna in the same housing
with one cable for the power supply and communications. The GPS antenna
must have a clear view of the sky. Generally the GPS antenna will not work
indoors.
The GPS16X-HVS is a 12-channel GPS receiver that supports FAA Wide Area
Augmentation System (WAAS) or RTCM differential GPS. Also supported is
the 1 Pulse Per Second (PPS) timing signal. The cable connections provided
with the GPS16X-HVS do not support differential GPS correction. The cable
can be modified by the user if differential correction is required.
1.1 Default Settings
TABLE 1-1 shows the default settings of the GPSX16-HVS.
TABLE 1-1. Default Settings
Baud Rate 38400 bps
Parity N (no parity)
Stop Bit 1
Sentences Output GPGGA, GPRMC
PPS 100 ms
1

GPS16X-HVS GPS Receiver
1.2 Compatible Dataloggers
Compatible Contemporary Dataloggers
CR200(X)
Series
CR800/
CR850
CR1000
CR3000
CR5000
CR7X
CR9000X
See
Appendix
B and C
See
Appendix
B and C
Compatible Retired Dataloggers
CR500 CR510 CR10 CR10X 21X CR23X CR9000
See
Appendix
B and C
See
Appendix
B and C
Our CR800, CR850, CR1000, and CR3000 dataloggers typically use the
CRBasic GPS() instruction to read the GPS16X-HVS. To use the PPS
functionality, some dataloggers need an updated clock chip. The clock chip is
factory replaced (requires an RMA). Dataloggers with the following serial
numbers need an updated chip:
Datalogger Serial Number
CR1000M < 20409
CR800, CR850 < 7920
CR3000 < 3168
1.3 Common Accessories
CSI part number Description
17212 GPS16X-HVS magnetic mount
CM235 Magnetic mounting stand
A200 Sensor to PC interface
2

GPS16X-HVS GPS Receiver
2. Specifications
Physical
Size: 86 mm (3.39 in.) diameter, 42 mm (1.65 in.) high
Weight: 181 g (6.4 oz.) without cable, 332 g (11.7 oz.) with 5 m
cable
Cable: PVC-jacketed, 5 m, foil-shielded, 8-conductor, 28 AWG
Electrical Characteristics
Input Voltage: 8.0 Vdc to 40 Vdc unregulated
Current Drain: 65 mA @ 12 Vdc
GPS Receiver
Sensitivity: -185 dbW minimum
GPS Performance
Receiver: WAAS enabled; 12 parallel channel GPS receiver
continuously tracks and uses up to 12 satellites, 11 if
PPS is active
Acquisition Times (Approximate)
Reacquisition: Less than 2 s
Hot: 1 s (all data known)
Warm: ~38 s (initial position, time and almanac known,
ephemeris unknown)
Cold: ~45 s
SkySearch: 5 min (no data known)
Sentence Rate: 1 s default; NMEA 0183 output interval configurable
from 1 to 900 s in one second increments
Accuracy: GPS Standard Positioning Service (SPS)
Position: Less than 15 m, 95% typical (100 m with selective
availability on)
Velocity: 0.1 knot RMS steady state
3

GPS16X-HVS GPS Receiver
DGPS (USCG/RTCM)
Position: 3-5 m, 95% typical
Velocity: 0.1 knot RMS steady state
DGPS (WAAS)
Position: Less than 3 m
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 (limited above 60,000 ft, 6g
dynamics)
Interfaces: True RS-232 output, asynchronous serial input
compatible with RS-232 or TTL voltage levels, RS-232
polarity. Selectable baud rates (4800, 9600, 19200,
38400)
PPS: 1 Hz pulse, programmable width, 1 microsecond
accuracy
Power Control
Off: Open circuit
On: Ground or pull to low logic level < 0.3 volts
Environmental Characteristics
Temperature: -30° to +80°C operational, -40° to +80°C storage
3. Wiring
The GPS16X-HVS connects directly to a CR800, CR850, CR1000, or CR3000
datalogger (see TABLE 3-1). Refer to Appendix B.1 if connecting the receiver
to a CR23X. Our CR5000 and CR9000X connect to the receiver via the
SC110 and an SDM-SIO4 (see Appendix C).
If the GPS16X-HVS is to be connected to a computer to change the default
settings, an A200 or SC110 cable is needed (see Appendix A).
4

GPS16X-HVS GPS Receiver
TABLE 3-1. Datalogger Wiring
GPS16X-HVS Datalogger Function
Red 12V Power In
Black Ground Power Ground
Yellow Ground or Control Port for
On/Off control
Power Switch
White Control Port (Rx) TXD
Gray Control Port (Tx) PPS
Blue Ground or Control Port
(Tx) for datalogger-based
configuration
Rxdata
Shield Ground Shield
FIGURE 3-1. CR1000 to GPS16X-HVS connection
5

GPS16X-HVS GPS Receiver
4. GPS Data
The GPS16X-HVS has several data formats available. The GPS16X-HVS is
configured to output the NMEA $GPGGA and $GPRMC time and position
string. It is possible to configure the GPS16X-HVS to output other NMEA
strings including the $GPVTG track made good and ground speed string. See
Appendix A for details.
4.1 $GPGGA Sentence (Position and Time)
Sample NMEA $GPGGA data string:
$GPGGA,hhmmss,llll.lll,a,nnnnn.nnn,b,t,uu,v.v,w.w,M,x.x,M,y.y,zzzz*hh<CR><LF>
TABLE 4-1. NMEA $GPGGA String Definition
Field Description
0 $GPGGA NMEA string identifier
1 hhmmss UTC of Position: Hours, minutes, seconds
2 1111.111 Latitude: Degrees, minutes, thousandths of minutes
3 a N (North) or S (South)
4 nnnnn.nnn Longitude: Degrees, minutes, thousandths of minutes
5 b E (East) or W (West)
6 t GPS Quality Indicator: 0 = No GPS, 1 = GPS, 2 =
DGPS
7 uu Number of Satellites in Use
8 v.v Horizontal Dilution of Precision (HDOP)
9 w.w Antenna Altitude in Meters
10 M M = Meters
11 x.x Geoidal Separation in Meters
12 M M = Meters. Geoidal separation is the difference
between the WGS-84 earth ellipsoid and mean-sea-
level.
13 y.y Age of Differential GPS Data. Time in seconds since
the last Type 1 or 9 Update
14 zzzz Differential Reference Station ID (0000 to 1023)
15 * Asterisk, generally used as the termination character
16 hh Checksum
17 <CR><LF> Carriage return, line feed characters.
6

GPS16X-HVS GPS Receiver
Sample $GPGGA output strings:
Cold Start
No satellites acquired, Real Time Clock and Almanac invalid:
$GPGGA,,,,,,0,00,,,,,,,*66
Warm Start
No satellites acquired, time from Real Time Clock, almanac valid:
$GPGGA,235032.0,,,,,0,00,,,,,,,*7D
Warm Start
One satellite in use, time from GPS Real Time Clock (not GPS), no position:
$GPGGA,183806.0,,,,,0,01,,,,,,,*7D
Valid GPS Fix
Three satellites acquired, time and position valid:
$GPGGA,005322.0,4147.603,N,11150.978,W,1,03,11.9,00016,M,-016,M,,*6E
4.2 $GPRMC Sentence (Position and Time)
Example (signal not acquired):
$GPRMC,235947.000,V,0000.0000,N,00000.0000,E,,,041299,,*1D
Example (signal acquired):
$GPRMC,092204.999,A,4250.5589,S,14718.5084,E,0.00,89.68,211200,,*25
Field Example Comments
Sentence ID $GPRMC
UTC Time 092204.999 hhmmss.sss
Status A A = Valid, V = Invalid
Latitude 4250.5589 ddmm.mmmm
N/S Indicator S N = North, S = South
Longitude 14718.5084 dddmm.mmmm
E/W Indicator E E = East, W = West
Speed over ground 0.00 Knots
Course over ground 0.00 Degrees
UTC Date 211200 DDMMYY
Magnetic variation Degrees
Magnetic variation E = East, W = West
Checksum *25
Terminator CR/LF
7

GPS16X-HVS GPS Receiver
5. CRBasic Programming
This section describes programming a CR800, CR850, CR1000, or CR3000.
See Appendix B and C for programming other dataloggers.
CRBasic is used to write programs for the CR1000, CR3000, CR800, and
CR850 dataloggers. These dataloggers use several instructions to read GPS
output, which is asynchronous serial data.
5.1 GPS() Instruction
The GPS() instruction is available for our CR800, CR850, CR1000, and
CR3000 dataloggers. It is used along with a GPS device to set the datalogger's
clock. This instruction will also provide information such as location
(latitude/longitude) and speed, and store NMEA sentences from the GPS
device.
To use the GPS() instruction, the datalogger operating system
(OS) should be OS17 or higher for the CR1000; OS10 or higher
for the CR3000; or OS08 or higher for the CR800 and CR850.
Go to www.campbellsci.com/downloads to upgrade the
datalogger OS.
NOTE
The resolution of accuracy for the clock set is 10 microseconds if the
datalogger has a hardware revision number greater than 007 (RevBoard field in
the datalogger's Status table). Otherwise, resolution is 10 milliseconds. The
clock set relies on information from the GPRMC sentence. If this sentence is
not returned, a clock set will not occur.
By default, the instruction expects the GPS unit to be set up at 38400 baud,
outputting the GPRMC and GPGGA sentences once per second. The
datalogger expects the start of the second to coincide with the rising edge of the
PPS signal. If there is no PPS signal or if the required sentences come out at
less than once per second, the datalogger will not update its clock.
GPS units with lower baud rates can be used with the GPS() instruction but the
baud rate has to be set for the relevant Com port it is to be connected to either
in the datalogger settings or by including a SetStatus() command after the
BeginProg() instruction in the program (e.g.,
SetStatus("BaudrateCOM4",19200)).
Baud rates of 2400 bps or lower will not work as the GPS unit will not
transmit the two GPS sentences once per second reliably. Similar problems
can be encountered even at higher baud rates if too many optional GPS strings
are selected to be output.
8

GPS16X-HVS GPS Receiver
The GPS() instruction has the following syntax:
GPS(GPSArray,ComPort,TimeOffset,MaxTimeDiff,NMEAStrings)
Description of the parameters follows:
GPSArray The GPSArray parameter is the variable in which to store the
information returned by the GPS. Fifteen values are returned.
If this array is not dimensioned to 15, values will be stored to
fill the array and no error will be returned. If no values are
available, NAN will be returned. The following values are
returned by the GPS:
Array(1) = Latitude, degrees
Array(2) = Latitude, minutes
Array(3) = Longitude, degrees
Array(4) = Longitude, minutes
Array(5) = Speed over ground, knots
Array(6) = Course over ground, degrees
Array(7) = Magnetic variation (positive = East, negative =
West)
Array(8) = Fix Quality (0 = invalid, 1 = GPS, 2 = differential
GPS, 6 = estimated)
Array(9) = Number of Satellites
Array(10) = Altitude, meters
Array(11) = Pulse per second (PPS) length, microseconds
Array(12) = Seconds since last GPRMC sentence
Array(13) = GPS Ready, 10 = ready
Array(14) = Maximum clock change, milliseconds (10 msec
resolution)
Array(15) = Clock change count
ComPort The ComPort parameter is the control port pair to which the
GPS device is attached. Valid options are COM1 (C1/C2),
COM2 (C3/C4), COM3 (C5/C6), and COM4 (C7/C8). Rx is
used to read in the NMEA sentences and Tx is used to monitor
the PPS from the GPS. This instruction defaults to a baud rate
of 38,400 bps. If a different baud rate is required, use the
SetStatus() instruction to override the default.
TimeOffset The TimeOffset parameter is the local time offset, in seconds,
from UTC.
MaxTimeDiff The MaxTimeDiff parameter is the maximum difference in
time between the datalogger clock and the GPS clock that will
be tolerated before the clock is changed. If a negative value is
entered, the clock will not be changed.
For dataloggers prior to hardware revision 08, the
MaxTimeDiff parameter should not be set to 0. A minimum
value of 20 ms is recommended. With this hardware, when a
GPS() instruction is in the program the clock is checked each
second (regardless of how often the GPS() instruction is run).
The clock is set if any difference is found. This can result in
the clock being set each second, resulting in skipped records in
9

GPS16X-HVS GPS Receiver
the data table(s). This restriction does not apply to hardware
revisions 08 or greater.
NMEAStrings The NMEAStrings parameter is the string array that holds the
NMEA sentences. If it exists, the GPRMC sentence will reside
in NMEAStrings(1), and the GPGGA sentence will reside in
NMEAStrings(2). Any other sentences will reside in
subsequent indexes into the array (on a first-in basis). Once an
index in the array is used to store a particular sentence, that
sentence will always be stored in that location when updates to
the sentence are received.
5.2 Example Program Using GPS() Instruction
The following wiring and short program provide an example of using the
GPS() instruction with the Garmin GPS16X-HVS.
'Program the GPS16-HVS to use 38.4 kbaud, no parity, 8 data bits, and 1 stop bit
PipeLineMode
Const LOCAL_TIME_OFFSET = -6 'Local time offset relative to UTC time
Dim nmea_sentence(2) As String * 90
Public gps_data(15)
Alias gps_data(1) = latitude_a 'Degrees latitude (+ = North; - = South)
Alias gps_data(2) = latitude_b 'Minutes latitude
Alias gps_data(3) = longitude_a 'Degress longitude (+ = East; - = West)
Alias gps_data(4) = longitude_b 'Minutes longitude
Alias gps_data(5) = speed 'Speed
Alias gps_data(6) = course 'Course over ground
Alias gps_data(7) = magnetic_variation 'Magnetic variation from true north (+ =
'East; - = West)
Alias gps_data(8) = fix_quality 'GPS fix quality: 0 = invalid, 1 = GPS, 2 =
'differential GPS, 6 = estimated
Alias gps_data(9) = nmbr_satellites 'Number of satellites used for fix
Alias gps_data(10) = altitude 'Antenna altitude
Alias gps_data(11) = pps 'usec into sec of system clock when PPS
'rising edge occurs, typically 990,000 once
'synced
Alias gps_data(12) = dt_since_gprmc 'Time since last GPRMC string, normally less
'than 1 second
Alias gps_data(13) = gps_ready 'Counts from 0 to 10, 10 = ready
Alias gps_data(14) = max_clock_change 'Maximum value the clock was changed in msec
Alias gps_data(15) = nmbr_clock_change 'Number of times the clock was changed
'Define Units to be used in data file header
Units latitude_a = degrees
Units latitude_b = minutes
Units longitude_a = degrees
Units longitude_b = minutes
Units speed = m/s
Units course = degrees
Units magnetic_variation = unitless
Units fix_quality = unitless
Units nmbr_satellites = unitless
10

GPS16X-HVS GPS Receiver
Units altitude = m
Units pps = ms
Units dt_since_gprmc = s
Units gps_ready = unitless
Units max_clock_change = ms
Units nmbr_clock_change = samples
BeginProg
'Use SetStatus prior to scan if baud rate needs to be changed for device
Scan (1,Sec,0,0)
GPS (latitude_a,Com4,LOCAL_TIME_OFFSET*3600,100,nmea_sentence(1))
NextScan
EndProg
5.3 Example Program Using Serial Instruction
Serial programming allows the retrieval of all values of GPRMC and GPGGA
values. The GPS() instruction is a subset of the values that are available.
'GPS16X-HVS at Campbell Scientific Factory Defaults
Const GPSPort = Com4 'Com port where GPS is connected
Public GGAstring As String * 500
Public RMCstring As String * 500
'rmc variables
Public rmcid As String
Public rmcutc As String
Public rmcstatus As String
Public rmclatitude As String
Public rmcin_s_ind As String
Public rmclongitude As String
Public rmce_w_indicator As String
Public rmcspeed As String
Public rmccourse As String
Public rmcutcdate As String
Public rmcmagvariation As String
Public rmcmage_w As String
Public rmcchecksum As String
'gga variables
Public ggaid As String
Public ggautc As String
Public ggailatitude As String
Public ggan_s_ind As String
Public ggalongitude As String
Public ggae_w_ind As String
Public ggapositionfix As String
Public gganumsatellites As String
Public ggahdop As String
Public ggaaltitude As String
Public ggaaltutudeunits As String
Public ggageoidsep As String
Public ggageoidunits As String
Public ggachecksum As String
11

GPS16X-HVS GPS Receiver
Dim NBytesReturned As Long
Dim SubStrings(16) As String * 32, rawdata As String * 500
Dim CalculatedChecksum As Long, ReportedChecksum As Long
DataTable (gpsdata,True,-1)
DataInterval (0,1,Sec,10)
Sample (1,rmcid,String)
Sample (1,rmcutc,String)
Sample (1,rmcstatus,String)
Sample (1,rmclatitude,String)
Sample (1,rmcin_s_ind,String)
Sample (1,rmclongitude,String)
Sample (1,rmcspeed,String)
Sample (1,rmccourse,String)
Sample (1,rmcutcdate,String)
Sample (1,rmcmagvariation,String)
Sample (1,rmcmage_w,String)
Sample (1,rmcchecksum,String)
Sample (1,ggaid,String)
Sample (1,ggautc,String)
Sample (1,ggan_s_ind,String)
Sample (1,ggalongitude,String)
Sample (1,ggae_w_ind,String)
Sample (1,ggapositionfix,String)
Sample (1,gganumsatellites,String)
Sample (1,ggahdop,String)
Sample (1,ggaaltitude,String)
Sample (1,ggaaltutudeunits,String)
Sample (1,ggageoidsep,String)
Sample (1,ggageoidunits,String)
Sample (1,ggachecksum,String)
EndTable
'Main Program
BeginProg
SerialOpen (GPSPort,38400,3,0,1001)
Scan (1,Sec,0,0)
SerialInRecord (GPSPort,rawdata,36,0,&h0D0A,NBytesReturned,11)
CalculatedChecksum = CheckSum (rawdata,9,Len(rawdata) - 3)
CalculatedChecksum = CalculatedChecksum AND 255
ReportedChecksum = HexToDec(Right(rawdata,2))
If CalculatedChecksum = ReportedChecksum Then
If InStr (1,rawdata,"GPRMC",2) Then
RMCstring = rawdata
ElseIf InStr (1,rawdata,"GPGGA",2) Then
GGAstring = rawdata
EndIf
EndIf
SerialInRecord (GPSPort,rawdata,36,0,&h0D0A,NBytesReturned,11)
CalculatedChecksum = CheckSum (rawdata,9,Len(rawdata) - 3)
CalculatedChecksum = CalculatedChecksum AND 255
ReportedChecksum = HexToDec(Right(rawdata,2))
If CalculatedChecksum = ReportedChecksum Then
If InStr (1,rawdata,"GPRMC",2) Then
RMCstring = rawdata
ElseIf InStr (1,rawdata,"GPGGA",2) Then
12

GPS16X-HVS GPS Receiver
GGAstring = rawdata
EndIf
EndIf
'parse rmc data
SplitStr (SubStrings(),RMCstring,",",16,5)
rmcid = SubStrings(1)
rmcutc = SubStrings(2)
rmcstatus = SubStrings(3)
rmclatitude = SubStrings(4)
rmcin_s_ind =SubStrings(5)
rmclongitude=SubStrings(6)
rmce_w_indicator=SubStrings(7)
rmcspeed=SubStrings(8)
rmccourse=SubStrings(9)
rmcutcdate=SubStrings(10)
rmcmagvariation=SubStrings(11)
rmcmage_w =Left(SubStrings(12),1)
rmcchecksum=Right(RMCstring,2)
'parse gga data
SplitStr (SubStrings(),GGAstring,",",16,5)
ggaid=SubStrings(1)
ggautc=SubStrings(2)
ggailatitude=SubStrings(3)
ggan_s_ind=SubStrings(4)
ggalongitude=SubStrings(5)
ggae_w_ind=SubStrings(6)
ggapositionfix=SubStrings(7)
gganumsatellites=SubStrings(8)
ggahdop=SubStrings(9)
ggaaltitude=SubStrings(10)
ggaaltutudeunits=SubStrings(11)
ggageoidsep=SubStrings(12)
ggageoidunits=Left(SubStrings(13),1)
ggachecksum=Right(GGAstring,2)
CallTable gpsdata
NextScan
EndProg
6. Troubleshooting
Testing and evaluation of serial communications is best done by reducing the
whole system to small manageable systems. Usually some portions of the
whole system are working. The first steps involve finding what is working.
During this process you may find parts of the system that are not working or
mistakes that can be easily corrected. Fix each subsystem before testing others.
6.1 Testing and Evaluating Serial Communications
Test the GPS16X-HVS for proper operation including the baud rate and output
string. Use a computer, terminal emulator software, a serial port (RS-232), and
13

GPS16X-HVS GPS Receiver
14
a 9-pin to pigtail cable (SC110/sockets). The computer and serial port can be
the same as used to communicate with the datalogger. Terminal emulation
software is common. Hyperterm is supplied as part of Windows ™ and works.
Procomm ™ is another communication software package that works well.
Set up the software for the correct serial port, 38.4 kbps, 8 data bits, 1 stop bit
and no parity. Flow control should be none. Using the SC110 cable, connect
the GPS16X-HVS to the computer serial port. Power up the GPS16X-HVS.
The GPS antenna should have a clear view of the sky. Don’t expect the GPS
antenna to work indoors. The $GPGGA and GPRMC strings should be
displayed once a second. Make sure the $GPGGA string is showing a valid
GPS fix. A valid GPS fix will display time, position and have a GPS quality
number greater than zero.
SC110 Cable Connections
GPS16X Receiver SC110/Sockets or DB9/Sockets to Pigtails
White Pin 2
Black and Yellow Pin 5 (shares power ground)
6.2 NMEAStrings Variable Populated, but Clock Not Setting
Look at the GPSReady variable. It will increment from 0 to 10 when the
datalogger has received good GPRMC strings and a synchronized PPS signal.
Once GPSReady reaches 10, the datalogger will begin to use GPS time for
clock setting. The 12th value populated in GPSArray indicates elapsed time
since a GPRMC string was received and should not exceed 1. If the GPRMC
string is being received and GPSReady remains at zero, the PPS signal is not
being received by the datalogger.
Other manuals for GPS16X-HVS
6
Table of contents
Other Campbell GPS manuals