Hacking the Heath/Zenith SL-5408 to run on DC
I’ve used the Zenith SL-5408 motion activated security light as a motion detector for my Bird Blaster. In version 1.0, I couldn’t get the detector to work off battery power, even though the whole circuit runs at 5V levels. Now that I’ve acquired a little more electronics equipment and knowledge, I thought I’d take another crack at powering the detector from a low voltage source.
I started this round of reverse engineering by drawing out the power supply circuit in Eagle, adding components until I had reached the point where regulated 5V was present in the circuit. At this point, I didn’t notice anything that I hadn’t noticed the last time around. It was fairly obvious where the 5V supply originated, and that the PIR and timing circuit only used the 5V supply. The schematic is shown below. The 22 pin connection shown on the right is the point where the chip on board processor (the brains of the motion detector) is soldered in at a right angle to the main circuit board.
I looked a little closer at the 120V section of the circuit, and noticed a 1 Mohm resistor connected to the hot side of the power input. Following that resistor yielded the following addition to the Eagle schematic:

SL-5408 Power Supply – With Clock Signal
I soon guessed that this circuit was being used to create a 5V square wave at line frequency, which was then being fed to the processor. Probing pin 9 of the processor with my oscilloscope confirmed that I was correct. The signal must be used as a real time clock signal for determining the relay ON times in response to detected motion. Without fully understanding its function, I assumed at this point that the signal was necessary for the circuit to function properly.
In order to test this theory, I connected the motion detector circuit to an arduino, injecting 5V into the circuit at the appropriate point and connecting the “clock” signal to arduino pin 10. The output of the motion detector was read in the same way as described in this post by using the relay drive transistor as an open collector output, and connected to arduino pin 4. I removed all existing power supply components from the blue hatched region of the below schematic, then wired in the arduino in their place as shown.
By using the timer1 library, I was able to create the appropriate 60 Hz square wave on the clock pin. With 5V supply along with the clock signal, the detector worked perfectly. I was able to verify this by lighting the onboard LED whenever the motion detector’s output was active.
Here’s a quick example sketch for testing the motion detector:
#include <TimerOne.h> #define OSC_PERIOD 16667 //60HZ period (microseconds) #define OSC_DUTY 512 //50% duty cycle square wave #define OSC_PIN 10 #define DETECT_PIN 4 #define LED_PIN 13 void setup() { pinMode(OSC_PIN, OUTPUT); pinMode(DETECT_PIN, INPUT_PULLUP); pinMode(LED_PIN,OUTPUT); Timer1.initialize(OSC_PERIOD); //Set pin 9 and 10 period to 50 ms Timer1.pwm(OSC_PIN, OSC_DUTY); //Start PWM at 50% duty cycle Serial.begin(9600); } void loop() { digitalWrite(LED_PIN,digitalRead(DETECT_PIN)); Serial.println(digitalRead(DETECT_PIN)); }
I finally have a method of powering this motion detector from a small DC power source. This comes at the added expense of a microcontroller, but that opens up lots of other options for further functionality as well. I plan to take advantage of this as I work on the next iteration of the Bird Blaster :).
Kenney 1:07 pm on July 30, 2013 Permalink |
Great hack ! I have done a similar one to turn the output into a switch and delete the 120v . Good to know these can be hacked to use DC . How can I reduce the test function to 1second?
schoolie 2:51 pm on July 30, 2013 Permalink |
You’re wanting the output to remain active for one second instead of the stock five seconds right?
If you’re using the arduino like I have in this post, you could just read in the output from the detector, then output a 1 sec signal through a separate relay or transistor controlled by the arduino. The only catch is that the detector will still reset on it’s normal schedule.
I’ve also wondered if sending a faster clock signal to the detector would work. For example, sending a 300Hz square wave instead of a 60Hz square wave may reduce the test time from 5 sec to 1 sec. This would only work an the detector I used, and may not work at all :).
What motion detector are you using?
Kenney 3:36 pm on July 30, 2013 Permalink |
Pretty sure its the same home depot Heath, I’ll have to double check. My setup is to scare deer out of the yard with stored rainwater (city water to expensive) and compressed air. I get a lot of false detections during the day with clouds causing cooler and hotter spots.
OK with using 110v in and hack for switched out. But with the 5 second on and continual false starts would like to cut it back using less air/water. Looking at a time delay so it will cycle maybe 30 seconds before it would restart. Think Arduino is the only answer?
schoolie 3:55 pm on July 30, 2013 Permalink |
Something like the 555 circuit I used for the bird blaster should be adequate. The circuit in that post has 2 second ON time with control pulses at the beginning and end. I don’t think it would be too hard to incorporate a 30 second reset delay.
What are you using to control the water flow or compressed air? That will determine what the control singals need to look like. Are you currently just using the motion detector’s relay?
Kenney 4:41 pm on July 30, 2013 Permalink |
Yes, just using the relay in the motion detector. Looks like I need to incorporate your 555 controlling circuit. Now all I need is to learn to read the schematic.
schoolie 5:00 pm on July 30, 2013 Permalink |
Honestly, using the Arduino may require less investment of time and materials if you’re new to electronics.
If you’re looking to learn how this stuff works, starting with the 555 is definitely the way to go. If you just want a result, Arduino may result in less frustration 🙂
Kenney 8:02 pm on July 30, 2013 Permalink |
Knowing what I need, which arduino kit would you recommend? I have two motion sensors hooked to one 25vac ( blind spot) sprinkler valve. Pretty sure 12vdc would operate it if need be.
schoolie 11:10 pm on July 30, 2013 Permalink |
The standard Arduino Uno R3 is the simplest choice for getting started. You can get it at RadioShack or sparkfun.com. You’ll also need some resistors, an NPN transistor, a diode, and a relay with a 5v coil to actuate the valves. A 12v adapter that fits the Arduino’s power jack would be handy as well. Add a breadboard to build the circuit on (or proto board if you want to solder, maybe just skip the board entirely and solder the components directly together) and you’re good to go :-).
Your motion detector will need to have the relay modded too if you haven’t already done so.
Kenney 7:56 am on July 31, 2013 Permalink |
Lots of good info, has me headed in the right direction to tweek this thing the way I want it.
Many Thanks
schoolie 3:48 pm on July 31, 2013 Permalink |
Great. I’d love to hear how things go if/when you work on it.
Brian