Instructables

Solid-state Halloween controller and how to build a Haunted House

Featured
This was originally an article in Make 03 where my awesome editor Paul Spinrad actually made a replica of my controller and did a much better job documenting it than I would. For the controller board, if you need more explanation than "get a bunch of solid-state relays, connect them up to your parallel port, and go to town," check out the Make article. It also has an awesome comic that I have gone to pains trying to convince people that it doesn't star me.

With this Instructable, I'm putting in text that didn't make the cut for a size-constrained magazine article and creating a space to explore the latest options for computer control. The Win98 machine I had previously used to drive my controller can no longer by relied upon and I haven't yet conquerred external (parallel port, serial port, USB, ...) control with WinXP or MacOSX; hopefully we can collect some great pointers and links in the comments.

The original page describing this project is here.

Step 1: Background, or what made me a bad kid

During elementary school, my parents took me to a local Haunted House. In each room, you witnessed some gruesome scene; if you survived to the end, you got a grab-bag of awesome junk and candy. About mid-way through, there was a room lit by a single strobe-light, flashing at low frequency, and a guy in a hockey mask with a chainsaw. Maybe there was no chain on the saw, or maybe it was a weed-whacker? All I really remember is that I was terribly scared and I loved it. It was the first time I had seen a strobe-light and the saw was so loud I could feel it in my stomach. The experience was incredibly disorienting, and the feeling of terror and delight has stuck with me. No horror movie or ghost story has been able to top that low-budget, real-life fright.

As I grew older, trick-or-treating became more of a search for Haunted Houses than a search for candy and mischief. I was ever-hopeful that around the next corner would be that one weird guy who turned his garage into a haunted maze built from cardboard and bedsheets. I was never satisfied with what I found. “I could do better than that”, I often thought. So, for roughly the last ten years I’ve been perfecting my technique of scaring kids and handing out candy. In this project, I will show you how to build the tool I use most frequently in my haunted creations and give you some ideas for your own Haunted House.

Step 2: Controller

Without doubt, the best Haunted Houses are run by humans. People hiding under sofas, waiting for just the right moment, can always make the best scares. Unfortunately, I didn’t always have the manpower I wanted, and so resorted to computer control. The parallel port is the easiest way to interface external, homebuilt devices to a computer. It has 8 output pins that can directly operate LEDs and relays, and for more complicated projects it can be connected to a register to control even more devices.

In this project, you will build a simple circuit to switch on and off AC or DC via computer control. You can then write code to sync lights, motors, fog machines, pumps, laser pointers, and other things to computer generated sounds using the parallel port.

Step 3: Materials

Solid-state relays – These are optically coupled triacs with a logic-compatible input. While not a relay in the traditional sense, they do perform the same job. I used Crydom D1225’s for AC switching and D2D12’s for DC. You can find these for $25 on eBay, or it is straightforward and cheaper to build your own from schematics on the web: here or here for example. Also, check out Crydom's CX240D5R. Digikey has them for approximately $12.

Grounded extension cords – One for each AC relay; one should be at least 6 feet long with the others as short as possible because you’ll be cutting them.

Terminal block

Wire – #16 AWG for AC, #22 AWG solid-core for DC and signals.

Breadboard

LEDs

Resistors, 470 – 1k Ohm

24 pin DIP connector

25 conductor ribbon cable

25 contact male D-subminiature connector

Non-conductive base and cover material (I used wood and acrylic)

Wood screws

Cable ties

Stand-offs

Tools

Hand drill and drill bits

Multi-meter

Wire strippers

Hot glue gun – optional

Step 4: Make it!

Here's the real reason to get the Make article: I built this thing so long ago, that I didn't take pictures at each step.

Step 1
Attach the solid-state relays, terminal block, and breadboard to the base using the wood screws. Lay the components out, mark places for holes, and drill holes appropriately sized for the screws.

Step 2
Cut the extension cords approximately 12 inches from their receptacles and strip 3/4 of an inch of insulation at the cut. Mount the receptacles to the base by drilling through holes and securing with cable ties; use hot glue for a snugger fit.

Step 3
Attach the cut end of the long extension cord to the base, and strip 3/4 of an inch of insulation.

Step 4
Wire up the AC side of the controller according to the schematic using the screw connections on the terminal block and the solid-state relays. Use short pieces of the #16 wire to connect hot to all the solid-state relays (it’s best to switch hot, not neutral).

The wires in extension cords are often color coded: hot is black, neutral is white, and ground is green. If yours isn’t color coded, look at the plug with the blades pointing towards you and the round, ground plug at the top; hot is the smaller blade on the lower right. Once you have identified the proper blade, use a multi-meter to check conductivity between the blade and the stripped wire. If you’re confused, ask a friend with AC experience to lend a hand and check your wiring.

