Christmas Lights Synchronized to Music! (...and lots more...)
As long as there has been an electronics industry, there has been a corresponding legion of enthusiastic hobbyists, coming up with creative applications just for the sheer pleasure of seeing what they can accomplish.
For generations, people have celebrated the holiday season by decorating their homes with lights.
It was inevitable for those two worlds to collide. By connecting a yard full of light strings to a personal computer, complex light patterns and coordinated scene changes can be orchestrated. Many have taken it to the level of synchronizing their lights to music and sound effects.
There are commercial products available to control power loads from a computer, but the insatiable desire of Do-It-Yourself (DIY) enthusiasts to try crazy new ideas has spawned a whole community of hobbyists who design and build our own hardware, write our own software, and orchestrate our own light sequences.
This project will create a small networked set of DC controller boards, based on my earlier prototype of AC controllers, as a proof-of-concept for the new design, and to work out any last issues with the hardware and firmware. It will also include the manufacturing of an initial production run of circuit boards, to be made available to DIY experimenters who wish to build their own complete units.
Not Just for Holiday Lights
Once one has the ability to control power loads with computer software, there are limitless possibilities for experimenting with home automation, robotics, family life, theatrical props, and whatever else requires power control.
My Project: Lumos
Lumos (the name is a concatenation of "Lumen"--Latin for "Light"--and "OS" for "Orchestration System") is the result of my own exploration into this space, to see how I could add some new innovations to the collection of DIY circuits already being shared within the Computerized Christmas Lighting community.
While a number of other popular DIY controllers separate the logic from the solid-state relay (SSR) units, putting them in separate locations, I wanted an all-in-one unit which would control many loads in one package, putting my own controller circuit design and firmware on the same board as bank of DIY-community-standard SSR circuits. A single communication cable carries the command stream from the host PC to a daisy-chained set of up to 16 controller units, each controlling 24 or 48 output channels. The communication, based on the RS-485 serial I/O standard, can be carried up to 1200 meters (4000') on unshielded twisted-pair cable (such as CAT3 telephone wire or CAT5 Ethernet cable).
Adding DC Circuits for LED Lights
A growing trend in holiday lighting is the move toward lower-power, longer-lasting LED lights. This project introduces a new circuit board which controls these kinds of DC loads.
These new boards will be capable of controlling up to 24 DC loads each, in blocks of 8 loads. Each block of 8 has a separate power source, so up to three different voltage levels may be controlled from a single board.
Need more channels per controller? No problem. The new boards may be built as simple DC relay boards, each controlled by half of an original Lumos 48-channel controller (or your own custom circuit such as an Arduino board), or they may be built as fully-contained self-controlled 24-channel devices.
More Efficient Protocol
The most common approach I've seen among DIY controllers is to have the computer "bulk update" each controller with the current state of all its output channels. So if channels 3 and 5 of a 48-channel controller are changing state, the computer re-transmits the values of all 48 channels to it anyway.
This approach has a couple of advantages, but it sends a great deal of redundant data over the wire. This limits how many devices can be listening to one network, and puts a burden on the controlling PC which has to keep sending all that data.
The Lumos protocol is optimized to handle bulk updates when necessary, and discrete channel updates when possible, to greatly reduce the number of bytes sent to make less-than-global changes to the lighting pattern.
Controlled and Orchestrated by Windows, Mac, or Linux PC
Once you have an assembled controller board, you may use a PC to command it to control the lights (or other loads) you have plugged into it. I'm writing my own open-source software to accomplish this, and there are other similar sequencing programs you can use as well (suitable output driver plug-ins would need to be created for those programs). My Lumos software is known to run on Microsoft WIndows (XP and 7), FreeBSD, Linux, and I'm working on the Mac OSX version as well.
Expanded Configuration Options
I anticipate and hope that people will dream up applications for these control boards I haven't thought of yet, so I designed them to be as flexible as possible. They can be built as simple DC relay boards, controlled by an external circuit. Or, they can be built with the control logic built-in to a single self-contained unit which accepts commands over a serial cable and acts on them.
Although designed to use RS-485 serial communications to allow longer distance and "multi-drop" chaining of up to 16 controllers per serial interface, perhaps your application will be within a more confined space and you wish to have a single controller plugged in directly to a PC serial RS-232 port. The board may be built to use RS-232 instead in that case.
Perhaps a special application needs input sensors for local, autonomous operation. The four on-board status indicator lights may be replaced by up to four input signals.
Finally, if you wish to move the indicator lights and control buttons off the circuit board in order to create a front panel, the board can be built to accommodate that using an alternate connector.
"Greener"--More Efficient Power Handling
Besides the power efficiency of using LEDs instead of incandescent lights, this new board includes the ability to command the load power supply to turn on or off as needed. When instructed to do so by the host PC, or when the Lumos board determines that it's been sitting idle for too long, it will tell the load power supply to shut down, using only a small trickle of current to keep the logic circuits awake for activity which will cause it to spin up the power supply again for use.
(Requires a power supply capable of this method of control, e.g., an ATX-style PC power supply.)
Here's a general outline of where the development's next steps will be and how I'll get there.
Built on Foundation of My Previous Work
The first experimental prototype Lumos controller was a 48-channel controller with the power supply and logic on one circuit board, connected to a pair of 24-channel AC SSR boards, capable of switching loads of up to 5 amps each at 120 VAC.
The second video [above] demonstrates how the current (prototype) AC boards work. I built one set of these boards, and a friend built another set, and have experimented with them for a couple of years.
With the lessons learned along the way, and the need to now branch into DC loads such as LED light strings, I have identified what new features need to be added, and designed the next generation Lumos controller hardware, firmware, and software. When this has been implemented as a proof-of-concept set of these boards working in concert together, I will update the AC relay boards to have similar improvements.
The Lumos software (a work in progress) is already open source, although the prototype AC controller boards have not yet been released publicly. At the successful completion of this Kickstarter-backed project, I will release the hardware design documents, including schematics, PCB fabrication data, firmware source code, and bill of materials, to the public as an open source DIY project as well.
Like many other enthusiasts before me, I have benefited from the previous work of other DIY developers who have released their designs to the public for free use and continual innovation. I'd like to contribute my designs back to that community.
Thank you for considering my project. I look forward to creating my proof-of-concept construction of boards, which will finalize the design and testing of this open source product. With your help, another fun and useful idea will take tangible form in the world.
Note for shipping of orders outside the continental USA: Please add $15 to your pledge amount to cover the higher shipping and handling charges incurred. Rewards will not be shipped to any destination where the sale or distribution of these goods from the USA is restricted or prohibited by law.
PDF manuals will be shipped to your e-mail address (which you will provide once the project is funded). We reserve the right to decline to print a "name" in any materials if we deem it to be offensive or inappropriate (e.g., a rude nickname).
In the project illustration above, the photographs are of the previous prototype 48-channel logic board and 24-channel AC SSR board. The schematic and PCB layout graphic are from the new DC board which is the subject of this Kickstarter-backed project.
This project is intended for experimental/hobby/educational use. It is not suitable for controlling loads or systems when any failure could result in danger to property or risk of injury or death. It has not been evaluated by a body such as UL. This is not to be considered a fully finished consumer product. If you choose a board as your reward option, you agree that you understand this is a personal hobby project. You build and/or use it at your own risk.
Sign up for that level of reward and multiply the pledge amount by the quantity desired. For example, if you want three PC Boards and three programmed chips (3x the "silver backer" reward level), sign up for the "silver backer" and pledge a total of 3 x $70 = $210.
The board is based on the PIC18F4685 microcontroller by Microchip.
What protocol does this board use? Is it compatible with the standard DMX512 used in the theater industry?
Lumos boards use their own binary protocol which is designed to allow access to all of the advanced features of the device (such as programmable sequences and reconfiguring the device remotely) while being efficient (you can address a single channel to be changed without re-sending all the other channels' data)
However, supporting an industry-standard protocol such as DMX512 would be an advantage for users who wish to use the board with other control software and equipment. I am currently investigating how I can support DMX512 in this revision of the firmware. I'm thinking it could be configured into a "DMX512" mode to receive channel updates that way, with a way to switch it back to reconfigure it or use its advanced features. I'll post an update with that information when I determine what I can support in this version.
Support this project
- (32 days)