Beginnings…

Back when I was a small child, my family, along with most others in my neighborhood, put out lights for Chrismas. Back then- it was big C9 or C7 bulbs, painstakingly fastened to the eaves of the house with nails.

Later on- the dreaded “if one goes out- they all go out!” mini-lights appeared. They were cheap-ish, used less electricity, and were reasonably easy to deal with. It became really easy to adorn every window and shrub and tree in the yard with them. You usually had to get several extra sets, and spend a lot of time pulling and replacing bulbs in them to try to get them to work every year. Slowly- these improved and started to replace those old C9 and C7 bulb strings.

For some reason, over the last 30 years or so- people just stopped decorating with lights for Christmas. Many don’t decorate at all anymore. It can be expensive, and very time-consuming, and a lot of the older people who used to do it every year are either dying off or just can’t do it anymore.

In the last decade- there has been a resurgence, primarily thanks to cheaper lights, LEDs, and lighting/pixel controllers that have moved from the professional lighting realm to the hobbyist. Almost every neighborhood has at least one house with “crazy” amounts of lights- often synchronized to music. Others have theirs professionally done- with meticulously spaced lights throughout their property. Still others just throw large quantities of mini-lights on everything in their yard. Still- Christmas lights are making a comeback, and I love that.

So- for me- my hope is to inspire more in my neighborhood to decorate for the holidays. The last couple of years- my wife and I started to accumulate yard decorations, and this year a few inflatables. We also have a LOT of LED mini-light strings we have purchased in after-Christmas sales that ended up all over the house and yard this year. She loves shopping those cheap Chinese outlets that will send boxes of flashing LEDs dirt-cheap. The problem is- you can’t control the flashing to any real degree- they all reset to a random pattern every time you turn them off. Better LED strings are ridiculously expensive for what little they do. What I want is a nice coordinated lighting display that we can control. We have some great “cafe” lights on our deck that we can control the color of throughout the year- changing them for each season and special holiday. I want the same sort of thing for my holiday lights.

Enter LED “Neopixels”, or simply pixel lights. These are essentially what we have on our deck, and what all those fancy synchronized-to-music light displays you see on TV and on the Internet use. They are brilliant- each LED can have its own color at any time, and they can be quickly changed. They use serial digital communication- making them dead-simple to wire. The big thing is- you can’t just plug them in- you need a controller for them- that can send out the right signals for the LEDs to pick up. This makes getting into this realm of lighting a bit complicated, and sometimes expensive.

The neopixel LEDs themselves aren’t cheap, but compared to some of the fancy LED lights you can buy in a store that are still limited- they aren’t all that bad either. There are a lot of Chinese suppliers willing to sell you thousands of them on eBay, Banggood, Alibaba, and even just Amazon.com.

There are also great companies selling pixel controllers, based on technology previously just used commercially for scoreboards, digital billboards, and architectural lighting. Light-O-Rama and Falcon are two excellent suppliers of controllers. These are pre-built plug-and-play (sort of- you still need software to “sequence” your show, and have a lot of wiring to do), safe and reliable. The problem for me- a cheap redneck with a dusty electronics degree- is they aren’t cheap, and the chips and circuits that go into them are actually really cheap if you don’t mind doing a bit of work.

I’m taking a middle-road here. I’m not building controllers completely from scratch. I’m using mostly off-the-shelf components. Thanks to a couple of great sites- doityourselfchristmas.com and diychristmas.com, and outstanding work by the open source community, it isn’t all that hard or expensive anymore.

So- the purpose of this blog is simply to document my foray into this. I just started playing with these lights a couple of weeks ago, and was inspired to expand on what I have done so far. My goal for now is to light up the roofline and possibly windows of our house with neopixels and put on a nice light show. I don’t want a “mega tree”, which seems to be a staple of these shows right now, and I don’t plan to coordinate things to music- I just want a nice ever-changing display that isn’t just a disjointed set of randomly flashing LEDs. Of course- as this evolves- there will probably be arches, spikes, mini-trees, and (gulp) maybe a mega-tree in the future.

So- here is what I have so far- a simple string of 100 neopixels. My wife and I staked them along one side of our driveway. They are driven by an Arduino Uno running FastLED. They are just running a doctored-up demo script I found online. I tweaked some things to get it to work the way I wanted it too (fortunately I’m also a programmer, although that really isn’t necessary anymore). It’s run off of a surplus 12v power supply I swapped out of a 3D printer when I upgraded it. It, and the Arduino Uno, sit in a small plastic storage container with the lid taped down so water doesn’t get into it. Very redneck/low-tech, but it works fantastically.

There are limits to the Arduino Uno though, due to its limited memory and clock speed.  Microcontrollers with more memory like the Arduino Mega are a bit better, but for larger displays- using them just isn’t practical. They are actually expensive for what they do (in this case). I just had one in my electronics junk drawer, and it was something cheap and easy to start with. I also tried using a Raspberry Pi, but discovered they just don’t work at all due to speed/timing issues. There is a lot of confusing information out there, and I’ve spent dozens of hours reading through other blog posts, README files, and other documentation trying to figure things out. I’m hoping to clear some of that up in future posts as I outline my experience over the next year.

So, please stay tuned…