Introduction: Reinventing Musical Christmas Lights: How to Easily Engineer a Radio Controlled Light Show
Have you ever gotten tired of the dull monotony of solid unblinking Christmas Lights? Have you ever seen the videos of other people's spectacular Christmas Light displays, but were discouraged from having your own because of the high cost and difficulty of setting up your own yard? Well, If you have, then you are in luck. I have devised a way to cheaply and easily set up an entire musical light display, for only a fraction of the cost of commercial systems. This system can also be built for under $50 and works with any song you input, this is a lot different than other commercial systems where it takes months to program one song. In this instructable, I will show you exactly how to build this amazing system. The video below will compliment this instructable with a demonstration of the lights in action, and an additional guide for building the system.
Lets get started.
Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.
Step 1: The Plan: How This System Will Work
This Christmas light control system works like no other light system out there. Unlike other system where all the light strands are hardwired to one central hub through a mess of wires, my system incorporates a radio network that controls every light strand through its own modular receiver relay. When music is played into the transmitter, it sends out two signals, one is FM and is meant to go to the viewer's car, while the other one controls the receiver network. When the audio is fed into the arduino, it sorts out the frequency of the music at that exact instant, and sends a different variable over the radio network based on the present frequency. Every receiver receives the same variable, but only one receiver will actually turn on it's connected light strand based on its programming. This makes it so every light reacts to a different range of frequencies, creating an awesome light show. Now, lets build this thing!
Step 2: Tools
For this project, you will need a few different tools:
You will need:
- Soldering Iron
- Wire Cutters
- Hot Glue Gun
- ATtiny Programmer(Refer to step 11)
Step 3: Materials
For this project, you will need a few cheap materials that can be purchased on eBay or other online sellers.
You will need for ONE receiver module:
- ATtiny 85
- 8 pin DIP socket
- 1K Resistor
- 2n3904 Transistor
- 5 volt relay
- 433mhz RF Reciever
- USB power supply
- Plastic Enclosure
- Power outlet
- 1N4001 diode
You will need for the transmitter:
- Arduino Uno
- Arduino Nano
- Hookup wire
- 7x 10K resistors
- FM transmitter
- 1/4 inch Headphone jack
- 433mhz RF Transmitter
- 12 volt wall wart
- Metal Antenna
- Wood 2x4
- 10uF Capacitor
Step 4: Creating Receiver Module Power Supply
There will be multiple receivers in my yard controlling the Christmas lights, and each one has its own logic board, so each receiver will need its own 5 volt power supply. This will be made from a cheap USB power supply. First, you need to disassemble the USB power supply to gain access to the circuit board inside. Then, you need to desolder the USB port inside and find the points on the circuit board where there is a 5 volt potential. Then, solder colored wires to the 5 volt point, and the ground point. These wires will serve to power the ATtiny, receiver, and relay. After that, you will need to solder wires to the two points of the power supply that directly connect to the 110 volt mains. This will go through the relay and power the attached light strand. Make sure to tin all the wire with solder before attaching them to other points, it makes the process easier. By the time you are done, you should have a plug with 4 wires: two for 5 volts, and two for 110 volts.
Step 5: Creating Receiver Module Logic Circuit
The receiver module will need to have a circuit that decodes the signals from the RF receiver and decides whether to turn on its output pin based on the variable it decode. It will then need to turn on a 5 volt relay. To make this circuit work, I used a 433mhz RF receiver that receives and amplifies the transmitted signal, an ATtiny to decode and process the signal, and a transistor to activate the relay. Everything was soldered on to a piece of perfboard that was cut into quarters. First, you need to place all the components on the board in the same way I placed them. Make sure not to actually solder on the ATtiny chip! Just solder on the DIP socket. After that, solder together all the connections underneath according the the schematic. After the circuit board is soldered, connect it with the power supply and the output receptacle. The receiver circuit is now complete!
Step 6: Adding Receiver Antenna
To ensure the proper function of the receiver modules, the RF chip will need to have an antenna. This can be easily made from a 10cm long piece of wire soldered to the hole on the bottom right corner of the chip, as shown in the picture.
Step 7: Building Receiver Module Enclosure
The receiver circuit will need to be housed in something. I chose to house it inside a plastic box. The box will need to be able to hold all the components: logic board, power supply, output receptacle. The first step to building this box is marking out where holes will need be so the plug and output receptacle can stick out. Then, use a soldering iron to cut holes in the plastic along the markings made. Make sure to use a soldering fan while doing this, as the soldering iron produces noxious fumes while melting the plastic.
Step 8: Finishing the Receiver Module
Now that the circuit and enclosure of the receiver are done, you can merge them together with hot glue. First, take the power supply plug, and glue it into the hole on the bottom. Then, glue the output receptacle so it is coming out of the side. I am leaving the logic board loose so I can repair it if necessary. When you are done, you can close the box and it will look like the picture above.
Step 9: Setting Up the Transmitter Base
The transmitter needs to be placed in a strategic location to provide adequate coverage of signal to the whole yard. I found the best place to be a diamond shaped window overlooking the front yard. Now, the transmitter will need to fit inside the window, so I chose a small 2x4 as a base. It fits perfectly in the window. Now, you will need to mount all to antennas and electronics on the base. I drilled holes in the wood and screwed in the antennas. These antennas were harvested from radios that were no longer used. Most of the parts (antenna and arduino) were screwed to the plywood base, while some were hot-glued(FM transmitter).
Step 10: Wiring the Transmitter
After all of the components of the transmitter are in place, it is time to connect them all together using hookup wires. Use the above schematic as a reference. My wiring is kind of messy due to the transmitter being a working prototype. The whole transmitter is powered by a 12 volt wall wart, which feeds into the vin of one arduino. The regulated 5 volts is then fed to the other arduino and the regulated 3.3 volts feeds the FM transmitter. Everything will work if you follow the schematic, make sure to get the pin designations right, or the program will not work. Now that all the hardware is built, it is time to write the software.
Step 11: Programming the ATtinys
The programming of the ATtinys is what makes them work. First, you should watch the below video to figure out how to program them. Then, you will need to download the virtualWire library for arduino. This will allow you to use the RF receivers to communicate with each-other. The virtualWire library file is above. You can then use the arduino code(the file is above) to program each ATtiny. Make sure that when you upload the code to each ATtiny, you change the integer that it turns on to. This would be like changing the bold digit in the code below from a one to a zero or vise versa. This changes the integer that the receiver turns on to.
After this is done to every ATtiny, they can be placed in their respective receiver boxes. It is helpful to label the digit the box turns on to on the actual receiver box.
Step 12: Programming the Transmitter Arduinos
Now, it time to program the two arduinos on the transmitter with the two codes above. The stage one code goes to the arduino with music input, and the stage two code goes with the arduino with the RF output. After uploading the code to both arduinos, you should be just about ready to fire up the Christmas light system.
Step 13: Setting Up All Receivers in Conjunction With Lights
Now that all the control systems are completed, its time to put up lights! This is where you can use your creativity. I have 5 receivers controlling 15 individual light strands. I have wired multiple different strands to the same receiver in such a way as to make it look like I have more channels than I actually do. To connect the receiver boxes into the system, run extension cords with multiple outlets throughout the yard. Just plug in each receiver box to an open outlet that constantly stays on. Finally, connect the Christmas light strands to the desired control box. Thats it, your system should now be done! Its time to test it!
Step 14: Testing!!!
Now that your system is done, plug in the transmitter, plug in an audio source, and sit back and watch the magic. I drove my truck out to the front yard to watch the light show so I could listen to the broadcast songs on the radio and keep warm. It is a really cool light show. You can watch the video below for a demonstration. I will also shortly have many demonstration videos on my YouTube channel. You can comment any song you want played through this system, and I will more than likely play it and make it into a video.
Thanks for reading and good luck building!
Make sure to vote for me in the contests!
Disclaimer: This instructable deals with dangerous mains voltage, I am not responsible for any health damages caused by this system. Use caution when dealing with lethal voltages.