Living in Michigan, it’s not uncommon to wake up on a cold winter morning and find that an automobile just doesn’t want to start. However, it’s relatively uncommon for this to occur right in the middle of summer! As you can guess, the car wouldn’t start this morning and I had no idea that it was going to lead me to an interesting corner case that made me wonder “Is this a bug or a feature?”.
As it turned out, a little investigation led me to discover that the 2014 Honda Odyssey’s battery needed to be changed. It was still sporting the original manufacturers battery after 7 years and 100k miles, so it was long overdue. After picking up a new battery, I left my driver side sliding door open, just in case I needed to get in while the battery was pulled. (Everything on these vehicles is electronic these days and doors are no exception!).
I swapped out the battery, started the van, and everything looked good. The navigation system even came up, automatically entered the security password, and managed to figure out where on the planet the vehicle was! What fun for a software guy getting to play mechanic! The only thing left to do was close the sliding door and put the car back in the garage. After pressing the door close button several times, I discovered that the door would no longer close!
Dismayed, I got from the driver seat and walked over to the sliding door. Yep, the buttons in the back of the vehicle wouldn’t close the door either! How on Earth am I going to close this door without the buttons responding? Well, I was forced to manually release and close the door. Once the door was closed, the buttons once again began to respond, and I was able to control the sliding door without any issues.
As far as I can guess, the electronic control unit (ECU) that manages the doors was powered on with the doors in an unexpected state. Instead of just recognizing the door was open and responding to a close command, it just did nothing! Only after the door was returned to the expected state, was the ECU willing to command and control the doors again.
So, the question is, “Is this a bug in the firmware or a feature?”
(I suspect that it was a failure to test boundary conditions on the controller such as what happens when the controller is powered up with the doors in the wrong state. Or a decision that it was a rare corner case and not worth adding the conditional case to recover the controller when it occurred).