I used the Gen1 Rev B version that comes with 512Meg of memory, 2xUSB ports, 1xLAN port. This board has a 26-pin header with 8 I/O available (more if you don't want to use some of the other protocols available), and an extra 8-pin headless location with an additional 4 channels of I/O.
I took advantage of this board for all its worth and loaded pretty much all the GPIO it had. In the end, Ollies Loop Lites using Lightshow Pi was controlling 18 channels of GPIO to approximately 2000 LED bulbs and 2x RGB flood lights. Pretty impressive for this 1st generation Pi module.
I ended up saving a little and picking it up in kit form, which I then soldered together. It basically adds terminal connections to the 26-pin header, and adds protection and current limit resistors for all pins. I tried to design my own interface board, and had one actually etched, but my soldering skills were a little lacking. Soldering a commercially grade board that has gone through the proper process was so much easier. The Custard Pi 1 board has been a great addition. Unfortunately the Custard Pi 1 board is no longer available commercially, so I have included the specifications/instructions here.
So in order to turn the lights on/off, you have to connect the Pi I/O to some sort of relay system. You could just use discrete relays, but I chose to use a SainSmart 8 channel SSR relay board. This board has 8 drive circuits that run off 5V, and 8 Omron G3MB-202P Solid State Relays. These boards by SainSmart were designed for use in small Arduino and Pi projects. They are relatively inexpensive, and easy to hook up. The SSR type boards are 2A capable, which is just fine for strings of LED lights. If you figure your load will draw greater than 2A, then SainSmart does sell a version that uses mechanical relays that can handle 10A current loads.
The previous LightShow Pi system used 2 of these boards...the second only partially loaded.
The new system based on FPP will be using 4 boards. I also have one board spared on hand with 7 good channels. I had a catastrophic short occur which drew more than 2A that the onboard relay couldn't handle, and as a consequence, I blew the channel. So I'm looking into replacing the SSR and have a full board available to swap should I have to.
This is the smaller brother to the SainSmart 8 board. It only contains 4xSSR, but other than that it is the same as the SainSmart 8. The intentions were to use this board for driving the hacked 10w RGB floods, but for reasons that I will get into later, this board will be put to other uses.
After the 2023 show, I will most likely be relocating the circuits from this board to the a SainSmart 8 channel board. I still do have plans to possibly use this to expand the system in the future. or use the board in the event I need some backup relays should I run into issues.
International Rectifier's FZ34NS N-Channel MOSFet for low-side switching of low voltage circuits (i.e. RGB 12v floods)
The original plan was to use the Sainsmart 4 port relay board to control the hacked versions of the 10W RGB floods. Upon testing with the 8 Channel board, I found out there was issues where the relay would hold a static charge across the load contacts, keeping the RGB lights on until I physically shorted the contact terminals. Which I then realized that these SSR boards are strictly for using with AC loads, not DC loads. So I simply used the FZ34NS Fet as a simple low-side driver for each colour. I put a 10k ohm resistor on the gate to current limit and protect the RaspPi IO. The resistive loads on the RGB LED are what was included in the RGB flood. More on the RGB Flood hack further down.
Dependent on the direction I was going to go post 2023 show, I had one of these boards for the last few years, but haven't set it up to use outside of experimenting with it. This board is an I2C expansion board, which will allow for upto an additional 16 channels of IO to be added to the LightshowPi show.
Had I decided to expand on the Lightshow Pi show, I would have used this board, but after 2023, I decided to take this hobby on a different route using FPP/xLights, so this board isn't going to be used in the near future.
What's a Christmas light show if the public can't hear the music? I could broadcast the music through my home audio system, though this would most likely upset the neighbors, and when it's cold out, why would anyone want to be outside of their warm vehicles? So I ended up picking up a CZH-05B for the cheap. There wasn't too much public opinion on the unit other than a short YouTube video, and somebody wrote up a blog review, but they both had nice things to say about it. The price was also right, though this unit in particular didn't include a power source, something I learned the hard way. The unit itself is pretty powerful, as I had it in the basement of my home, and I was still picking up a signal a good block away.
So, as mentioned the unit didn't include a power source, but I figured it didn't matter, since I had on hand a 12VDC wallwart. I figured that wrong. The 60Hz hum was so bad, that you couldn't even hear the actual audio signal. Luckily I had on hand a Symbol 12V 9A switch power supply from an eBay purchase a while back, and it was just sitting collecting dust...well, not anymore.
I originally bought this sort of supply to power a car audio amp in a portable PA system. For that project I had only ordered two but the ebay seller included a third for some reason. I ended up leaving this in a box and it collected dust for many years. It was brought out of storage because it was required to power the FM broadcast system, since it is a nice clean power source. The supply itself is capable of outputting 9A, and soon became the perfect power unit to power the entire LightshowPi system (control side). So this supply powers not only the FM transmitter, it sources the DC to DC converter shown below for 5 volts to bias the SainSmart relay boards.
For the new show, I will be using two more of these supplies to drive the hacked RGB floods (mentioned below), and high powered LED spotlights via a DMX Led Controller.
During testing with the RGB flood lights, I measured the load on the supply, and the DMX controller in standby draws 25mA. Measuring the draw of one flood connected, all LED's on, the current draw was only 750mA. So no issue driving 4 RGB floods off one supply. Likewise the manufacturing specs on the high powered spots is 18W per light. This means just over an amp at 12 volts. The Symbol supply should be enough to drive 4 lights.
This unit is a nice clean DC to DC converter, and basically takes the 12VDC from the Symbol supply and converts it to 5V via 4 USB ports, or two screw down terminals. This was a great ebay purchase, as it is used to bias the input circuitry of the relay boards.
As mentioned above, I found out a way to get the most from the hacked RGB floods by diving into the world of DMX control. This piece is integral in controlling the different channels of the flood lights. It allows for up to 4 RGB floods to be connected (or 12 individual LED lights).
It to, was a pretty cheap buy on Amazon at only $50.
It draws under 30mA at 12V in standby, and upon testing it under load with the 10W floods I indicate below, it only draws about 750mA per channel with all three colours on. So the above 12V supply should be more than ideal to control the RGB floods.
I've purchased a second one of these that I can daisy chain using CAT5e cable and setup a second group of hi-powered white LED floods for strobe/flash effects.
I ended up getting a couple of these off ebay for pretty cheap. I researched on how to hack these lamps to control them using the RaspPi. These make a nice addition and brings a certain amount of ambience and mood to the display. For the original LSPi show I used two of these controlled by 3 GPIO ports on the Raspberry Pi. Now that I'm going to use DMX to control them, I'm in the process of purchasing an additional 2 units to expand the display to 4 floods.
The hack for hard wire control is well known for these floods and explaining pretty good here:
The original RGB floods modified for Ollies Loop Lites were a little different from what the video displayed above.
This was the unit when it first arrived. The black cord was an open ended 3 conductor cable for 120V termination.
This is what the inside looked once the face glass was removed.
And when the reflector was removed, it exposed the circuit board seen to the left. I would disconnect the IR circuit. Measuring the LED, it was getting a common high side, meaning the LED banks were driven direct by power, and switching occured on the low side. This is pretty common, and the parts required for low side switching is minimal. The red, green, blue wires coming off the LED and terminating at the large wattage resistors would be kept. Below is a closer view of the circuit board.
I snipped out the red and black wires from the circuit board. These two wires went though holes on either side of the LED die. I also snipped the resistors leads on the left side of the above image from the circuit board and attached my control leads to them. The wiring used was CAT5 cable. Though the wire AWG was small at about 28 AWG, it just met the minimum requirements for the amount of current draw. I used the following schema for attaching the CAT5 cable:
CAT5 RGB
Orange Red
Green Green
Blue Blue
Brown +12V
The image above show the original power, ground and I/R cables detached from the circuit board.
The compartment on the backside of the RGB flood housed the LED driver power supply, a small 120VAC to 12VDC converter box.
Here is the power supply removed from the flood. The nipple that the AC cable went through will be repurposed for the CAT5 cable to route through and be sealed off as the cable is about the same diameter.
These flood were definitely easier to work with as they had the resistors already on hand that I used to current limit the floods. Unfortuately I did't take any pictures of the finished product prior to sealing it back up and after years of use, I'm a little reluctant in opening them again as the screws are corroded.
To note, this hack was done back in 2014, and the floods have been used in the Ollies Loop Light show to this day. I'm hoping for just as much success when the next two come in.
As I mentioned above, around Christmas (2013) I started to search the web on individuals who may have used a Raspberry Pi to synchronise lights to music, and I ended up coming across the LightshowPi project. So now I found the software, I started to work on the hardware side.
I ended up doing this hack to the Pi, since I had extra USB cables laying around, and it saves from the plug accidentally coming unplugged. In addition, I cut the USB B ends off of two additional cables, and terminated them to the relay boards. Now all 5V devices are quickly terminated to the USB ports on the 5VDC converter.
I had originally designed and had fabricated a double sided circuit board that I was going to use to make my interconnections to. Once it was done, I tried to solder to it, and just ran into issues. I then happened on the Custard Pi 1 in kit format. So to save a couple of bucks, and to give me some soldering practice, I had pieced together the kit in about an hour. I now have a pretty decent interface to connect my relays, and FET circuits to. The Custard Pi 1 has all the connections for the I/O, and different communication protocols, current limit resistors on every line, as well as protection Zener diodes for over-voltage protection.
Now the basic hardware is setup on the Pi, I preload the SD card with the most recent version of Raspbian, installed the card and powered on the Pi. Connected for the first time to a monitor, and a keyboard, I installed any Raspbian updates and verify that SSH terminal is running, so from this point forward, I can use Putty or some other SSH terminal to log into the Pi remotely. In case you don't know, Putty is a free Telnet/SSH Client program. Putty is great for sending Linux commands remotely and controlling the Pi across a network. Another SSH client program that I like to use is called WinSCP. Actually it really is a SCP/FTP client program, and I use it for quick transfer of mp3 files from my computer to the Pi. It is also great for editing the config file, since it opens into a simple text editor.
Now after getting Raspbian up and running, the next step is to install LightshowPi. It is very simple to get up and running, by just following the instructions on the LightshowPi page. After doing that, the next step is to transfer audio files to the SD card. Again, I use WinSCP for this. The final step at this point is to enter the config file called defaults.cfg and edit the appropriate lines. Again, editing is very easy to do via WinSCP. Each section in the defaults.cfg file has blurb-age on how to setup the various settings, but the low-down is shown below:
Under [hardware]
The number of GPIO pins is defined by the gpio_pins = setting
How the outputs operate either by flashing on/off or fading is defined by pin_modes =
If using pwm mode, then you will want to define the pwm frequency by setting the pwm_range =
Under [lightshow]
Set the playlist path by defining the setting playlist_path =
You can indicate what to do with the lights in between songs by the preshow = setting
You can define IO to be always on, always off, or invert channels by the settings always_on_channels =, always_off_channels =, invert_channels =
Under [audio_processing]
Define the min and max frequency range by the min_frequency = , and max_frequency = settings
Custom channel mapping is defined by the custom_channel_mapping = setting
Custom channel frequency is defined by the custom_channel_frequencies = settings
There is also a sms section that can be setup for using texting from a cell phone to control the system, but since I'm not in the US, I can't take advantage of that feature, so I will not comment on it.
That's it. Once you save the default.cfg file, your almost ready to run...but you wont be able to see anything happen unless you get a relay board at least hooked up to the IO.
crontab setup:
My crontab setup that is working. Under the Christmas lightshow configuration, I've setup a prelude audio file, and control of all the lights coming on for a minute, then shut off. The rest of the show will commence by playing back the playlist for a set duration of time.
My first live test back in 2014:
It has been a long, long while since I took a serious stab at this project. I first started this endeavor about 4 years ago (when I viewed my 1st Christmas light show YouTube video). Did a live test at my previous house about 3 years ago, which I posted on YouTube (linked above). But Since moving, I didn't really look at this project again. Wanted to, and every year, during the year, I thought about getting all the parts together to finally get the system running...but then I'd get busy with other things. Next thing, it's Christmas time, and not having a chance to work on it, I put the project back on the shelf, only to re-hash the same issues a year later.
This year was different. A few parts that I'd never imagined, just came together, which allowed for a chance to cobble the system together. After 2 nights of testing, I have officially started the Ollies Loop Lite Show. It runs from 5:30 pm until about 7:30 pm. It covers roughly 30 tracks, which starts with a Christmas Vacation intro that I put together a few years back. The system consists of the following:
12 channels of controlled lights - all run from the pi's on-board available IO
3 channels of controlled RGB flood lights - from pi's on-board available IO
2x lighted snowmen
2x lighted presents
3x3 candy canes
1x Santa Clause
970 LED bulbs (and counting)
The plan this year is to introduce the community to the light show, see how they like it (so far all positive), and then throw more channels and lights into the mix next year.
Here is some video of the First Annual Ollies Loop Lite Show:
I have now added a Twitter feed; @OlliesLoopLites, which give current updates on the songs being played from the playlist. I am also going to look more into a feature in the more recent version of Lightshowpi that allows for master/slave pi's to be setup. This will allow for a master pi running the outside lights, and a slave pi running indoor lights. Or could allow of running synchronized lights from multiple family homes in the neighborhood.
Lessons learned:
Adding the Twitter feed is a nice compliment
Break up songs/playlist into a smaller show, that runs multiple times during the evening. Like at the top of the hour, every other hour.
Have signs posted to indicate the fm station to tune to
Replacing the 10W floods with 20W, or even 30W for a brighter, more POW affect.
Setup the master/slave system so I can have both outdoor and indoor lights synced and even maybe include the neighbors as shown in this video clip:
Ollies Loop Lites are back for the 2018 Christmas season. A few changes to the show. Introducing a couple mini trees made from steel EMT 1/2" conduit held in place by 4' rebar pounded down about 1.5' into the ground. Also additional lights on the gutters. I/O is now maxed out at 18, and so looking into an I2C expansion board and more relay boards. As well as needing to get additional floods for next season. A few songs swapped out for different, more vibrant music to help drive the lights to their max. Twitter feed in full swing, and the show is broadcasting on 90.9 fm from 5:30pm to about 10:30pm every evening.
Well Christmas 2019 is fast approaching. I've started to test/prep the system. Some new things are happening; coming out with a new control bay. Before I had all the heart of the electronics under a small boat, which left everything somewhat exposed to the elements. I've been constructing/wiring a new pedestal enclosure for the PI, supply, FM transmitting, and main relays. Finishing the wiring on that now. It will allow for a better visual when troubleshooting, as well as get the electronics out of the elements.
Also have 2 additional 8ch relay boards, and I'm waiting on a I2C MCP23017 serial extender board. This will allow expansion from 12 channels (and 3 RGB Flood channels) with an additional 16 channels - 28 channels of GPIO.
I've also started to experiment with streaming music to the lightshowpi via shoutcast streams right now. But should be able to stream any internet to the pi if the streaming channel is known.
Finally, along with the GPIO expansion, I'm going to expand on the light display to make it an even more impressive experience. More to come in the near future.
I haven't really reported to much in the last few years on the lightshow. With 2020 being a down year due to Covid (I ran the show, but didn't really mention it too much). Following year in 2021 I didn't setup the show as I was travelling for work, but finally had the show back up in 2022. Now after this year (2023), I'm finally going to go with the expansion of the system with the MCP23017 board and extra relay boards. I also have some plans for DIY trees, stars and lights around the windows.
After this expansion and future 2024 show, I'm going to re-evaluate the system and might perform a major overhaul with new hardware (Pi from first gen to maybe a 3rd or 4th gen) and go with a FalconPiPlayer (FPP)/Xlights setup.
*UPDATE*
Upon experimenting with xLights and creating several sequences and testing them on a Pi 2B running FPP, I think I will be moving away from LSP for the 2024 show, so this current LSP will be retired after the 2023 season. It was a very enjoyable run, but better things await.
In fact, I have been able to setup and simulate sequences in xLights, which might be included in the 2024 show: