SOFTWARE
The figure below is a file view of the GPSRCVR program. The current version number is 1.17 Note that the format of rcvr_par.dat and current.eph have both changed as of version 1.05. Also in version 1.11 in RCVR_PAR.DAT rms was replaced with ICP_CTL which provides the option to obtain velocity fixes with Integrated Carrier Phase or Carrier Tracking Loop. The Sourceforge CVS repository has also been updated to version 1.17. The software is now under the GPL license. In the \SOURCE directory gpsrcvrb (Borland Compiler) and gpsrcvrv (Microsoft Visual C++ 1.5 compiler) executables are available.
Changes in version 1.17
Added data bit recording and write to file (this feature is not completely
debugged), corrected error in satpos_almanac, Thanks Tak! Also corrected an
error in navmess, thanks Goetz! Also added an indication on page 1 which
interface (ISA or PCI) is being used and the almanac page number.
Changes in version 1.16
Added #ifdefs to allow compilation by DJGPP. So far it compiles but does not run.
It seems to be a problem with the interrupt routine. Setup use of new PCI interface
from GPS Creations. It automatically detects the PCI card and if not found it defaults
to the ISA interface. Modified almanac read logic to check when a new almanac is available.
Changes in version 1.15
Added more integrity checking into the data bit synchronization in the pull-in
state. Instead of just checking the change in phase and checking that it is
very close to a +-90 to -+90 transition it also stores the last 20 ms sign
values and they must all be the same and opposite of the transitioned ms sign
before declaring the edge of a data bit. Modified parity check algorithm to
be more efficient. Also made constants for number of channels and register
address and data address.
Changes in version 1.14
Fixed error in
NMEA checksum routine. Added another display page and
supporting data structure to show parity errors in navigation message
decoding.
Changes in version 1.13
Made modifications to get ICP working better, trying to use just the last 0.1 second
of carrier phase data. Phil Bender added NMEA serial port messages (needs
some more work, see files serport.cpp, nmea.cpp,
fwinter.cpp). Additional
entries at the bottom of rcvr_par.dat are used to set up the NMEA messages.
Adapted program so it can compile under Borland (#ifdef BCPP) or Microsoft
Visual CPP (#ifdef VCPP) Also split up the program into library components
to make it more modular (see GPS_ISR.CPP and NAVFIX.CPP)
Changes in version 1.12
Removed some of the ephemeris checks that were causing the rejection of
valid ephemeris messages and also caused it not to accept ephemeris
messages from a constellation simulator. Fixed up the 1 second data bit
ambiguities to recover measurements that previously had been thrown out.
Changes in version 1.11
Cleaned up the display when a satellite is removed from consideration
Fixed an ephemeris management problem that caused occasional use of the
ephemeris from the wrong satellite
Modified the ephemeris mgmt to check IODE and IODC to decide when
to grab a new ephemeris + ephemeris integrity checks
Improved the almanac page redundancy check
Moved Pr, dPR, Tropo and Iono into the main channel data structure
Set up default iono parameters when ion_utc.dat not available
Added a debug output that provides raw measurements data and ephemeris
which provides more processing capability than pseudorange & delta pseudorange
Fully implemented the GPSRCVR.LOG output options
Added the option in RCVR_PAR.DAT to use CTL (carrier tracking loop) or
ICP (integrated carrier phase) data for velocity computations (ICP seems
to have bias problems)
Changes in version 1.10
Corrected problem in Cmatrix with Borland 5.02 compiler
Aligned pager header titles
Still a problem with the matrix functions, if you have trouble comment out the call to DOPS in Nav_Fix
Changes in version 1.09
Corrected hot start problem
Hooked up almanac data type check
Started using Aberto's matrix libraries for DOP calculations
Minor changes in pream
Got rid of tmax in nav_fix
Added more measurement integrity checks in nav_fix
Added header and tdop to display
Changes in version 1.08
Corrected tracking loop bias problem (I hope!)
Corrected code loop doppler correction constant
Corrected a cold start problem
Changes in version 1.07
Added check for bit sync in pull-in, must be set to transition to track
Extended pull-in to end of data bit to reduce transients when going into track
Added integrated carrier phase processing for velocity
Improved GPS time alignment mode (for any nav fix rate)
Corrected iono correction computations (again)
Corrected tropo correction sign
Reduced debug arrays to reduce code size
Added two new display pages, iono & tropo, and pseudorange &
delta pseudorange
Not used yet but getting set up to use Alberto Perez's matrix libraries
Work on version 1.18 is proceeding.

To see the source code and examples of the other files go to this page
A new program has been added to perform a loop back test of the gp2021 chip. It only needs gp2021.cpp to compile and does not use any data files. When you run it if it shows channels 1 through 11 in state 4 with the data fields filled in on the right you can be sure that your digital interface to the receiver is working properly.
A more basic I/O test program has been written to help debug some data bus problems that were found with the Superstar hack.
I'm putting the files under this page It's called regtest. It effectively loads up the GP2021 to get the correlators running and then does read/write tests to a couple of addresses.
The display looks like this

Clifford Kelley
Copyright © 2004 All rights reserved.
Revised: September 09, 2007
.