A low cost GPS Monitor
The purpose of this project is to build a low cost device that can monitor the serial packets generated by a
Trimble Thunderbolt GPS Disciplined Oscillator (GPSDO).
The intention is to be able to decode either standard NMEA or Trimble TSIP packets and present sufficient information
on a 2 line LCD display to ensure that the receiver is working and under what conditions.
It is very much work-in-progress, hard hat required before you read the rest of the page :-)
Here is the hardware for my prototype GPS Monitor, based on the following:
- Processor is a Silabs C8051F330 mounted on a Toolstick (Ref 1). You can use the
DIP version of the chip (available at Mouser (Ref 2)) and mount it on a piece of perf board.
Note: the Toolstick has the advantage of using a less expensive programmer, and it already has a pot that can
be used to adjust the LCD contrast. I like recycling.
- Development tool is the free SDCC C Compiler (Ref 3).
I use version 2.6.0 for Win32, which I have saved here, just in case it
would fall out of the Sourceforge repository.
The current version (July 08) is 2.8.0, but 2.8.0 would give me errors when compiling a project I inherited,
so for now I will stick with 2.6.0.
- Notes on the SDCC compiler and other 8051 development tools are available here (Ref 7).
- Source code is available (GPL 2.0)., see the Wiki (Ref 5).
- Display is a common 2 lines x 16 characters device available from many places (Ref 4)
- Additional hardware requirements are limited:
- An unregulated 7-12V @ 50mA power supply (there is a need for both 5V and 3V voltages,
obtained via inexpensive 3 terminal regulators, or one 5V regulator and 3 diodes to drop the 5V down to
~3V for the processor).
- One NPN transistor (2N2222 or equiv) for RS-232 level conversion and associated
bias resistors.
- Optionaly a switch or push button to select display modes.
- Enclosure (or not) is up to you.
Here is the first prototype. I installed an LED on P0.7 for troubleshooting. As of v0.0.4,
the LED only receives very narrow pulses and generates no visible light, but I use it as
a test point for the scope probe.
The schematic (I have no shame). The part on the left is the component side of the
Toolstick. Please note the very elaborate RS-232/TTL converter...
Component side view of the Toolstick and LCD. I used a 3 terminal voltage regulator for the 5V,
and 3 diodes to drop the 5V down to ~3V for the processor. I used one of the LCD interface pad as
a holder for the 3V supply to the Toolstick (the LCD is used in 4 bit mode, so data on the other
4 bits is irrelevant.)
The green LED on the Toolstick is connected to P1.3 and is not currently used by
the firmware as of v0.0.4. The state of P1.3 is affected by the current LCD driver,
so until this driver is rewritten, that pin cannot be used.
Here is a picture of the second prototype, intended for a Vacuum Fluorescent display (Noritake,
Ref 6).
And here is a picture with the display, running:
Here is the schematic of Prototype #2:
The processor used, a C8051F330P, is in a 24 pin package, with 4 pins that are not used.
That particular device is now obsolete and has been replaced with the C8051F330D (or C8051F330GP), which
is the same processor packaged in a 20 pin package. The pinout of the P device is available
in Ref 8.
Here is the schematic with the D/GP processor:
Please note that the 10k potentiometer is only necessary with the LCD display (contrast adjustment).
The VFD does not have (or need) a contrast adjustment. It has a brightness adjustment capability in software.
The GPSMon firmware sets the brightness to high.
Finally, here is a picture of both units side by side, in dim light. Which one do you prefer?
(to be honest, the LCD is equipped with LED backlighting, which was not connected)
The current state of the project and firmware download info is available in my Wiki (Ref 5).
And now, just for fun, here is a picture taken by Dan Karg of his GPSMonitor showing the 2008 leap second (the Thunderbolt was configured to output UTC):
References
-
Silabs ToolStick page: www.silabs.com/products/mcu/Pages/ToolStick.aspx,
please note that you will need the 330 Toolstick and a Base Adapter. As of this writing, the total cost is about
$28.00 + S/H ($10 for the Toolstick and $18 for the Base Adapter). The Base Adapter can be reused across various
projects of course.
-
Buy the C8051F330-GP at mouser.com.
If you buy the DIP device, you will need to buy a standalone programmer, or buy a small adapter that plugs in the Base Toolstick adapter to provide a standard JTAG interface.
-
SDCC for Win32, at sourceforge.net/project/showfiles.php?group_id=599
(scroll down to sdcc-win32 and select 2.6.0, then click on "sdcc-2.6.0-setup.exe")
-
There are many sources for the ubiquitous 2x16 character LCD displays. All Electronics has several models starting at $6.00
www.allelectronics.com
-
GPS Monitor Wiki: /dokuwiki/doku.php?id=precision_timing:gps_monitor
-
Noritake Vacuum Fluorescent Displays: www.noritake-elec.com/uversion.htm.
Alternately, Mouser sells VFDs made by Newhaven Display that are cheaper and may work: Search for M0216SD-162SDAR2-1.
I have not tried them, so try at your own risk.
-
Notes on SDCC and other 8051 development tools are in the Wiki:
/dokuwiki/doku.php?id=tools_for_the_silabs_and_other_8051_micro_controllers
-
Pinout of the C8051F330P: C8051F330P_Pinout.pdf
-
Another implementation for the Z3816A Timing Receiver: www.xertech.net/ClockUT/ClockUT1.html.
Read what Rex had to say about it in the wiki
Return to KO4BB's Home Page.
Except as noted, this entire site Copyright © 2002-2010.
KO4BB
All rights reserved.
Last Updated:
January 23 2010 22:27:37