I have finally completed a project that I have had in my imagination since May! This is my living room complete with DMX controlled LEDs mounted in between my bookcases.
Here is a link to a video I posted on YouTube. Yeah, I know, I used TSO as the music. I like their tunes and since it is Christmas time, I found it appropriate to have my first musical sequence fit with the holidays. I think my digital camera is sensitive to the blue since the image whites out when the blue is intense. The color saturation is really good, you will have to believe me or see it in person sometime.
Back in the spring my wife and I moved to Hong Kong. We ended up furnishing our flat with mostly IKEA furniture. Our living room was decorated a little more modern than we would have chose. One night I decided we need a little more color and a little more kinetic energy in the place. What you see in the video is the solution to our ‘mood’ lighting.
Technical Details:
I am making my post in this forum because the heart of the project is the Propeller. I used a Propeller Protoboard as the controller. I wanted to make a PCB, but my budget only had money for one PCB design. I soldered connectors and the simple circuit for receiving DMX (a standard lighting control protocol) to the protoboard. There is also a couple status LEDs. In the near future I will be adding a switch and some sort of display (LEDs or LCD or VFD).
The software for the controller is partially written in SPIN and partially written in ASM. The final code will have several modes that the LED Towers can operate in. One mode, of course, is where the controller will received DMX. The DMX will control the intensity of the different LEDs - this is what was done for the video. The other modes will be various algorithmic routines that change the colors or keep a solid color. The user interface that I will add will give the freedom to adjust the look, max intensity and rate of change and store looks.
The Prop is running at 80MHz. The program currently consumes 6 cogs. One cog is used for the grey scale clock and blank of the TI TLC5940s on each tower (one cog for each tower). Then there is one cog for each tower shifting out the data based on a buffer. Then there is the ‘main’ code that changes the mood and stuffs data into the buffers for sending to the towers. The last cog is the DMX receive code.
The controller is going to be mounted and hidden in the center bookcase. Ribbon cables run from the controller to each tower. I want to run the protoboard off of the 12VDC supply I bought for the whole system, but I should build a voltage regulator to get the voltage down for the protoboard. Right now I run the board at 7.5VDC and it gets hot so I dare not run it with the 5V regulator dropping from 12V!
I designed a 16 channel, RGB LED, controller board. The board uses three TI TLC5940 chips. One chip for red, one for green and one for blue. The chip is really easy to use and to work with. At the moment my code only send data but not dot correction. Future revisions of my software will allow for shifting both sets of data out. Also the current grey scale clock starts running and keeps going forever. I want to add hooks to pause the grey scale or to force the blank pin high.
There have been others on the forums that have used the TLC5940. I used their code for inspiration, but in the end pretty much wrote my own software. The grey scale clock is in ASM because it was easy. The serial shifting of data is currently in SPIN. I was going to change it to ASM for speed, but when I checked frame rates I was getting 40+ frames/sec in SPIN. That is enough for my needs right now. The software came together rather quickly. The power of multiple processors really allows for quick writing of software. it is natural to split tasks apart and make the code much more readable.
The LEDs are a flexible PCB with RGB LEDs soldered on it. This is a product I bought from one of my vendors in China. It is a neat product. It is designed to run with 12 VDC. The product comes in long lengths and is cuttable every three LEDs. There are 16 groups of 3 LEDs in each tower. Each group is wired to the controller. So that is a total of 96 RGB LEDs.
The two towers comsume 96 channels of DMX. I used Vixen Lights to program the show. Vixen Lights is neat, FREE, software. I happen to have an Enttec OpenDMX device from my ‘day job’ and it just so happens Vixen Lights has a driver for it. The TLC5940 allows for 12 bit of control of the LEDs, but I only used the upper 8 bits because that is what DMX provides.
When I made the PCB I had five of them produced. I used PCBCart. They have a good service, lots of flexibility. The price is similar to prototyping services in the USA, maybe slightly cheaper. I used two of the five boards in my installation. There are several changes I would make to the boards if I was to build them again based on what I learned from assembling these baords. If anyone is interested in purchasing the three other boards from me, please send me a PM and we can work out the details. I don't have any plans for them at the moment. The boards would be great for building your own LED display or for simply experimenting with the TLC5940.
Enjoy the pictures. I hope I can inspire you to work on your own projects. Have a great Chrismtas everyone!!
IMG_3282: Close shot of the 16 Ch. RGB LED driver board I designed. It has the TI TLC5940 chip. The other parts I bought locally in Hong Kong.
IMG_3314: The controller mounted and wired to the back of the white material used inbetween the bookcases
IMG_3323: Testing on my living room floor before 'final' installation.
IMG_3328: Looking down one of the LED towers. The LEDs are about 4 inches behind the front diffuse layer. The color range is amazing, vibrant and saturated. It looks great in person. I will have to try and take some better pictures and/or video.
IMG_3330: The Propeller Protoboard with the initial circuitry. I don't have all the I/O from the TLC chip wired, just the essentialls at the moment. The ribbon cable has all the signals so I could monitor for errors if I needed to. A cable with the 5 pin XLR (DMX connector) connects to the top right.