Russ Nelson's blog

[ Home | RSS 2.0 | ATOM 1.0 ]

Fri, 04 Mar 2005

Subaru drops the ball

Subaru drops the ball on its intermittent windshield wiper. We own two Subarus: a 2000 and a 2003 Outback. The 2000 has front and rear wipers. The front has one setting of intermittent (delay) wiping. The rear has no intermittent setting at all. The 2003 front wiper has a variable delay which is set by twisting a cylinder wrapped around the wiper handle. The rear wiper always delays in a most annoying fashion: it will only wipe after its delay has passed, even if you turn it off and then on.

Both of these "improvements" are hideously wrong.

Way back when I was in high school, I used to read Popular Electronics magazine for fun. They published an article using some MSI logic and a 1Kbit static ram chip to implement a wiper delay. This must have been published prior to 1975, since that's when I graduated from high school. Patents only last 17 years, so even if it was patented then, it's not patented now. That wiper implementation was ten times better than anything currently on the market, and twenty times better than what Subaru has done between the 2000 and 2003 models.

Here's how it works: First, all you need is a three-position switch: off, on, and fast. If the switch is off, the wiper is off. If you turn the wiper on, it starts running. If you turn it off, it stop running. Isn't that wonderful! It works the way a switch should work!

But ahhhh, there is extra magic. If you turn the wiper on and then off, a chip starts a timer. If you turn the wiper on again before the timer has expired, then the chip remembers how long you had it off, and it repeats that interval. If you turn it off, wait a bit, and then on again, it remembers how long since it last wiped and adjusts the interval. If you turn it off and then on again immediately, it uses no delay.

All of this complexity exists to do the right thing. You want the wiper to wipe when it's needed, not after some arbitrary delay. You want the wiper to measure the need from when you run it, not by twisting a delay control. You want the wiper to run whenever you ask it to run by turning it on.

Perhaps somebody we can abolish the current intermittent wiper implementations and replace them with this one. Perhaps some day genetic manipulation can graft wings onto pigs, and pigs will fly.

posted at: 06:18 | path: /life | permanent link to this entry

Made with Pyblosxom