PROGRAMS TO LOG AND USE RAW DATA FROM YOUR GPS12 (or XL, Etrex is beginning to be supported) ------------------------------------------------------------------- Usual Disclaimer: These program are supplied as is. No warrantee is given or implied. Use them at your own risk. The undocumented commands that these programs use may cause corruption or lost of the data stored in your GPS. Garmin is a registered trademark of Garmin Corporation. Garmin Corporation takes no warranty for problems resulting in using products not sold by Garmin Corporation. This is specially true for this software. -------------------------------------------------------------------- **************************************************************** CONTENTS ***************************************************************** There are two different packages, one for Linux, the other for Windows. The Linux version uses some modified functions from the Jeeps library for the low level serial communications. Source code is provided in both cases (VC++ for Windows, gcc for Linux). Each package contains: * async.c and async.exe: async event logger for the GPS12 (or XL). * gar2rnx.c and gar2rnx.exe: sources and executable for the garmin to rinex translator. It also works as a parser to study async messages. * README file: this file. ----------------------------------------------------------------------- ****************************************************************** USAGE of the ASYNC utility **************************************************************** Usage: async [options] async -h: shows this help async -p port_name : Selects serial comm port (comx, ttySx) async -c : only checks port availability async -i : only tries to get the GPS ID (default) async -a 0xnnnn : Enable async events with hex mask nnnn async -t ttt : Sets log time to ttt seconds. Default 30 sec. async -r 0xnnnn : Sends request type nnnn. async -o filename : Save received packets in filename By default the output goes to week_second.g12 async -rinex : by enabling only those records relevant to the generation of a RINEX file you avoid missing observations (that can happen when there are too many async events coming). Use this option when you plan to generate a RINEX file from the collected data --------------------------------------------------------------------------- The usual procedure would be to find an unused comm port using async -p com1 -c or async -p com2 -c (ttyS0,ttyS1 in Linux) Once you find the port, connect your GPS and check if the program sees it async -p comN -i If your GPS is identified you can start logging data using the -async -request and -rinex commands. ---------------------------------------------------------------------------- ********************************************************************** USAGE OF THE GAR2RNX UTILITY ********************************************************************** ------------------------------------------------------------------ Usage: gar2rnx g12file [-stat] [-parse options] [-rinex options] g12file is a file generated using the async logger utility. It's the only mandatory argument. On this data file, the gar2rnx program can perform three basic functions, and those can have its own options ------------------------------------------------------------------ -stat : shows statistics about the number, Identity byte and length of received packets ------------------------------------------------------------------ -parse: this was the original functionality, designed to help us interprete the async messages sent by the GPS12. List of options that can be activated along with -parse: -sats: shows records 0x1a (Track status, signal, elevation, etc.) Default -all : displays info about all sats. Default. -s nn: for those fields with a SV ID field, displays only those records regarding the satellite with PRN nn -r 0xr1 0xr2 ... : displays info about records 0xr1 0xr2 (hexadecimal) The fields (more or less) known are interpreted. Unknown bytes are simply listed. -dif : presents some additional info about the increment of several fields in records 0x38 and 0x16 (Obsolete) ------------------------------------------------------------------ -rinex: this is the default functionality (hence the change of name of the program from parser to gar2rnx). Since it's the default you actually don't have to type it. List of options that can be used along with -rinex: -etrex : if you logged your data with a Garmin Etrex, you should use this option to obtain a proper Rinex file. -start tow: starts the generation of the RINEX file from tow (week_seconds). By default, it starts from the first record logged in g12file -stop tow: don't include in the RINEX file those records with a time-tag later than tow (week_seconds) -time tt : only tt seconds of observations go into the RINEX file -int tt : only those records from g12file that are time-tagged with a multiple of tt seconds go into the RINEX file -reset : reset the time-tags to the nearest full second modifying the observables accordingly -obs n : Number of observables in the RINEX file. It can be 1 (Code) or 2 (default, Code and L1 phase). -f : Instead of sending the RINEX file to standard output (default) it creates a file using the RINEX conventions -area name: Name of the station or area where observations are taken. If the option -f is given, the first 4 chars of this name are used to create the RINEX filename. -mark name: Marker name in the Rinex file. Name used to identify a particular point of measurement. ------------------------------------------------------------------ ****************************************************************** GENERATION OF RINEX FILES ****************************************************************** Simply put, the procedure to obtain a RINEX file is: * Power on your GPS12 with a good view of the sky. * Wait until a 3D fix is obtained (if you don't, the program will). * Run the async logger for a while with the -rinex option: async -p your_port -rinex -t 300 -o bindata.g12 that would generate a file bindata.g12 after five minute logging. * Run the gar2rnx (GARmin to RiNeX) program and redirect the output to a file: gar2rnx bindata.g12 > data.00o Hopefully, the created file data.00o will be an observation RINEX file. * DGPS post-processing of raw data involves the comparison with data generated by other receiver at the SAME time. You could use another G12 or you can get data collected at a reference station nearby. American users will find this address quite convenient: http://www.ngs.noaa.gov/CORS/Data.html For European users there is EUREF: ftp://igs.ifag.de/gpsdata/ * Also you need either a broadcast or precise ephemeris corresponding to the date you logged your data. You can find those in: http://www.ngs.noaa.gov/CORS/Data.html ftp://igs.ifag.de/ORBITS/ ftp://ftp.navcen.uscg.mil/GPS/precise/pebinary/ * Postprocess the RINEX file with your prefered public domain postprocessing software. I have used GeoGenius. It's not public domain, but you can get a functional evaluation demo from: http://www.terrasat.de/