Last month I received an interesting e-mail in response to a column I wrote for Embedded Systems Design called The Lawyers are Coming! My column was partly about the poor state of embedded software quality across all industries, and my correspondent was writing to say my observations were accurate from his perch within the automotive industry. Included in his e-mail was this interesting tidbit:
I read something about the big Toyota recall being related to floor mats interfering with the accelerator, but I was told that the problem appears to be software (firmware) for the control-by-wire pedal. Me thinks somebody probably forgot to check ranges, overflows, or stability properly when implementing the “algorithm”.
As background for those of you who have been working in SCIFs or other labs, the “big Toyota recall” was first announced in September 2009. It was said to concern removable floor mats causing the accelerator pedal to be pressed down. Some 3.8 million Toyota and Lexus vehicles were involved and owners were told to remove floor mats immediately.
This week several related major news events have transpired, including:
- Toyota recalled millions of additional vehicles in the U.S.,
- Under pressure from the U.S. NHTSA, Toyota halted production and sales of eight models,
- Avis, Hertz, and Enterprise pulled affected Toyota models from their rental fleets,
- Toyota’s recall spread to Europe and China, and
- Ford stopped production of a full-size commercial vehicle after discovering that the gas pedal came from the supplier involved in the Toyota recall.
But none of the articles I’ve read have talked about software being a cause. And it’s not clear if the affected models are drive-by-wire. However, at least one article I read yesterday suggested that one fix being worked on is a software interlock to ensure that if both the brake and the gas pedal are depressed, the brake will override the accelerator. On the one hand, that seems to mean that software is already in the middle; on the other, I would be extremely surprised to learn that such an interlock wasn’t already present in a drive-by-wire system.
So what’s the story? Are embedded software bugs to blame for this massive recall? Do you know? Have you found any helpful articles pointing at software problems? Please share what you know in the comments below, or e-mail me privately.