Introduction: Halloween LightshowPi
So, this season we were looking for something new to add to our Haunted Halloween Yard and I stumbled across this Raspberry Pi Lightshow project at http://lightshowpi.org. There’s also a lot of great info on https://www.reddit.com/r/LightShowPi/. In this instructable, I’ll really just cover the stuff I used to build my box.
Before I continue, I feel obligated to mention this project requires handling of electrical equipment and wiring and is not intended for children without adult supervision. In fact, if you are not a licensed electrician, please consult your local Electrician to help you. And NEVER service this project while it is plugged in. Exposure to live electrical circuits could result in DEATH! Alright, enough PSA. Happy Halloween.
Anyway, the LightShowPi software is pretty darn kool! It syncs your lights to your music. There’s a microWeb server so you can control the lights and music from a browser. It also includes SMS support as well as Streaming service integration via Pianobar. We play “Midnight Syndicate Radio” on Pandora. If you’re not familiar with them, Midnight Syndicate makes incredible Halloween atmosphere music.
This project utilized a Raspberry Pi 4, but I believe you can use any of the older revs.
seeed Studio Raspberry Pi 4 Model... https://www.amazon.com/dp/B07WBZM4K9
Samsung 32GB EVO Plus Class 10... https://www.amazon.com/dp/B0749KG1JK
MazerPi Raspberry Pi 4 Case,... https://www.amazon.com/dp/B07W3ZMVP1
CanaKit 3.5A Raspberry Pi 4 Power... https://www.amazon.com/dp/B07TYQRXTK
KEYESTUDIO GPIO Breakout Kit for Raspberry Pi - Assembled Pi Breakout + Rainbow Ribbon Cable + 400 Tie Points Solderless Breadboard
(2) SainSmart 8-Channel 5V Solid State Relay Module Board for Arduino Uno Duemilanove MEGA2560 MEGA1280 ARM DSP PIC
Icstation Digital Audio Transmitter Stereo DSP PLL Module 88-108MHz with LCD Display MIC USB Input
UGREEN Headphone Splitter, 3.5mm Audio Stereo Y Splitter Extension Cable Male to Female Dual Headphone Jack Adapter for Earphone, Headset Compatible with iPhone, Samsung, Tablet, Laptop (Black)
BOSS Audio Systems BVC10 Universal volume control - Use With Car Receivers, ATV, UTV, Motorcycle Sound Systems
Also, you’ll need a Tupperware bin OR some other enclosure, preferably weatherproof if it should be exposed to the elements. In my case, I crammed everything into an old 5gal Tupperware bin.
Receptacle outlets, my project uses 16 channels, so I have (8) duplex outlets. Plus (1) additional outlet inside the box to power everything. I also recommend weatherproof covers for your outlets.
You’ll need wire, of course, to connect everything. In my case, I had an old extension cord that had been cut and taken out of service. So I used the wire inside that.
I also used an old dual USB charger for external power to the relays and to power the FM transmitter. To save parts you might consider making the receptacle inside the enclosure one with with built in USBs.
Step 1: Install Your Receptacles
For my enclosure, I used a common 5Gal Tupperware bin. I like this option because they’re already weather resistant, by design. And, if you miss cut something, they’re super cheap and readily available. I used the back mount plate the weatherproof receptacle cover as a template to cut openings for the receptacles. I found my holes to be a little bigger than I would prefer. You might measure differently. Make sure, if you intended to add weather resistant covers to the outside of your receptacles, you leave enough room between them for the covers to fit next to each other, and still open freely. I underestimated the distance and got really lucky that they still fit next to each other.
Step 2: Wire Your Receptacles and Relays
To wire your receptacle, obviously You’ll need electrical wire. I had an old extension cord that had been nicked and taken out of service. I used pieces from that to wire my box. Feed your neutral (white) in and out of each receptacle on the silver screws. The ground (green) lands on the green screw. Your Hot (black), coming from the relay, lands on the brass screw. To split the duplex into two separate circuits, cut the little brass bridge between the screws. Notice in the pictures, the red drawing is the Hot leg, looped to one side of each relay and then to the power source, while the purple drawing is the out to each receptacle.
- (2) SainSmart 8-Channel 5V Solid State Relay Module Board for Arduino Uno Duemilanove MEGA2560 MEGA1280 ARM DSP PIC https://www.amazon.com/dp/B006J4G45G/
The relays will need a 5v power source. I’ve seen some schematics utilize the onboard 5v provided by the Pi, but I’ve also read that, given the nature of the project, the onboard 5v may not be enough sustainable power. I didn’t want to worry either way so I just added a USB charger cube, cut the wire from an old USB charging cable, and voila! an extra 5v, wired to the relays.
*A note about relays. As it turns out, not all relays are the same... so I’ve learned. You might notice, in some early pictures I had a pair of blue 5v “mechanical” relays with which I started the project. But, as I soon learned, these buggers can be pretty noisy as your show takes off. I’ve also read that these relays have a shorter life expectancy. Save yourself the headache and just go for the SSR relays. They’re silent. And, as long as you keep you Circuit under 2A, they should last.
Step 3: Wire Your Pi
As you’ll see in the pix, I’m using a Breakout Kit. This is not necessary and you can wire straight to the RPi. I chose this route because I use my Pi for all sorts of little projects and with this breakout kit, I’ve got a quick disconnect. That way, at the end of the season, I can remove the Pi, store the Lightshow box with my holiday stuff, and not have to rewire my pinout next season.
- KEYESTUDIO GPIO Breakout Kit for Raspberry Pi - Assembled Pi Breakout + Rainbow Ribbon Cable + 400 Tie Points Solderless Breadboard https://www.amazon.com/dp/B072XBX3XX/
The Pin layout for this project might be a little different than the standard RPi pin out. LightshowPi uses WiringPi for their layout. You should check http://wiringpi.com/pins to match your specific RPi version.
Step 4: Add the FM Transmitter (optional)
As I understand, the Raspberry Pi has a built in FM transmitter, but I couldn’t get it to work with the RPi4. I added an external one. There’s not much to this step, pick a station that’s dead in your area, USB to power it, 3.5mm input for the audio. For the antenna, I used a scrap piece of wire, stretched up a column on our front porch. We get reception all the way around our block.
- Icstation Digital Audio Transmitter Stereo DSP PLL Module 88-108MHz with LCD Display MIC USB Input https://www.amazon.com/dp/B01N7DIRE9/
- UGREEN Headphone Splitter, 3.5mm Audio Stereo Y Splitter Extension Cable Male to Female Dual Headphone Jack Adapter for Earphone, Headset Compatible with iPhone, Samsung, Tablet, Laptop (Black) https://www.amazon.com/dp/B00LM0ZGK6/
- BOSS Audio Systems BVC10 Universal volume control - Use With Car Receivers, ATV, UTV, Motorcycle Sound Systems https://www.amazon.com/dp/B0149VBF8G/
I included the optional headphone splitter and in-line volume control because I have an old amp and speakers attached to this system as well. We broadcast and play music aloud until around 9PM, at which point my amp powers down and the FM transmitter continues to broadcast until 11PM.
Oh! I Almost forgot. Make a sign so your neighbors know what station to tune in. This is where the kids really get to have fun!!
Step 5: Install the LightshowPi Software.
You will need some flavor of Raspberry Pi, an SD memory card or some sort of storage, a case, and a power supply.
- seeed Studio Raspberry Pi 4 Model... https://www.amazon.com/dp/B07WBZM4K9Samsung
- 32GB EVO Plus Class 10... https://www.amazon.com/dp/B07WBZM4K9Samsung
- Raspberry Pi 4 Case,... https://www.amazon.com/dp/B07WBZM4K9Samsung
- 3.5A Raspberry Pi 4 Power... https://www.amazon.com/dp/B07WBZM4K9Samsung
I won’t get crazy into this part as there is already a pretty great setup guide on reddit.
I will urge one suggestion. Once you’ve installed everything, before you make any changes, test your relays.
sudo python ~/lightshowpi/py/hardware_controller.py --state=flash
Also, as you edit the overrides.cfg file, make small changes and test frequently between them. Several times, I’ve mucked up the program from small mistakes in the overrides file. Making small changes and testing frequently makes it easier to troubleshoot your mistakes.
Step 6: Plug in Your Lights.
You’ll mess with this step a bit as you go. We already had the lights setup this year. So, we played music and moved the lights around on the plugs until we had a good balance of blinky around the yard.