|For novel ideas about building embedded systems (both hardware and firmware), join the 40,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.|
By Jack Ganssle
It seems everyone who has an automotive GPS has a story about being misled by their e-nav device. Most are tales of annoying misses, of being taken to the wrong side of town. Some are dangerous: a few weeks ago a friend, returning from a late-night session at an unfamiliar bar, was guided home by his GPS. The route was accurate, but it took him through a section of Baltimore one shouldn't frequent at night, one where, on this night, subhuman morons started shooting at each other as he drove by.
Some are absurd. According to http://www.thesun.co.uk/sol/homepage/news/weird/article1447400.ece a Gibraltar-bound truck driver misprogrammed his GPS and was taken 1600 km off course. Turns out there's a Gibraltar Point in England. One wonders how he got across the Channel without noticing a problem.
Last month I was in Florida looking at colleges with my daughter. We were off the useful part of the rental-car map so relied on my phone's GPS. It told us to drive 6 miles north on the Florida Turnpike, which struck me as odd. Wasn't our destination south? But I complied and after 6 miles it told me to get off, make a U-turn, and head 22 miles south on the same road. Had I followed my intuition - that we were already north of our destination - we would have saved 12 miles.
Pretty dumb, huh?
Yet. what really would have changed? With no map the GPS was our only navigation tool. So we were helpless.
Except that not long ago no one had GPS. Other tricks, ones that have worked for hundreds and even thousands of years, were available. Kristy could have asked someone for directions (being a guy, that's not an option for me). We could have purchased a map, called the school, or stopped at a gas station.
There's nothing new about blindly following the outputs of our electronic creations. A teacher recently complained to me that her high school kids can't do arithmetic. Five times five? Sure, punch it into the calculator and note that it's exactly 3125. The don't notice, though, that their nimble SMS-trained fingers missed the times button and hit y to the x.
Spreadsheet help us make thousands of mistakes per second. Unassisted a human can only achieve a somewhat pitiful few errors per minute.
I think one challenge we embedded people have is to check the results we give. Though the calculator has no context to know which button the user should have pressed, it seems reasonable that a nav system could look ahead and see the inherent conflict in ordering one to head due north and then due south. I have pictures of big outdoor thermometers displaying temps like 505 and -196 degrees, both impossible, on this planet, at least. Why didn't the developers check the results for "reasonableness?" There's the digital parking meter demanding $8 million in coins, the antivirus software that warned the definitions were 730,400 days out of date, and oh so many receipts giving totals like "$9.9999999999".
Stuff happens. We're not smart enough to anticipate all eventualities. Check your goesintas and goesoutas.
But the user also has a responsibility to question data that appears odd. That slide-rule order-of-magnitude sort of reasoning we relied on to guide us years ago remains important in the microelectronics era.