I want to add an intermittent function to the wipers on my 40-year-old car without any additional switches. The details of the wipers can be found here [http://www.globalsoftware-inc.com/coolerman/fj40/5G.htm]. The wiper knob closes the path to ground allowing the motor to begin sweeping the wipers. (There is another ground at the motor that mechanically closes when the wipers are not parked. This allows the wipers to park regardless of when the wipers are switched off.) It seems that all I need to do is complete the path to ground whenever I want to sweep the wipers, but it seems too easy so I’m second guessing myself. I’ve drawn out a small circuit using a ATtiny85 to detect if the wiper circuit is closed (not shown on the diagram). If the circuit is closed (knob pulled out) for longer than one second, the wipers operate as long as the knob is out. If the knob is pulled out and returned in less than one second, the uC activates the relay long enough to start a sweep and repeats this at a predetermined interval.

Am I missing something? Is this a reasonable approach? I chose an automotive relay I’ve used before, datasheet here [http://www.farnell.com/datasheets/1809465.pdf] with a diode and RC snubber across the contacts.

[Edited from original to reflect accurate wiring.]


simulate this circuit – Schematic created using CircuitLab

To be completed by OP.

                                 |   A   |   B   |   C   |
Everything off                   |12.9 V |12.9 V |12.9 V |
Bulb in, WIPER_LO closed         |   0 V |   0 V | 4.9 V |
Relay energised, WIPER_LO closed |   0 V |12.9 V | 4.9 V |


simulate this circuit

[Second schematic illustrates switch and two ground paths.]

  • \$\begingroup\$ @Transistor why are you adding a schematic/answer in the question? \$\endgroup\$ – Passerby Feb 3 '16 at 19:51

[Update: major rewrite after additional information.]


simulate this circuit – Schematic created using CircuitLab

Figure 1. Redraw of wiring based on Toyota wiring mystery.

Figure 1: how it works

  • In OFF position the RUN switch will keep the motor running at LO speed until it reaches the PARK position.
  • In the OFF / PARK position the motor is shorted out. This causes dynamic braking of the wiper motor and will stop the motor abruptly preventing run-on into the RUN position.
  • In LO speed the off contact is open, the LO is closed and the motor runs at low speed.
  • In HI speed the other two contacts are open and the high-speed winding is energised.
  • Note that + to GND short-circuits should never occur with this arrangement as the wiper switch contacts will be break before make.

Figure 2: replacing switch with relays

Figure 2 shows the rewiring for intermittent add-on control. I am recommending this approach rather than the single-relay approach of earlier edits as it provides complete isolation between the logic and the power wiring, gives you great flexibility in the logic and is simple to wire and understand.

There is one danger to be avoided in the circuit of Figure 2: when RLY2 is energised and high-speed is selected the LO wire must never connect to the PARK switch as it will toggle between + and GND while the HI winding is energised.


simulate this circuit

Figure 3. (Almost) full circuit.

Figure 3: the full circuit - how it works

The original wiper knob has a few limitations: there are fixed internal links which cannot be broken. Disconnecting all the original wires - except the GND wire - allows us to monitor both LO and HI settings using the logic circuit without interference from the +12 V supply.

  • R1 and 2 pull up the /LO (not LO) and /HI (not HI) lines when not selected.
  • Selecting LO or HI will pull the corresponding line low. Both lines high indicates OFF position selected.
  • The ATiny executes the logic for the relays.
  • Q1 and 2 are open-collector drivers for RLY1 and RLY2. D1 and D2 provide inductive kick-back protection for Q1 and Q2 when switched off.
  • As required in the Figure 2 comment above we need to ensure that if RLY2 is energised then RLY1 is too. This should be done in software but D3 ensures that if Q2 (and RLY2) is switched on then RLY1 will be energised regardless of the quality of the software. ;^)


As Dwayne Reid points out in his answer there are some neat tricks you can do with this to use an on-off-on sequence to set and modify the delay time. This was in my mind as I wrote my original because I remember reading an Elektor article (April 1980) on the subject. Simple micros such as the ATiny weren't available then and the design used some tricky logic to make the timer 'memory'. The Elektor design is referenced in US patent 4388574.

| improve this answer | |
  • \$\begingroup\$ I didn't realize you could add from CircuitLab directly. Thanks. I added the 12V detect circuit to the question. Is there an advantage of the D1/C2/R3/R4 circuit over a BJT? \$\endgroup\$ – unix Feb 1 '16 at 2:47
  • \$\begingroup\$ Answer updated. \$\endgroup\$ – Transistor Feb 1 '16 at 7:31
  • \$\begingroup\$ I understand the NPN and 10k pull-up. Unsure of the rest, but let me try. The base of Q2 is connected to the "always on" 12V supply and when the wiper switch is open, the NPN is on and the U1 input is LOW. When the wiper switch is closed, the NPN is on and the U1 input is high. The advantage is that the uC would know when the knob is pushed in but the wipers haven't yet parked? \$\endgroup\$ – unix Feb 1 '16 at 23:27
  • \$\begingroup\$ I think you've got it, provided that it's a typo in your third sentence, "When the wiper switch is closed, the NPN is on" should read off. Everything else is fine. Is that any advantage to you? What make / model of car is it as a matter of interest? \$\endgroup\$ – Transistor Feb 1 '16 at 23:42
  • \$\begingroup\$ Yes, a typo. It is an advantage and it's for a '74 Toyota Land Cruiser (FJ40). Quite annoying to pull out a knob (not near the steering wheel) and push it back in every time you want a single sweep. Appreciate your help. \$\endgroup\$ – unix Feb 3 '16 at 12:44

In addition to the above answers, you may want to consider a technique that I used maybe 20 years ago: the wiper control determines the delay time. No extra switches are needed.

What happens is that you activate the wiper control momentarily, then turn the control OFF. The wipers continue their sweep and come back home - but now the circuit is Armed. When the desired time between sweeps has elapsed, activate the wiper again and turn the control off. The micro measures the time between those two activations and continues to repeat that interval forever.

To turn the interval timer OFF, turn the wiper control ON for more than 1 full sweep. The microcontroller detects that the switch is closed for more than the original time and goes back to the idle state.

Couple of other things: I time the duration of the initial ON pulse and replicate that pulse width on the relay. I also start a timer when the system is in the Armed state and force the system back to idle mode if too much time has passed before the 2nd sweep is registered. This helps eliminate unintended wiper sweeps if someone who is not familiar with the system cycles the wipers only once.

| improve this answer | |
  • \$\begingroup\$ That's a novel idea. It presently uses momentary contact of the washer switch to cycle through delay periods (which works fine since it takes a while before you'd ever spray the windshield). I've seen another that uses the OFF and HI positions to travel up and down a "delay ladder." I like your method and it would only be a change to the code. Thanks for the suggestion. \$\endgroup\$ – unix Mar 15 '16 at 21:08
  • \$\begingroup\$ @DwayneReid: Was the wiper circuit your own or was it, by any chance, the Elektor circuit of April 1980? See the update to my answer. \$\endgroup\$ – Transistor Mar 17 '16 at 23:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.