Jack Ganssle, Editor of The Embedded Muse Jack Ganssle's Blog
RSS Feed This is Jack's outlet for thoughts about designing and programming embedded systems. It's a complement to my bi-weekly newsletter The Embedded Muse. Contact me at jack@ganssle.com. I'm an old-timer engineer who still finds the field endlessly fascinating (bio).
For novel ideas about building embedded systems (both hardware and firmware), join the 35,000 engineers who subscribe to The Embedded Muse, a free biweekly newsletter. The Muse has no hype and no vendor PR. Click here to subscribe.
This month's giveaway is a BBC Micro:bit Go Bundle.Enter here.

A Lack of Forethought

January 16, 2020

Remember Y2K? Last year we had another Y2K problem. In April many GPS receivers failed due to some developers' lack of forethought. Or is it planned obsolescence?

A quick thought problem: suppose you were reading an input ten bits long that constantly increments. Would you anticipate that the counter could roll over, and take some action to mitigate this very clear problem?

Turns out that the GPS satellites broadcast the week number in a ten-bit integer. That accommodates about twenty years of weeks, after which the number restarts at zero. Own a GPS receiver manufactured more than 20 years before April 2019 and its little brain may be scrambled after that date... if the firmware folks didn't anticipate the rollover.

I guess this wasn't considered much of a headache. Who keeps any sort of electronics for two decades? Looking around the office the only equipment I have that is so ancient is an old HP signal generator.

In those years we've replaced the TV several times due to failures. Test equipment rotates through here constantly. Radios – well, I'm not sure if we have a conventional radio anymore as we stream stations off the net. We've been through several cars during those years. The ham radio, a Yaesu FT-840 is more than 20, but needs some serious attention.

And our sailboat's main GPS, a Furuno GP31, is 22 years old. This is the unit mounted over the chart table, the one I use for all our electronic navigation. Sure enough, last April it started spewing silly data.

Interestingly, the position data it gives appears to be accurate, but the date and time are bogus.

Picture taken Jan 16, 2020. Notice anything odd? It does give Finksburg's position accurately. Near as I can tell the house is not moving at 0.1 knots.

We don't use the GPS on the Chesapeake Bay. But we do sail far offshore, having taken Voyager to Bermuda, the Caribbean,  and many other distant places. The GPS is critical on those trips. I don't know if the position data will remain accurate, so have replaced the unit. And we need accurate time for, of all things, navigating with the sextant, a long-obsolete process I still do for fun and practice. We "rate" the clocks before leaving land (set them accurately and determining their rate of drift) using the time produced by the GPS. A four second error skews position by a mile.

Interestingly, the new GPS does have a provision to deal with the next week rollover, 20 years from now. I'm glad they've decided to deal with this, though will be too old for much sailing then.

You'd think that a ten-bit-wide counter would signal potential trouble. Alas, overflows seem to be a constant problem in our business despite too many examples of these problems.

It's sad to have to toss a piece of advanced technology for any reason, but that's doubly true when the hardware is still perfectly good but disabled by bad code.

Feel free to email me with comments.

Back to Jack's blog index page.

If you'd like to post a comment without logging in, click in the "Name" box under "Or sign up with Disqus" and click on "I'd rather post as a guest."

Recent blog postings: