NOTES ON MOTRTCM ver 1.6 3/21/00 (first public release) This is the 1st public release of the source code, so please note the following: Copyright (c) 1999, Jim Korenz. All rights reserved. This program may be used only for non-commercial purposes, and carries no warranty of any kind, including any implied warranty of fitness for any particular purpose. The program was compiled using Turbo C ver 2.0 under MSDOS 6.22 . The default char type is unsigned in version of the compiler. The executable code was run on a 20 MHz 386 laptop computer serving as the RTCM base correction station. This machine was able to process RTCM corrections at the 1 sec maximum rate that the Motorola Oncore was able to output data. This version of the program does not use floating point calculations, so it does not "bog down" a computer that has no hardware floating point processor. I have not run the program on a 286 or 8088 computer, but I think that it will run OK, but you may have to slow the corrections down to once evey 5 or 10 sec, to prevent data overruns. I have enclosed "hand-parsed" data samples of the Motorola Oncore "Ce" messages in the file "MOTMSG.TXT". Likewise, RTCM type 1 data messages from a TAPR DGPS powered correction station are parsed in the file "JUL20.TXT". These should be of use in troubleshooting problems, and in learning how the system works. I have also enclosed an RTCM type 1 message decoding program "RTCVUE". It works on "dead" data, data stored in a file, and displays decoded RTCM information on the system screen. The parity calculations are implimented in this program, so it can serve as an example of how to do the calculations. The program does a good job with good data, but it is easily confused by bad or missing data. It will report errors, but will continue to try parsing the remaining (bad) data in the message. The "RTCMON" program distributed by DCI at their website is a much more robust program, but will only work with serial port data streams. http://www.dgps.com The "MOTRTCM" program was test run for 36 hours with input from an 8 channel Oncore receiver to a Garmin GPS III connected by RS 232 to the COM2 serial output port. The Garmin NMEA serial output was recorded and analysed. It stayed in DGPS lock for the entire 36 hour period. It should be noted that a GPS receiver capable of DGPS operation will reject any RTCM correction messages older than about 50 sec in real time operation. In beta testing, the "MOTRTCM" program output was compared to the TAPR DGPS board serial output. Only occasional minor differences were seen, usually in the last digit on the values. The most noticeable discrepancy was in the Z-count value. I originally rounded the time up to the nearest 0.6 sec when outputing the value. I now truncate the time stamp to match the TAPR generated time. This program utilizes interrupt drivers for COM1 and COM2 serial ports under DOS. It uses pins 2,3, and 7 on the DB25 connector or pins 3,2, and 5 on the DB9 serial connector. It does not require a "null modem" to send or receive data. The program sometimes needs a "restart" on certain machines. Startup the program, and if you don't see any message traffic in a few seconds, hit to exit the program, and then reenter the command line sequence. To help with serial port problems, I have included the test program "UARTFIFO" which will look for COM1 at 0x3f8, COM2 at 0x2f8, COM3 at 0x3e8, and COM4 at 0x2e8. Additionaly, it will check to see if the interrupts 4 and 3 are correctly wired to the UARTs. It will also test for the presence of a FIFO on the UART, which is important if you are running under Windows 95 or 98. Note that on some laptop computers with an IR port, it will identify that port as a valid serial port, but you can't tie the RS232 data to it. NOTES ON MOTRTCM ver Beta 2 This program will read the Motorola DGPS correction message "@@Ce" and generate a corresponding RTCM 104 message. The program reads the Mot message on COM1, and will send the RTCM output to COM1 or COM2. The program is invoked by "MOTRTCM COM1baud COM2baud". The baud rates are specified as "9600,n,8,1". The 1st rate is mandatory, the 2nd rate is optional, if it is specified, the RTCM messages go to COM2, otherwise, they go to COM1. This allows you to change baud rates. The Mot is stuck at 9600 baud, but most GPS units want 4800 baud. If your computer has both com ports, you can use the 2nd port to change the baud rate. The program may be terminated by hitting . When the program exits, it will print some message statistics. The program was written and tested with a 6 channel Oncore. An 8 channel unit was simulated by stuffing two "Ce" messages back-to-back. The unit will attempt to parse both messages fully. Therefore, it should be capable of parsing up to 12 sat. The original release had an annoying habit of not decoding when 1st run. You had to shut it down, and rerun it a 2nd time, for it to function. I traced that to an older version of my comm routines. I would appreciate any comments on the program operation and/or needed improvements. Additional notes 9/17/99. The 2nd serial port, if used, needs "Null Modem" jumpers RTS - CTS, and DSR-DTR-CD. Or if DB-25, pins 4 to 5, and pins 6 to 20 to 8. If DB-9, 7 to 8, and 6 to 4 to 1. If this isn't done, the program can't transmit the corrections, and will start to "BEEP" loudly when the input buffer on COM1 starts to overflow. Jim Korenz N8PXW jfkorenz@goodyear.com