Coolerman recently contacted me about the lack of good options for intermittent wipers and asked if I’d considered designing something. Because my top hasn’t been on in years, I hadn’t, but if you’ve read my OEM Carb Fan Controller Replacement thread you already know I’m an über-geek and enjoy an electromechanical challenge. Since this is rather unique I detailed some of it here for anyone interested in the process.
The FJ-40 wipers are an obviously dated design in that 12V is introduced at the motor, travels to the switch on the dash, and then to ground. The switch completes the circuit rather than actuating a relay to switch the 12V. Same for the washer motor. You can learn more than you ever wanted to know about FJ40 wipers on Coolerman’s Wiper Electrical Science page. This design was not unique to older Toyotas and quests for vintage-auto, intermittent-wiper upgrades are found all over the Web. There are variable-delay modules available and Coolerman has crafted some harness adapters for the Mitsuba. If you want an infinitely-variable delay controlled by an additional knob, it appears to be a good alternative.
Requirements
· Flexible design for a variety of FJ40 model years
· No harness modification
· No extra controls
1. The Electronic Circuit
After a month of back-and-forth design iterations with another engineer (my family tends to get in my way), a proposed design was set. During this part of the process the iterations are drawn on paper and eventually created it in a circuit-design simulator. With a PC-based simulator you can optimize component values and test the design. If the circuit gives the desired results in the computer, it’s drawn as a schematic. You can see the simulator on the left monitor and the schematic on the right.
2. Component Selection
One thing that takes an inordinate amount of time is component selection. I spend a lot of hours reading through data sheets to pick the most appropriate parts. For example, the 3.3V voltage regulator requires two capacitors. You could throw any inexpensive aluminum cap on the output terminal and save money but it might not be the most stable design. A quality aluminum electrolytic cap is only 3 cents but some may become unreliable in very cold climates. Maybe not a concern for most, but it might be for someone. A tantalum would be the best choice. A tantalum can cost from 30 cents to $3 or more. The difference in 3 cents and 30 cents might not sound like much, but if there are a lot of parts, it can add up to a substantial difference in final cost.
I prefer Texas Instruments for a lot of things (e.g., voltage regulators), and I never buy components off of eBay. For the relays I used 15A Panasonic miniature automotive relays and I also added a 6.8A PTC fuse (polyfuse) to protect the board. PTC fuses trip at a given current but still allow a lower current to pass. This protects the module but doesn’t disable the wipers. Of course, if your wiper motor is drawing more than 7A, you have a problem.
3. Prototyping on the Breadboard
Coolerman sent wire and connectors so I could test with my ’78 wiper switch. The monitor shows the oscilloscope monitoring switch voltage and relay logic during testing. The circuit is tested in all of the modes and allowed to run for extended times. I also test if the code is “user-proof.” In other words, is there any possible way I can lock up, shut down, or otherwise trick the module into not operating the way it should? What if the truck is started with the wipers in LOW or HIGH? What if I go nuts on the wiper switch and push/pull every conceivable iteration of selections at very short intervals? Does the circuit work on 15V and will it work as low as 9V? (Yes.)
4. The Firmware
The firmware is about 250 lines and fills half of the microcontroller’s (uC’s) memory. The left window is a code editor. I used the C/C++ programming language for the project. The right window is a serial communication port. I use serial comms extensively for debugging. You can see that the window shows events as the wipers are running. Once the code is loaded on the uC, the circuit is powered to debug the code and and analyze the signals. The delay logic is similar to something VW did at one time. If you pull the knob to LOW and back to OFF within a second, a timer starts. If you do the same pull/push again within 15 seconds, the time between pulls is the interval and the wipers sweep at that interval. One change I added is that every time the wipers begin a sweep the timer resets so if you want to shorten the interval you pull/push once between sweeps and that new shorter interval is used. Pulling to LOW for more than a sweep cancels the intermittent function as does selecting HIGH. From the OFF position, twisting the wash knob starts the wipers in LOW and continues sweeping for 3 seconds after you release (like a modern car would). [Haven’t decided whether to leave that in or not.]
There are several ways to implement the delay. The initial thought was to use momentary contacts of the washer switch to cycle through intermittent delays, but not everyone has a working washer and some of the washer switches are pretty sketchy. Another approach is to use HIGH and LOW to decrease and increase the delay in ~3 sec intervals.
The FJ-40 wipers are an obviously dated design in that 12V is introduced at the motor, travels to the switch on the dash, and then to ground. The switch completes the circuit rather than actuating a relay to switch the 12V. Same for the washer motor. You can learn more than you ever wanted to know about FJ40 wipers on Coolerman’s Wiper Electrical Science page. This design was not unique to older Toyotas and quests for vintage-auto, intermittent-wiper upgrades are found all over the Web. There are variable-delay modules available and Coolerman has crafted some harness adapters for the Mitsuba. If you want an infinitely-variable delay controlled by an additional knob, it appears to be a good alternative.
Requirements
· Flexible design for a variety of FJ40 model years
· No harness modification
· No extra controls
1. The Electronic Circuit
After a month of back-and-forth design iterations with another engineer (my family tends to get in my way), a proposed design was set. During this part of the process the iterations are drawn on paper and eventually created it in a circuit-design simulator. With a PC-based simulator you can optimize component values and test the design. If the circuit gives the desired results in the computer, it’s drawn as a schematic. You can see the simulator on the left monitor and the schematic on the right.
2. Component Selection
One thing that takes an inordinate amount of time is component selection. I spend a lot of hours reading through data sheets to pick the most appropriate parts. For example, the 3.3V voltage regulator requires two capacitors. You could throw any inexpensive aluminum cap on the output terminal and save money but it might not be the most stable design. A quality aluminum electrolytic cap is only 3 cents but some may become unreliable in very cold climates. Maybe not a concern for most, but it might be for someone. A tantalum would be the best choice. A tantalum can cost from 30 cents to $3 or more. The difference in 3 cents and 30 cents might not sound like much, but if there are a lot of parts, it can add up to a substantial difference in final cost.
I prefer Texas Instruments for a lot of things (e.g., voltage regulators), and I never buy components off of eBay. For the relays I used 15A Panasonic miniature automotive relays and I also added a 6.8A PTC fuse (polyfuse) to protect the board. PTC fuses trip at a given current but still allow a lower current to pass. This protects the module but doesn’t disable the wipers. Of course, if your wiper motor is drawing more than 7A, you have a problem.
3. Prototyping on the Breadboard
Coolerman sent wire and connectors so I could test with my ’78 wiper switch. The monitor shows the oscilloscope monitoring switch voltage and relay logic during testing. The circuit is tested in all of the modes and allowed to run for extended times. I also test if the code is “user-proof.” In other words, is there any possible way I can lock up, shut down, or otherwise trick the module into not operating the way it should? What if the truck is started with the wipers in LOW or HIGH? What if I go nuts on the wiper switch and push/pull every conceivable iteration of selections at very short intervals? Does the circuit work on 15V and will it work as low as 9V? (Yes.)
4. The Firmware
The firmware is about 250 lines and fills half of the microcontroller’s (uC’s) memory. The left window is a code editor. I used the C/C++ programming language for the project. The right window is a serial communication port. I use serial comms extensively for debugging. You can see that the window shows events as the wipers are running. Once the code is loaded on the uC, the circuit is powered to debug the code and and analyze the signals. The delay logic is similar to something VW did at one time. If you pull the knob to LOW and back to OFF within a second, a timer starts. If you do the same pull/push again within 15 seconds, the time between pulls is the interval and the wipers sweep at that interval. One change I added is that every time the wipers begin a sweep the timer resets so if you want to shorten the interval you pull/push once between sweeps and that new shorter interval is used. Pulling to LOW for more than a sweep cancels the intermittent function as does selecting HIGH. From the OFF position, twisting the wash knob starts the wipers in LOW and continues sweeping for 3 seconds after you release (like a modern car would). [Haven’t decided whether to leave that in or not.]
There are several ways to implement the delay. The initial thought was to use momentary contacts of the washer switch to cycle through intermittent delays, but not everyone has a working washer and some of the washer switches are pretty sketchy. Another approach is to use HIGH and LOW to decrease and increase the delay in ~3 sec intervals.
Last edited: