|Jack Ganssle's Blog
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 firstname.lastname@example.org. 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 39,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.
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.
More thoughts on sextant navigation here.
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:
- A 72123 beats per minute heart rate - Is it possible?
- Networking Did Not Start With The IoT! - Despite what the marketing folks claim
- In-Circuit Emulators - Does anyone remember ICEs?
- My GP-8E Computer - About my first (working!) computer
- Humility - On The Death of Expertise and what this means for engineering
- On Checklists - Relying on memory is a fool's errand. Effective people use checklists.
- Why Does Software Cost So Much? - An exploration of this nagging question.
- Is the Future All Linux and Raspberry Pi? - Will we stop slinging bits and diddling registers?
- Will Coronavirus Spell the End of Open Offices - How can we continue to work in these sorts of conditions?
- Problems in Ramping Up Ventilator Production - It's not as easy as some think.
- Lessons from a Failure - what we can learn when a car wash goes wrong.
- Life in the Time of Coronavirus - how are you faring?
- Superintelligence - A review of Nick Bostrom's book on AI.
- A Lack of Forethought - Y2K redux
- How Projects Get Out of Control - Think requirements churn is only for software?
- 2019's Most Important Lesson. The 737 Max disasters should teach us one lesson.
- On Retiring - It's not quite that time, but slowing down makes sense. For me.
- On Discipline - The one thing I think many teams need...
- Data Seems to Have No Value - At least, that's the way people treat it.
- Apollo 11 and Navigation - In 1969 the astronauts used a sextant. Some of us still do.
- Definitions Part 2 - More fun definitions of embedded systems terms.
- Definitions - A list of (funny) definitions of embedded systems terms.
- On Meta-Politics - Where has thoughtful discourse gone?
- Millennials and Tools - It seems that many millennials are unable to fix anything.
- Crappy Tech Journalism - The trade press is suffering from so much cost-cutting that it does a poor job of educating engineers.
- Tech and Us - I worry that our technology is more than our human nature can manage.
- On Cataracts - Cataract surgery isn't as awful as it sounds.
- Can AI Replace Firmware - A thought: instead of writing code, is the future training AIs?
- Customer non-Support - How to tick off your customers in one easy lesson.
- Learn to Code in 3 Weeks! - Firmware is not simply about coding.
- We Shoot For The Moon - a new and interesting book about the Apollo moon program.
- On Expert Witness Work - Expert work is fascinating but can be quite the hassle.
- Married To The Team - Working in a team is a lot like marriage.
- Will We Ever Get Quantum Computers - Despite the hype, some feel quantum computing may never be practical.
- Apollo 11, The Movie - A review of a great new movie.
- Goto Considered Necessary - Edsger Dijkstra recants on his seminal paper
- GPS Will Fail - In April GPS will have its own Y2K problem. Unbelievable.
- LIDAR in Cars - Really? - Maybe there are better ideas.
- Why Did You Become an Engineer? - This is the best career ever.
- Software Process Improvement for Firmware - What goes on in an SPI audit?
- 50 Years of Ham Radio - 2019 marks 50 years of ham radio for me.
- Medical Device Lawsuits - They're on the rise, and firmware is part of the problem.
- A retrospective on 2018 - My marketing data for 2018, including web traffic and TEM information.
- Remembering Circuit Theory - Electronics is fun, and reviewing a textbook is pretty interesting.
- R vs D - Too many of us conflate research and development
- Engineer or Scientist? - Which are you? John Q. Public has a hard time telling the difference.
- A New, Low-Tech, Use for Computers - I never would have imagined this use for computers.
- NASA's Lost Software Engineering Lessons - Lessons learned, lessons lost.
- The Cost of Firmware - A Scary Story! - A hallowean story to terrify.
- A Review of First Man, the Movie - The book was great. The movie? Nope.
- A Review of The Overstory - One of the most remarkable novels I've read in a long time.
- What I Learned About Successful Consulting - Lessons learned about successful consulting.
- Low Power Mischief - Ultra-low power systems are trickier to design than most realize.
- Thoughts on Firmware Seminars - Better Firmware Faster resonates with a lot of people.
- On Evil - The Internet has brought the worst out in many.
- My Toothbrush has Modes - What! A lousy toothbrush has a UI?
- Review of SUNBURST and LUMINARY: An Apollo Memoir - A good book about the LM's code.
- Fun With Transmission Lines - Generating a step with no electronics.
- On N-Version Programming - Can we improve reliability through redundancy? Maybe not.
- On USB v. Bench Scopes - USB scopes are nice, but I'll stick with bench models.