Here is some historical background on the GPS week number roll-over event of August 1999.
Although I'm sure the 10-bit GPS week rollover was obvious to GPS system designers and known to most GPS receiver manufacturers, this was the first public posting that I know of that discussed the issue:
From: gwinn@res.ray.com (Joe Gwinn) Subject: The Millennium Comes Early to GPS Date: 1996/06/21 organization: Raytheon Electronic Systems newsgroups: comp.protocols.time.ntp I am posting this to the NTP newsgroup because GPS is one of the primary time sources used with NTP. I have good news and I have bad news. The good news is that GPS will not have a "Year 2000" problem. The bad news is that GPS System Time will roll over at midnight 21-22 August 1999, 132 days before the turn of the millennium. On 22 August 1999, unless repaired, many or all GPS receivers will claim that it is 6 January 1980, 23 August will become 7 January, and so on. I would expect that some manufacturers have already solved the problem, but many have not. The details: Section 3.3.4(b) (page 33) of the ICD-GPS-200 rev B (30 November 1987 issue) states that the GPS Week count starts at midnight 5-6 January 1980 UTC, and that the GPS Week field is modulo 1024. This means that the week count will roll over 1024/52= 19.69 years from then, or in 1980+19.7= 1999, only a few years from now. Specifically, first rollover will occur at midnight 21-22 August 1999 UTC. I could find no mention of any field in any GPS message that would tell you which 1024-week cycle you were in. In the July 1993 update of ICD-GPS-200, a note has been added (also on page 33) saying that the week number *will* roll over, and that users must account for this, but no way to accomplish this is mentioned. I take this note as further evidence that there is no way to tell, given only the signal-in-space definition as of July 1993. The GPS SPS Signal Specification, 2nd Edition, issued 2 June 1995, section 2.3.5(b) on page 19, repeats the words of ICD-GPS-200. I have gotten some email traffic indicating that, just as I had suspected, some manufacturers did realize that GPS would soon roll over, and were keeping it to themselves in the hope that the others would fall upon their swords. Not pretty. Our timecode generator supplier was dumbfounded when I raised the issue, couldn't stop thanking me for pointing it out years before rollover. They clearly feel that it could have been a life-threatening disaster for them. Every GPS-related product they had ever made would have come back for repair, under warantee, all at once. Too close for comfort. The firmware in all older units will have to be replaced. This would involve replacement of PROMs; some are socketed, some are soldered. New units presumably will know better than to claim dates from before they were manufactured, and/or will allow the user to directly or indirectly tell the firmware which 1024-week cycle to assume, without requiring replacement of that firmware at the second rollover, in 1980+(2*1024/52)= 2019 AD. Some of this equipment will still be in use then, long after the manufacturer has forgotten the product. However, in spite of everything, not everybody will get the message, so system software will forever have to have an independent idea of what year it is, to know when to disbelieve a receiver or receivers (they could all be wrong), and to handle arguments between various GPS receivers (if only some are wrong). Without a GPS Simulator, there is no way for users to test a GPS receiver for this problem. All most users can do is to ask their manufacturer for a solution, and also to imbue the system software with a suitable degree of skepticism about GPS receivers' sense of time. My intent in posting this note is to alert the entire industry to the problem, allowing it to be solved with minimal disruption to all. As a technial matter, the solution is quite simple. It's the logistics that will take some years. Joe Gwinn |
Here is the updated Usenet posting from Joe. I had sent email to Joe suggesting the 8-bit leap second field could be used, as a last resort, to help determine the GPS cycle number (I was the "fellow at DEC" he mentions below). Joe agrees my idea "does appear to be workable".
From: gwinn@res.ray.com (Joe Gwinn) Newsgroups: sci.geo.satellite-nav Subject: Re: Will GPS system time roll over? Date: Tue Jul 09 18:27:30 MDT 1996 Organization: Raytheon Electronic Systems I have good news and I have bad news. The good news is that the NAVSTAR Global Positioning System (GPS) will not have a "Year 2000" problem. As part of answering our customers' queries about possible "Year 2000" problems, I looked into the more general question of rollover in our time sources. The bad news is that GPS System Time will roll over at midnight 21-22 August 1999, 132 days before the turn of the millennium. On 22 August 1999, unless repaired, many or all GPS receivers will claim that it is 6 January 1980, 23 August will become 7 January, and so on. Accuracy of navigation may also be affected, perhaps severely. Although it appears that GPS broadcasts do contain sufficient data to ensure that navigation need not be affected by rollover in 1999, it is not proven that the firmware in all receivers will take the rollovers in stride; some receivers may claim wildly-wrong locations in addition to incorrect dates. I would expect that some manufacturers have already solved the problem, but many have not. The details: Section 3.3.4(b) (page 33) of the ICD-GPS-200 rev B (30 November 1987 issue) states that the "GPS Week" count starts at midnight 5-6 January 1980 UTC, and that the GPS Week field is modulo 1024. This means that the week count will roll over 1024/52= 19.69 years from then, or in 1980+19.7= 1999.7 (August 1999), only a few years from now. For the record, this is how the precise rollover date was computed: The origin (time zero) of GPS System Time, 00:00:00 UTC 6 January 1980, is Julian Day 2,444,244.500. A GPS Cycle is 1,024 weeks, or 7,168 days, so the first GPS rollover will occur at Julian Day (2444244.5+7168)= 2,451,412.5, which is 00:00:00 UTC 22 August 1999 AD, which is the midnight between Saturday night the 21st of August, and Sunday morning the 22nd of August, 1999. I could find no mention of any field in any GPS message that would tell you which 1024-week cycle you were in. In the July 1993 update of ICD-GPS-200, a note was added (also on page 33) saying that the week number *will* roll over, and that users must account for this, but no way to accomplish this is mentioned. I take this note as further evidence that there is no way to tell, given only the signal-in-space definition as of July 1993. Only the User Spec, described below, is available electronically. ICD-GPS-200 is available in paper only from the USCG Navigation Center (703-313-5900). It is also available from the training and supply company "NAVSTAR Seminars and GPS Supply", at "http://www.navtechgps.com". A more recent authority document is: Section 2.3.5 (pages 18-19) of the GPS SPS Signal Specification, 2nd Edition, issued on 2 June 1995, repeats the words and warnings of ICD-GPS-200, apparently verbatim. The GPS SPS Signal Specification may be obtained from the web as an Adobe Acrobat (.pdf) document, at the US Coast Guard's site at "www.navcen.uscg.mil/gps/reports/sigspec/sigspec.htm". A very good overview of GPS may be found at "http://www.utexas.edu/depts/grg/gcraft/notes/gps/gps.html". There appears to be sufficient information in the GPS signal to allow accurate navigation, even at the moment of rollover. However, unless the receiver firmware programmers were intent on ensuring that their code would operate both through and after rollover, the code may well fail, even though in theory it should be OK. More specifically, if the original acceptance tests did not directly address the issue, it is fairly likely that the firmware will stumble at rollover, and beyond. Even if accuracy of navigation is unaffected, seeing the date off by twenty years is likely to destroy peoples' confidence in the navigational data provided by GPS, and thus in GPS itself. A fellow at DEC, reacting to my postings, suggested that one can use the offset between UTC and GPS, currently (mid-1996) eleven seconds and increasing more-or-less linearly, as a way to tell which 1024-week cycle you are in, at least for the next few cycles. I have looked into this, and it does appear to be workable, if rough. If one burns both the date of manufacture and the then-current value of the GPS-UTC offset into the firmware, it should allow the firmware to solve the rollover problem for at least three GPS cycles, almost 60 years, which should suffice. The GPS signal's UTC-GPS offset (leap seconds) field is documented in GPS SPS Signal Spec sections 2.4.5.5 and 2.5.6 (on pages 32 and 42 respectively). The leap-second history is at the US Naval Observatory's web site at "http://tycho.usno.navy.mil/leapsec.html". I have gotten some email traffic indicating that, as suspected, some manufacturers did realize that GPS would soon roll over, and were keeping it to themselves in the hope that the others would fall upon their swords. One supplier was dumbfounded when the issue was raised, clearly feeling that it could have been a life-threatening disaster for them. Every GPS-related product they had ever made would have come back for repair, many under warantee, and all at once. The firmware in all affected (older) units will have to be replaced. This will involve replacement of PROMs; some are socketed, some are soldered. New units presumably will know better than to claim dates from before they were manufactured, and/or will allow the user to directly or indirectly tell the firmware which 1024-week cycle to assume, without requiring replacement of that firmware at the second rollover, in 1980+(2*1024/52)= 2019 AD. Some of this equipment will still be in use then, long after the manufacturer has forgotten the product, or has himself been forgotten. Nor is it guaranteed that the needed PROMs will still be available twenty and fourty years hence. Without a GPS Simulator, there is no way for users to test a GPS receiver for this problem. All most users can do is to ask their manufacturer for a solution, to write suitable language into purchase specifications, and to imbue the system software with a suitable degree of skepticism about GPS receivers' sense of time. I neither have nor know of any real list of who does and does not have the problem solved. It wouldn't be that hard for those possessing a GPS Simulator to make the needed tests. Simply set the Simulator up to tell suitable lies to the receiver-under-test. As this is a receiver firmware design issue, one test of each unique design (receiver firmware version) should suffice. And, while we are testing things, we could also verify that the Gregorian leap-year calculations are done correctly. These are used in the conversion from GPS System Time to UTC. For some specific algorithms, see "Calendrical Calculations", by Nachum Dershowitz and Edward M. Reingold, "Software Practice and Experience, v.20, n.9, September 1990, pages 899-928. Is the government going to fix the problem? Not to my knowledge, and it would take ten years, plus replacement of all existing receivers. They are at the end of collecting requirements for the next generation of GPS; perhaps adding some GPS-Cycle-number bits to a NAV message somewhere is being considered. In any case, such a fix would be something like ten years in the making. For the current list, see "http://www.navcen.uscg.mil/gps/reports/ordreq.txt". A second civil frequency (for a total of three carrier frequencies) is also being considered. This would involve big changes all around, and so will be a golden opportunity to fix and/or improve this and many other things. See "http://www.navcen.uscg.mil/gps/cbdfinal.txt". Reportedly, the official response (from the GPS Joint Program Office (JPO) Public Affairs office) as of July 1996 is: "JPO is continuing to assess the impact of the GPS time rollover on military GPS receivers. Currently, we [JPO] do not believe the JPO-procured military receivers will be impacted. However, each manufacturer, civil and military, has a unique design and may be impacted by the rollover, depedent upon the manufacturer's implementation of ICD GPS-200." In spite of everything, not everybody will get the message, so system software will forever have to have an independent idea of what year it is, and where it it, to know when to disbelieve a receiver or receivers (they could all be wrong), and to handle arguments between various GPS receivers (if only some are wrong). Soon, it will suffice to disbelieve any receiver claiming to be in GPS Cycle zero (1980-1999). My intent in posting this note is to alert the entire industry to the problem, allowing it to be solved with minimal disruption to all. As a technical matter, the solution is quite simple. It's the logistics that will take some years. This note is updated as new information becomes available: 9 July 1996 version. Joe Gwinn |
These postings are still archived at Google Groups last I checked.
Interestingly some months after my suggestion entered the public domain engineers at Trimble Navigation patented it. Patent 5,923,618 "Leap-second cure for 1999 GPS rollover problem" was filed November 12, 1996 and granted July 13, 1999.
I figure it's a cheap way to get someone else to file your patent for you! In Trimble's own words my idea was a "novel and highly effective solution to the 1999 GPS rollover problem". Here's the text as obtained from uspto.gov:
Leap-second cure for 1999 GPS rollover problem Abstract The timing system for GPS has a week counter that recycles at intervals of about 20 years. The first recycling will occur on Aug. 22, 1999, producing a time ambiguity in GPS signals. The invention employs a count of leap seconds to resolve the ambiguity and extends the useability of GPS in its present format by more than a century. |
We claim: |
BACKGROUND OF THE INVENTION |