Saturday, December 17, 2011

Lexus: it's a bug, not a feature. And it needs open source.

This post is to pass on some information to Lexus about a bug in one of their cars. Contrary to what customer service would like you to believe: it's not a feature or a malfunction, but a software bug.

Description

This is how I found my car this morning: locked, front window lowered 75%, rear window lowered 50%. The evening before, I left the car locked with the windows closed. The first explanation for this problem that comes to mind is user error. As Lexus answered on Twitter (for which they deserve credit: good monitoring!) the car has a personalized setting that allows the windows to be rolled down with the unlock button held. Maybe someone inadvertently pressed the buttons of the key fob, which was in the house.

Problem not reproducable

I tried this and indeed: holding down the unlock button rolls down the windows. But in that case, the car is also unlocked. In my situation, the car was still locked. A second try learns that by keeping the lock button pressed the car can become locked and the windows partially closed again. Just let go of the lock button at the right moment. But even in the unlikely event that these button presses all occurred accidentally overnight whilst the keys were in the house, it can not explain the situation. Using the remote, the windows all start and stop at the same time. This brings them into a position that either the rear window is always opened more than the front window (which is longer) or in a position that the car is unlocked. In my situation the front window was lowered more then the rear window and the car was locked.

Why this is not a malfunction

Computers don't just do things by themselves. If the computer in the car lowered the windows to this predefined position, it is because someone someday programmed a routine that does exactly this. The reason why is is programmed can be anything. Just some ideas to what may have gone through the engineer's mind:
- escape-position in case the car is driven into a lake
- anti-buffeting position in case the car is driven fast with the windows in a position that could cause dangerously high forces on the window glass
- post-crash position to let airbag fumes escape without compromising head support for rear passengers

Maybe a sensor malfunction triggered the software routine. After all, it was a stormy night when this happened. Maybe it is rare combination of values that triggered a bug in the software to enter the 'lowered windows' routine. In any case, it is something the manufacturer should try to diagnose and correct. Not something that the user of the product should have to have replaced in a dealership.

Lessons to learn

This incident shows that many products are highly complex systems where nobody knows what software is inside them and how this software is working. In a world where companies build products using a complex network of subcontractors of subcontractors, we seldom know how to diagnose or fix these kind of problems.
In my opinion, it should be a legal requirement that all software related to safety is made open source so problems can not be swiped under the carpet and errors are more likely to be spotted before accidents happen. I don't trust the software in my car. It lowers my windows without anyone knowing why. Who knows what it can do to my braking system? Yes, the problem is probably known in the Lexus incident database, where it now will have a +1 in front of it. But Lexus might not be able to solve it and therefore would choose to contain it (assumption from my side). Because the engineer who programmed the routine can not be retraced. Because the subcontractor is not paid to investigate this. Because the unit already has been approved and tested, thus the design can't be faulty. The only solution to this deadlock in industrial design is open source software and open data on incident management.

Also in the car industry the era of bespoke software is over. Let's ask the manufacturers to open up their source code.

1 reacties:

  1. This comment has been removed by a blog administrator.

    ReplyDelete