[MyHosting.com]   [KO4BB Home Page]   [Manuals Home Page]   [KO4BB Wiki]

GPS Monitor

This is the “News” page of the GPS Monitor project (it's easier for me to frequently update pages via the Wiki.)

The GPS Monitor project page is at http://www.ko4bb.com/getsimple/index.php?id=a-low-cost-thunderbolt-gpsdo-monitor

The most recent version of the source code is at http://www.ko4bb.com/Timing/GPSMonitor/src/TSIPMon-v034.zip

Please note that the code version used in these devices does not allow you to change the time zone, which is fixed at US Central Time (Chicago), or the default GPS offset, set at 16 seconds (currently 17 seconds, as of December 2016).

eBay Warning

Enterpreneurial eBay sellers, usually based in China are offering devices based on this copyrighted design and software, including links to this page offered as “manual” or “for help” or “support”, without explicit reference or attribution to this site.

I am not associated with any of these operations. They use my design and my software without permission.

While the software is released here, the source code explicitly indicates the GPL copyright. Any use should be in full observance of the GPL rules.

Development Progress

  • July 12, 2008: The serial routines and message parser work. Only packet 0x8F-AB is being decoded at the moment, it is the Primary Timing Packet. Some of the data in the packet is decoded fine, and some seems to return unexpected values, so troubleshooting continues.
  • July 13, 2008: v004 is basically working, decoding packets 0x8F-AB and 0x8F-AC. Line 2 of the display has the Disciplining Mode, as defined in the TBolt Manual. Because the LCD is fairly slow, I could not process and display the first packet before the second packet was coming, so I double buffered the receive buffer. Packet 0x8F-AC can be 67 bytes long, so this uses a fair amount of RAM. Now is the time in a project when featureitis typically catches up with me…
  • July 13, 2008: v008 has all alarms decoded and displayed (in sequence if more than one) on the second line of the display, alternating with the Disciplining Mode. If there is no alarm, the Disciplining Mode is displayed continuously. The zip archive has been fixed, the archive for v004 was missing some files and the Silabs workspace was confused.
  • July 19, 2008: v010 has two push-buttons and two LEDs. For now, only one push-button is operational, it switches the second display line between Disciplining mode and Receiver mode. I am open to suggestions for other information that could be displayed. I am planning on using the second switch to display DAC voltage or temperature.
  • July 29, 2008: v012 displays Disciplining Mode, RX Mode, Temperature or DAC voltage on line 2 of the display, by pressing a switch connected between P0.2 and ground.
  • August 2, 2008: v013 fixed a corruption problem with the VFD (apparently not affecting the LCD). The serial interrupts occurring while the VFD is being addressed apparently cause timing errors that result in corrupted data being displayed. The fix consists of waiting until the end of serial messages to write to the display.
  • December 28, 2008: v021 is your Christmas present, Dan Karg fixed a problem with his LCD, hopefully making the LCD routines more robust, and I believe I have finally fixed a random corruption issue with the VFD (by making the LCD port push-pull instead of open collector). Also, the display continuously scans a number of parameters on the second line at a 2 second rate. Very nice.
  • January 1, 2009: v022 has more decimals on the DAC voltage (4 instead of 2) and eliminates a bug in the Temperature and DAC voltage displays.
  • February 14, 2011: v033 has the capability to apply the GPS offset (currently 15 seconds), time zone offset (source code has time zone offset for US Central time, -6 hours) and Daylight Savings Time. TZ and DST are selectable (ON/OFF) by toggle switches to P0.6 (pin 18) and P0.7 (pin 17) respectively. Grounding these pins causes GPS time to be displayed (as generated by the Thunderbolt). GPS offset is applied automatically when local time is selected (by leaving P0.6 open).
  • April 8, 2012: v034 reads the GPS offset directly from the Thunderbolt data packet, so the monitor will not need to be updated when a leap second is added, as it is planned for June 2012. Also, this version takes advantage of the 20×2 digit display of the type used by fluke.l and displays the time “zone” (i.e. GPS, or CST, or CDT as appropriate) to the right of the date. The firmware is compatible with 2×16 displays, simply you won't get the time zone info. Finally, the polarity of the two switches has been inverted for compatibility with versions before 033 (by default, with switches open or not connected, displays GPS time). Please note that the GPS offset information may not be available from the Thunderbolt immediately after power up, as it is only sent from the satellites every 12.5 minutes. Until the actual GPS offset information is received by the Thunderbolt, it will be assumed to be zero.

Compiler and Project setup

The Silabs IDE is peculiar about the location of project files. If you use a different directory structure than me, you will get error messages every time you install a new set of files.

I have created and installed all the files for my project here: C:\SDCC\GPSMon\dev

The Compiler is installed in the default location by the SDCC installer: C:\Program Files\SDCC\

Design Considerations

A 2 lines * 16 characters display does not allow to put much information, compared to what is available from the Thunderbolt, so the issue of which information to display came up to me. I will try to determine a strategy and explain it here.

Line 1 (the top line) always displays time/date, unless there is no signal from the Thunderbolt. If there is no signal after about 1 second, an error message is displayed.

Line 2 is used for other information.

The Thunderbolt data packet 0x8F-AC (Supplemental Timing packet) contains four fields of particular interest: Receiver Mode, GPS Decoding, Disciplining Mode and Disciplining Status. Each field is a byte that contains a number reflecting one of up to 9 possible states out of 256 possible values for the field. Other values are not used. This packet also carries temperature and DAC voltage.

The firmware (v0.1.2) is designed to alternate between Disciplining Status, Rx Mode, Temperature and DAC Voltage in sequence when a switch is depressed.

Construction details

Here are some construction details:

The F330 Toolstick needs to be modified as follows:

  • Remove R8 (this disconnects the potentiometer from the port pin). It is between the pot and the GND solder pad, on the component side.
  • Connect the wiper pin of the potentiometer to the Contrast input of the LCD (pin 3).

Prototype #2 is built using an older DIP version of the chip and a Radio Shack prototype PWB. It takes about an hour to assemble, only very few additional components are required: 3 generic silicon diodes, a small signal NPN transistor and a few resistors and capacitors.

Other issues

  • I measured the current consumption of the Toolstick version with firmware v008 at ~15mA. That includes the two LEDs that are on the toolstick, and each draws about 2.5mA, so that without these LEDs, the device would draw about 10mA. The CPU itself draws about 6mA (per the datasheet, when running at 25 MHz), and I believe it should be possible to reduce the clock speed. Dropping to half would reduce the current draw by about 3mA. I thought the low current consumption would make it possible to power the device from the Thunderbolt's serial port, but none of the “normal” outputs are powered, so no power is available.
  • Prototype #2, when driving an LCD display instead of the Noritake VFD, draws about 8mA.

Additional Thunderbolt information

precision_timing/gps_monitor.txt · Last modified: 2016/12/15 16:32 by ko4bb
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki
Except as noted, this entire site Copyright © 2002-2017. KO4BB All rights reserved.