Step 5
Make the data cable by attaching the ribbon cable to the D-subminiature and DIP connectors. This is done by positioning the ribbon cable in the insulation displacement connectors (the two rows of forked contacts) and pressing down with the strain relief, which will then snap into a locked position. Each of the forks pierce through the ribbon cable’s insulation and make a connection with a conductor in the ribbon cable. You will need to separate one of the conductors from the ribbon cable on the DIP connector side; this will be either pin 1 or pin 13 on the parallel port, neither of which are used in this project. Use the multi-meter to determine how the pins on the D- connect to the DIP. Pins 2 through 9 are output data lines and 18 through 25 are all grounded.

Step 6
Wire up the signal side of the controller on the breadboard according to the schematic. Use small pieces of cut and stripped #22 wire. The parallel port can only source a few milliamps of current and can be damaged if the data lines are shorted to ground. Ensure your wiring is correct before attaching to a computer. Use a cable tie as a strain relief so the DIP connector doesn’t get yanked out of the breadboard. Instead of a breadboard, you could use a prototyping board and solder all the connections. I chose the breadboard because I’m sure I’ll want to modify the controller later, or scavenge all these parts for some future project.

The LEDs are not required to operate the solid-state relays. They simply provide feedback about the state of the parallel port. With fewer solid-state relays than data lines in my controller, I used an LED on the fist data line to indicate that my code was operating and that there was a good connection to the computer.

Step 7
Cover the AC portion of the controller. Mark and drill holes in the base and cover and connect them with the stand-offs. I used clear acrylic so I could still see the LEDs.

Step 8
Once you’ve double checked all your wiring, plug the controller into your computer’s parallel port (leave the AC unplugged for now) and see if you can make the LEDs go. Use a parallel port monitor such as “lpt.exe” from http://neil.fraser.name/software/lpt/. The port number of the parallel port varies between machines, so be sure to check all the options. You may have to change your parallel port’s setting in the BIOS to something other than bi-directional, such as ECP or output only. The 8 output pins are addressed in binary fashion: writing a 0 to the port turns them all off, writing 1 turns on the first pin, 2 the second pin, and 3 the first and second.

Step 9
Plug the controller into 120 VAC and plug a lamp into one of the receptacles connected to an AC solid-state relay. The power to the lamp should now be under computer control. To control a DC device, modify its power supply (for example, the device’s wallwart), switching the positive conductor with the solid-state relay. For battery powered devices, you can use an external battery pack and run the wires through the controller, or cut apart one of those AC to DC transformers of the appropriate voltage from an unused walkman or other piece of discarded electronics.

Step 5: Create the mood

The controller is great for computer control of all sorts of things including lights, motors, pumps, fans, fog machines, power tools, and laser pointers. But first, you need a location for your Haunted House. Whether you want to invite trick-or-treaters into your home for a scare depends entirely on your neighborhood. When I lived in Boston’s Back Bay, there was a list of Halloween-friendly residences that parents could pick up. Armed with this list, parents felt comfortable bringing their kids inside to go through a haunted maze made of couches, sheets, and mattresses. I have also postered my neighborhood with the theme and address (“Red Blood Needed! Open sunset to sunrise” and “Lost Pet! 7 ft tall, hairy, teeth that don’t fit inside mouth, may still be dragging chains on ankles and wrists. Please return to …”) and put strobe-lights and Jack-O-Lanterns in upper-story windows to grab attention. Garages and porches make great intermediate locations and can be further enclosed and divided with sheets of black plastic. If you decide on a small display just inside the front door, be prepared for the few kids who will burst in convinced there’s more.

There’s a special age when children think they understand the world, but are not totally sure. To them, those long fangs might be real, the red substance in the cup could be human blood, and something actually may have escaped from the basement laboratory. Weave together a story just plausible enough that the kids will focus on whether you are being truthful or not. Once they’re off balance, scare them with something startling. I have had great success with simple, well timed, but unexpected things like the hiss of a fog machine, abruptly changing the lighting from red to strobe, and spraying a little bit of warm water. However, unless you are guiding the kids through, the display needs to be short and concise. Trick-or-treaters aren’t known for long attention spans, and you don’t want the next group arriving in the middle of your sequence and missing the fun.

Step 6: Create the soundtrack

Once you have a design in mind, create the soundtrack. Using a wave file editor, I sample, cut, and paste sounds from Halloween CDs. The best ones are meant to be copied and the sounds are separated into individual tracks. Here’s the mpeg soundtrack to one of mine: halloween2002soundtrack.mp3 below. First, there’s the sound of an angry mob; then a clap of thunder; a guillotine blade falls and someone screams; finally, maniacally laughter fades into the darkness. Here’s another that simulates a car crash on my front porch: halloween2001.mp3, also below.

An easier way to get a pretty good soundtrack is to play two sound-effects discs from different stereos at the same time. In isolation, one Halloween sound-effect after another sounds stilted, but two reinforce each other to create the perfect mood.

