Simple GPSDO - Questions and Answers
by James Miller G3RUH
I often receive questions about the GPSDO; this document summarises
the replies. These are the topics discussed:
- Why do you call it 'simple'?
- What software is needed to use the GPSDO?
- How can I tell when the GPS is in Lock?
- Why is the date wrong via RS-232?
- 1. Summary of the problem
- 2. How do I reset the displayed date?
- How long does it take to lock up?
- Why do you not use a modern M12+ GPS receiver?
- What GPS antenna should I use?
- Why doesn't my system receive GPS satellites?
- How accurate is this GPSDO?
- How can I order this GPSDO?
- I have a Jupiter; can you make me a GPSDO with it?
- Can you send me the schematic and parts list?
- Where can I get a 10 MHz Distribution Amplifier?
- How can I generate 10 MHz harmonics?
- Do-It-Yourself GPSDO
- Where can I find Jupiter GPS documentation?
- How do I RESET a Jupiter GPS?
- How do I identify a Jupiter GPS?
- Appendix: Jupiter Date Initialisation Design
Last updated: 2020 Jul 19
Why do you call it 'simple'?
It is simple as in 'non-complex'. It represents pretty much the minimum
set of hardware elements you can use to construct a GPS controlled
oscillator. This minimalism is possible because the Rockwell Jupiter GPS
RX has a precise 10 kHz output which greatly simplifies the PLL phase
What software is needed to use the GPSDO?
You do not need any software to use the GPSDO; but you might want to for
interest. http://www.gpskit.nl/downloads-en.htm has a good collection of
related material, including Rockwell's original Labmon (for x86 computers).
Labmon uses the Jupiter GPS native binary protocols for control and display.
The Jupiter also reports in NMEA-0183 plaintext, and the GPSDO is shipped
in that mode. Any software that can process industry standard NMEA data
can display the data. Examples (for x86 computers):
A dumb terminal program will show the NMEA raw data as text lines. Set the
program to 4800 baud, format 8N1.
Explanations of NMEA sentences can readily be found using an internet search
engine. For example.
Please note that the GPSDO serial port is configured as a "modem". It can be
connected directly to a computer's serial port; do not use a "null modem"
interconnection cable or device.
How can I tell when the GPS is in Lock?
Using a dumb terminal program, look at byte 15 of the NMEA $GPRMC
message. When this shows "A", the GPS is in lock. Example:
Another method is to watch the 1-pulse-per-second LED jump into synchronism
with WWVB and similar HF radio time signals, which will happen a minute or
two after power-on.
PIC-based methods are described here:
These devices work best if the Jupiter's Solution Validity Criteria is set to
"the minimum number of satellites for solution = 4" (instead of the zero
default). Then, if the antenna is disconnected, the PIC-based lock
detectors give an immediate reaction. To change the Jupiter setting, see the
section "How do I RESET a Jupiter GPS?" which refers to a file of commands
you can download.
A GPS lock indicator requires added complexity, which is contrary to the
minimalist principle espoused here.
Why is the date wrong via RS-232?
1. Summary of the problem
After power-on and then acquiring satellite lock, the displayed date (via the
RS-232 port) is exactly 1024 weeks earlier than the true date.
This first came to light on 2015 Feb 15 [Sun], GPS Week 1832, after some
20 years of normal behaviour, and appears to be due to the inability of the
firmware of older Jupiters to retain the last used date in its EEPROM.
However, the Jupiter GPS receiver's 'Scorpio' DSP engine is processing the
satellite signals correctly; acquisition of satellites, generation of hardware
1PPS and 10 kHz output signals are perfectly OK. The GPSDO produces its
precise 10.0 MHz output as normal.
If your application does not use the RS-232 data stream, NO action is required.
If otherwise, you might want to reset the date.
2. How do I reset the displayed date?
If the Jupiter's date output is important to you, then you must initialise the
date yourself, as follows.
With the GPS receiver RS-232 stream in NMEA mode, send the command string:
with the appropriate date.
NOTE: It is essential that the Jupiter I/O connector pin 8 is in the "1" (high)
state or not connected (the latter as with the author's GPSDO 0091-000).
Otherwise the date will default to that stored in ROM, 1997-Jun-28.
A file, init_date.txt that contains the above command can be found in the
archive linked in this FAQ's section "How do I RESET a Jupiter GPS?"
Example; for 2015 Dec 31 you would send:
Note: this is 36 ASCII bytes plus 2 terminating bytes CR LF, (hexadecimal
0x0D 0x0A), making a total of 38 bytes. The CR+LF are essential, and must be
in that order. There are 14 ","s in the string. There is NO tolerance for
error in this byte sequence. If it doesn't work, then your terminal program is
not sending the correct characters, most probably the line terminators.
If you use Hyperterm, use VT100 Emulation mode. Note: a user has
reported difficulty with Hyperterm, but advised that Teraterm (for x86
computers) in binary mode does work OK.
Investigation shows that you can actually choose any initial date in the range:
Today-919weeks to Today+104weeks
Thus it follows that the initialisation date used in the above example
(2015 Dec 31) will work for you unchanged until near the end of year 2033.
Note: The date is not retained over power down by first generation Jupiters;
later Jupiters have more EEPROM, and do retain the date.
For more information about this date initialisation topic, see the appendix at
the end of this FAQ document.
How long does it take to lock up?
To be usable, three things have to happen; the GPS receiver must acquire
satellites; the OCXO oven must warm up; the PLL must pull into lock with the
GPS. For practical purposes the GPSDO is ready for use after 15 minutes.
By then it will be accurate to better than 10-10 equivalent to
1 Hz at 10 GHz, and improving.
Why do you not use a modern M12+ GPS receiver?
Because it does not have a 10 kHz output.
What GPS antenna should I use?
Almost any antenna will do. It should be 'active' and have enough gain to
compensate for cable loss, typically 1 dB/m for RG174, with 6 dB to spare.
RG174 cable is the very thin stuff, about 3mm diameter.
For example "26dB gain" would be suitable for a 20m cable run. The GPS
receiver supplies +5V DC along the cable to the antenna, and the load should
not exceed 100 mA. Typical antenna consumption is 5-20 mA. A male SMA is
required on the cable at the GPSDO end.
There are hundreds of GPS antennas available on eBay. In a portable
situation, you'll probably want something small that can rest on top of the
equipment, and the 'puck' antenna is entirely adequate. You can of course
use a puck antenna in a fixed station/laboratory situation.
If you require a laboratory grade antenna, but do not wish to spend
hundreds of $$, then look out for the HP/Symmetricom 58532A or the
Panasonic VIC100. The HP58504A is good too. Often on eBay.
Why doesn't my system receive GPS satellites?
Every problem of this kind reported to me has been due to a poorly positioned
antenna, usually indoors in a window. This is far from ideal. Some glass
does not pass L-band signals too well. An indoor antenna picks up the warm
room's noise. A window location sees half of the sky at best. North facing
views see fewer satellites than South facing (in the N. hemisphere).
Give it a chance! The performance of a radio-based equipment, such as this
GPSDO, is strongly influenced by the received signal quality. GPS reception
is line-of-sight. Be sure to mount your antenna where it has an unobstructed
view of the sky.
How accurate is this GPSDO?
Oscillators have several defining properties, in particular accuracy and
stability. These are interrelated, and nicely summarised at:
Refer to the image in the above link; the OCXO and the GPSDO are measured
for these factors.
The accuracy, taken over a very long period, is the same as that of the GPS
system itself, parts in 1014, so accurate as to be neglected for most
In the short term, over a 10 second period, the accuracy expressed as a
fractional deviation from 10 MHz is within +/-3x10-11 99% of the time.
This equates to around 0.1 Hz RMS at 10 GHz.
Stability, or "jitter" is conventionally described by the statistic called
Allan Deviation (see the NIST link above). Typically, at T=1 it's
2x10-12, T=10 is 5x10-12, T=100 is 4x10-12 and then it falls steadily to
under 1x10-13 at 1 day. There is some spread from sample to sample, but
it is unlikely to be more than 2x greater than the above.
The phase noise (i.e. very short term jitter) is excellent; multiplied by
1000, a pure tone at 10 GHz has barely a hint of noise. Mainly it reveals
the instabilities of one's downconverter ...
An interesting comparison of several GPSDOs, including this one, is at:
How can I order this GPSDO?
As of 2017 Nov, after 10 years and supply of 550 units, this GPSDO has reached
the end of production. This is because I've no more Jupiter GPS engines.
Adequate spare parts have been retained for service/repair purposes.
When I've tidied up the residual contents of my stores, there will be surplus
items, which I will offer for sale, notably OCXOs.
I have a Jupiter; can you make me a GPSDO with it?
The need to order parts in batches of 100 means that this is impractical.
Can you send me the schematic and parts list?
Documentation was supplied with the GPSDO.
Where can I get a 10 MHz Distribution Amplifier?
Look at the (sometimes available) TAPR TADD-1. It takes a 1V RMS sinewave
input and has six outputs. The input and all outputs are DC isolated.
A smart enclosure is available: http://www.tapr.org/ (USA).
A 4-way unit, available made and tested or at PCB and kit level is available
from Down East Microwave (USA).
For a 2-way splitter, try a simple passive Wilkinson divider. Source.
How can I generate 10 MHz harmonics?
If you are comfortable with self-build take a look at this design by f5cau.
This unit generates harmonics at 1 MHz intervals to beyond 10 GHz.
(Originally at http://f5cau.pagesperso-orange.fr/marqueur/page_marq.htm).
I have a Jupiter GPS and a 10 MHz oscillator I found on eBay. Can I make
myself a simple GPSDO?
Yes; see http://www.jrmiller.online/projects/ministd/frqstd0.htm
Where can I find Jupiter GPS documentation?
http://www.gpskit.nl/downloads-en.htm has a good collection of Rockwell
documentation in one place. Navman, who acquired the interests in
Rockwell/Conexant's GPS brand 'Jupiter', no longer list legacy documents,
which is reprehensible.
How do I RESET a Jupiter GPS?
Instructions for restoring a Jupiter GPS receiver to the factory default
state and/or GPSDO-friendly state are here.
Other useful commands are included.
How do I identify a Jupiter GPS?
A typical Jupiter product number is TU30-D140-221
You can tell explicitly by looking at the underside. There's a small dark
panel with some fat white numbers in it. They look something like this:
In this example:
221 is the model suffix (as in TU30-D140-221)
9932 is a date code (1999 week 32)
GPXO is a production ID
The TU30-D140 product identification is in white legend just above the
fat white numbers. Below the fat white numbers is the part number
of the bare PCB itself, in copper trace under green, typically TU30-D145-027
You can also tell something from the eprom label on the topside.
-141 models have "JUP7" and "V118" (and straight up MCX connector)
or "JUP8" and "V180"
-221 models have "JUP8" and "V180" (and straight up MCX connector)
-151 and -231 are as above, but with a right angle MCX connector.
"Vxxx" is the firmware version number, e.g. V1.80
GPS Global Positioning System
GPSDO GPS Disciplined Oscillator
NIST National Institute of Standards. Formerly NBS.
NMEA National Marine Electronics Association
MCX A sub-miniature coaxial connector
SMA A sub-miniature coaxial connector
OCXO Oven Controlled Crystal Oscillator
PLL Phase-locked loop
RX Receiver, as in radio RX
Appendix: Jupiter Date Initialisation Design
When the older Jupiter GPS RX is powered on it has a default start date, Week
912 (1997 Jun 28). When the RX acquires satellites the displayed date gets
updated. Nowadays that date is likely to be in error by 1024 or 2048 weeks.
There is interesting detail ...
The GPS Week Number broadcast by the GPS satellites is assigned 10 bits, which
provides a range of only 0-1023 weeks. GPS Week 0 is 1980 Jan 06.
The earliest Jupiter firmware dates from mid-1995. As 1024 weeks is 19.6 years,
when the Jupiter GPS receiver was released, the date was already around week
800 and most of the span 0-1023 was consumed. At true week 1024, the GPS
broadcast would wrap round and start again from 0, which would cause dates to
revert to the start of 1980. And by the middle of the Jupiter's peak of
production, at the date 1999 Aug 22 the wrap-around would already have
happened! A resolution of this by the Jupiter firmware was needed.
A simplistic solution is that a GPS receiver can assume broadcast GPS Week 0 is
actually week 1024. By this modification, GPS broadcast week numbers 0-1023
are interpreted as true week number 1024-2047, the period 1999 Aug 22 - 2019
Mar 31. At the end of that final week, 2019 Apr 06 23:59:59 the week would
wrap around to week 1024, 1999 Aug 22. This is what happened to many GPS
However some GPS receivers, once they are manually date-initialised, can
remember the rollover date event in their ROM and so continue with broadcast
GPS Week 0-1023, being equivalent to true week 2048-3071, which is
2019 Apr 07 - 2038 Nov 14, and so on.
The early (1995 on) Jupiter designers took a subtly modified approach. Because
Jupiter production commenced around week 800, the span of the 1024 weeks was
chosen to be offset, such that the valid span is true weeks 808-1831
inclusive. That is, NOT 0-1023 1024-2047 or 2048-3071 etc, but instead
overlapping part of first era and most of the the second.
Thus, due to the Jupiter's offset design, GPS broadcast Weeks Numbers mapped as
Broadcast weeks 808-1023 map to true weeks 808-1023 = 1995 Jul 02 - 1999 Aug 15
Broadcast weeks 0- 807 map to true weeks 1024-1831 = 1999 Aug 22 - 2015 Feb 08
At rollover, i.e. the start of week 1832 (2015 Feb 15) the displayed date
reverted to week 808 (1995 Jul 02), an event which was widely reported at the
The forgoing describes the default behaviour when there is no user control.
However a user can command the Jupiter to any required date, the real date
being the obvious choice. In fact, due to the offset nature of the Jupiter
week number handling, provided the offered date is with the range
GPS_Week_Today-919 weeks and GPS_Week_Today+104 weeks, then when satellites are
acquired, the Jupiter GPS receiver will magically display the correct date.
Notes by James Miller 2020 Jul 19