Hey, my GPS THINKS it is 2099, it must be time to PARTY!
To understand this problem, you have to follow along for just a little bit on how the GPS system works. Don’t worry, it won’t get TOO tech-y on you! If you already really know how this thing works, please forgive me for more than a few gross simplifications in the interests of clarity.
Every GPS receiver needs to know EXACTLY where the satellites are that it is using to report your position. It does this by knowing the exact time and date to a very tiny fraction of a millisecond. It collects this time information from the satellites themselves, each of which has an extremely accurate atomic clock onboard.
The GPS satellites broadcast time in a two part code, the first is an integer that counts the weeks since the start of the last “GPS epoch”, and the second is the number of milliseconds since the start of the week. Because it is encoded in a 10 digit binary number, a GPS epoch is 1024 weeks long. The first GPS epoch started on January 5, 1980, and ended on August 22, 1999 when the system started over from “Week Zero.” All that is highly confusing to us poor humans, but makes it easy for the computers. This whole problem starts because we insist that the computers tell us what the time and date are in a format WE understand.
Now, nobody who really knows is talking about EXACTLY what has gone wrong, so the rest of this is a bit of guesswork on my part. Here is what I know, built from anecdotal reports on various internet forums, and official US Coast Guard Navigation Center reports, and more of what I do not know, but guess to be true based on the best information available to me. It affects many different brands of GPS devices, and I have not seen a comprehensive list of those affected. I suspect, but do not know, that they all used the same manufacturer’s GPS engine in their device.
It started on just after midnight, GMT, October 22, 2018 when the GPS week code cycled from 999 to 1000. Suddenly, all of the affected devices were unable to report to their human masters what the correct date was. Some of them reported no date at all, some of them reported a date in 1999, and others in 2099. This is apparently a flaw in the internal program of the chip that calculates the human readable date from the binary number. “Somebody” did not allow enough memory space for a 4 digit, decimal week number to do the calculations with. And then a whole, long, list of more “somebodies” did not adequately test the resulting code.
Fortunately, the internal clock of the GPS seems unaffected since they are still able to track satellites and report correct positions. In some cases however, the incorrect date causes other issues ranging from simply annoying, to seriously dangerous.
In my case, the malfunctioning device is a B&G Zeus Touch, T12, the main navigation computer on Harmonie and up until now our primary source of GPS position data. Since it no longer knows what the correct date and time are, it can no longer correctly report the tides and currents for my local area. This could be catastrophic for someone who did not know there was a problem and just followed the data that has always been right displayed on his screen.
The Zeus T12 is also the source of the time and date for all of the other devices connected to the data network on the boat. Some of these devices use the time stamp from the GPS to help them sort the sequence of the incoming data. If those devices can not understand the date, they can not sort the data. I was able to partially fix the issue by installing a ZG100 standalone GPS on my NMEA2000 network and set the “GPS Source” to that device.
Unfortunately, the T12 still insists on sending out what it thinks is the correct time on the network. Today (Dec 4, 2018) it is broadcasting the date as April 21, 99. Some devices on the network interpret this as “1999,” some as “2099,” and others recognize it as invalid and ignore it. I have managed to work around this issue by carefully managing the sequence in which the various devices get turned on. Not exactly a confidence inspiring solution.
I did call Navico/B&G Tech Support today. As I expected, “Engineering is working on it.” But what I really wanted to do was find a way to turn off the GPS engine inside the T12 so it would stop contaminating the network with invalid dates and confusing the other devices. Unfortunately, that can not be done. The support tech did say that Navico would tell me when they had a solution. Unfortunately, he did not have an answer about how–exactly–they were going to tell me that, short of me actually going to the support website every day and look for a software update. Since this affects mostly devices that are outside of their normal software support cycle, I am not holding my breath…
There is another one of these vulnerabilities to poor coding practices coming up in April 2019 when the 10 digit binary code for the date goes from 1024 to 0000. That one actually is more widely anticipated, as an issue so MAYBE has been better addressed…
One of the disappointing things for me has been the relative stealth that this problem has had. I am pretty plugged in to the information circulating in the world of sailing, and this has not been broadcast to the general community. I have not seen ANY mention of the issue on a device maker’s website. You have to actively go looking for it, and there are very few real explanations for what has happened, and what devices are affected.
We were lucky–this time. The software error did not affect the reported position–only the date output. Another kind of mistake could easily be waiting for us that will disable some, most or all of our GPS devices.
If you are one of those who thinks that paper charts and traditional navigation skills are archaic and irrelevant, maybe you should think again.