Step 7: Write the code

Once you have made soundtrack, write the controlling code. Here’s a C code fragment to help get you started (check http://www.hytherion.com/beattidp/comput/pport.htm for information on using inpout32.dll) : halloween.cpp, below. Once the sequence is started, the computer plays the soundtrack and syncs peripheral devices through the controller. In this particular setup, which uses the halloween2002.wav soundtrack mentioned above, I would explain to trick-or-treaters that they came just in time to witness an execution. After some thunder and lightning, a small motor would trigger the blade of a guillotine, built from cardboard, aluminum foil, and modular extrusion (8020, borrowed from work) to fall. As a rubber mask stuffed with a pillow fell into a basket, warm water sprayed onto the trick-or-treaters resulting in shrieks, shouts, and frantic brushing to remove the “blood.” I then offered candy from a basket with a duplicate mask stuffed with spaghetti, tomato sauce, and beets. Everyone choose the candy. While this sequence ran open loop through pre-programmed maneuvers, adding feedback to make the display responsive to sounds or motion is quite doable.


Step 8: Connect all the devices

The devices you use with the controller complete the display. Lights and strobes are easy; just plug them in. To drop the guillotine, I used an automotive seat motor, powered by a 12 VDC wallwart, with a trigger cut from cardboard. My motor, with integral worm gear, came with a matching shaft and flange making an easy connection to the trigger; if you don’t have matching parts you can make them from Friendly Plastic, a modeling material that softens in warm water. Instead of a trigger, a cam on the motor could be used to make a dancing skeleton or fluttering bats. To simulate squirting blood, I used vinyl aquarium tubing to connect an AC water pump to squeezebottle nozzles mounted overhead. The pump drew from a bucket that was periodically refilled with warm water. If you only have a small pump, try raising the bucket and pump to the same level as the nozzles. I captured the scare using a webcam (the strobe light acting in tandem as a flash) with its external, 5 VDC trigger connected to the controller (more pictures of this are here). You can create ghostly apparitions by projecting video onto a thin sheet of painter’s plastic. Place the projector low and aim the light through the plastic up above eye level. It may seem a bit hokey, but under the right lighting works beautifully. Use the video stream from a webcam to turn the trick-or-treaters standing in your door way into ghosts.


Step 9: Make it come alive

05.png
truckheadlihgt.jpg
img_6910 composite.jpg
Making things come alive is another great way to set the mood. A mannequin with a rubber mask and cloak is almost a piece of furniture until its eyes start glowing red. Use helping hands to direct laser pointers at the mask’s eyes, and alligator clips to wire the battery terminals to the controller. I discovered that baby Furbies behave very strangely when given half their nominally required 6 VDC. Instead of batting its eye-lashes and making baby sounds, mine moaned and screamed like it was just skinned alive. So, I completed the effect by actually skinning it and wiring it up to the controller and an appropriate 3 VDC source. In fact, almost any skinned animatronic children’s toy will make a great prop, and many of them, such as Teddy Ruxpin, can be hacked to say whatever you want. In the dark, you often need only to suggest something rather than fully recreate it. For example, two bright white lights and a rush or air from a fan along with the soundtrack were enough to evoke the feeling a truck stopping just short of trick-or-treaters at the door.

Step 10: Anecdote

While assembling an aluminum scaffold for my haunted porch just hours before sunset on Halloween 2001, a group of about six kids from the neighborhood formed wanting to catch of glimpse of what was in store for them. They also wanted to help, which really meant running circles around me while I tightened bolts and threaded cable ties. Eventually, all but one of the kids headed home to get into their costumes. The remaining boy said he wanted to stay as late as he could helping me setup because that was going to be his only Halloween activity. His mother had forbidden him from trick-or-treating this year because she had credible evidence that Osma Bin Laden would be kidnapping children from our home town. I gave him a big handful of candy when he left -- probably the only candy he got.

Halloween seems to be one of the few holidays when it’s OK to be the weird guy on the street. I met more of my neighbors on Halloween than I had in the previous six months. Even though we lived in different worlds, we now had an easy conversation starter: “Have you started working on next year’s Halloween setup yet?” After a few years of haunted porches, families who had moved away would even bring their kids back to the neighborhood on Halloween.

Step 11: Happy Halloween!

You’ll know you have it right when kids come to the door holding their bags open for treats, watch wide-eyed for a few terror-filled moments, and clamp their bags shut and sprint back to their parents before the piece of candy you tried to drop in their bag hits the ground. Happy Halloween!
 
Remove these adsRemove these ads by Signing Up
I would totally do this if I could understand it. It sounds so cool!
COASTER193 years ago
I plan on building this. I was wondering if you could post some relays that would work for under 20 dollars each.
If you haven't already, come join us at the garageofevil.com.  You'll find it's a website devoted specifically to the home haunter, made by us and for us...
scienceguy5 years ago
So let me get this straight. You have run a cord from a wall socket, split it off into however many lines, connected these to SSRs, and then used the heads to make more outlets. The SSRs are then told to turn on and off by the computer. So, in essence, it turns one outlet into many and makes the computer control an on off switch, just like a wall switch. If I am correct, please send back. I have been looking for something like that for quite a while for my haunted house.
ewilhelm (author)  scienceguy5 years ago
That's exactly it.
barnibie5 years ago
hey just wondering if I could use just a "12VDC Coil DPDT Miniature PC Relay" instead of a solid state relay???
DRodriguez7 years ago
Could you use any other AC relay, or does it have to be those crydom ones? I ask because I hear that there are $5 relays out there, but I can't find them. Could someone point me in the right direction?
ewilhelm (author)  DRodriguez7 years ago
I used the Crydoms because I already had them on hand. Any AC relay that operates on 3-5 volts should work just fine. If it's a mechanical relay, you might want to ensure there are no current spikes back into the parallel port. There are plenty of circuits out there to help with this.
Then could it be something like This?
Also, about how many amps does a number of lights, say, 100, take?
I was going to ask precisely the same question! Could we use something like this:

http://www.goldmine-elec-products.com/prodinfo.asp?number=G1619

or even this:

http://www.goldmine-elec-products.com/prodinfo.asp?number=G13763

These can be had much cheaper, and to my novice eye, have the same sort of specs (5vdc to activate, output >= 120v 0.5A). The second (W107DIP-5) being in a tiny DIP package, you could shrink the whole project to be rather small!
It seems that, from what I can gather, Solid State Relays are virtually silent, and they do not, as said above, produce current spikes compared to the mechanical relays. But I am wondering if maybe its worth having a little bit of noise and sticking in a diode to protect your ports if you can get these relays for two bucks, instead of 12 or higher.
they are silent and have the AC that it switches fully islated from the trigger and they don't ark
I tried using a radio shack Mechanical relay (5v) and heard a suttle Click and nothing happened but when i connected 1.5v to it it clicked loud and the lights flashed, is something wrong? PS>I am using vixen to control the lights
JonnyMac7 years ago
For Windows users who don't want to write code, you could use Vixen and the parallel port driver to play your sound and control the relays in perfect sync. See www.vixenlights.com.
How would you rewire the data cable to suit vixens serial based control?
I would use a standard cable into a microcontroller that could interpret the serial commands form Vixen, which -- if you're really into it -- can be totally customized. I use the EFX-TEK Prop-SX to interpret Vixen commands to drive servos, PWM, and straight outputs using SEETRON protocol that also is standard with VSA (Visual Show Automation).
benthekahn6 years ago
How fast is the switching time of those 120v relays? I was thinking of using one to make a music controlled outlet box. Are they able to turn on and off more then five times a second?
ewilhelm (author)  benthekahn6 years ago
Check the datasheet.
DRodriguez6 years ago
What is the highest voltage that your relay can be in order to be switches by the parallel port? In other words, At which voltage does the parallel port operate on, and what is the tolerance with the relays? (will they switch slightly lower than marked?)
These are real works of art, thanks
ratmandu7 years ago
For computer controlled stuff like that, you can also check out what people are doing with christmas lights. http://computerchristmas.com is a good start, with light controllers, and even how to make your own SSR's with triacs. Tons of information there.
brian257 years ago
In Windows XP, regular user applications do not have access to Ring 0. Ring 0 is where device-level communication and signaling occurs. If you want to send bytes to a port address, you need to use a Device Driver such as WinIo to perform the task. I use WinIo on WindowsXP to control Cash Drawer Ports on a POS machine.
ewilhelm (author)  brian257 years ago
You should post an Instructable about how to do this!
I should have something by Monday
cool stuff! i am into building house projects. and when i see creative projects of different types or themes I am just impressed at the ideas people come up with these projects. house projects
leebryuk7 years ago
WOW! What a great job. I am truly impressed and I plan to use your display this year. Go easy on the blood donation stuff though. It is INCREDIBLY hard to get people to donate and God knows where people get their phobia. Maybe you could do brain donation? (Or maybe I need a sense of humour donation!)
zachninme8 years ago
What did you use for a "clear sheet of plastic". I was planning on doing a similar technique, but I couldn't find anything that was seamless and transparent, yet cheap.
ewilhelm (author)  zachninme8 years ago
Painter's plastic. You should be able to get it at any hardware store.
Ah, I was worried that because it isn't perfectly clear, it could be seen. But I guess it is hidden in the dark.
Fireflash138 years ago
And you sir, are the Halloween god! Thank you.
abbtech8 years ago
Cool Videos. Spooky stuff!