PixelLux- a 64 Pixel RGB LED Video Screen

61K20211

Intro: PixelLux- a 64 Pixel RGB LED Video Screen

EDIT: 
Wow, I didn't think this project would be so looked at on instructables! thanks for taking a look :). I have a crappy video that I'll upload, but sadly I was an idiot and burnt out my teensy... so I'll post a video of the whole thing working later! 

Hi Instructables!

The following is a quick tutorial on how to build my PixelLux, an ultrabright, lo-fi, RGB LED video screen. Feel free to leave questions, comments, or suggestions! This is my first instructable, so any feedback is much appreciated.

Let's begin.


What you will need for 1 PixelLux:

things:
Arduino or Arduino based microcontroller (I used a Teensy++, available here)
64 Digitally addressable RGB LEDs 
               I suggest using a wholesaler on Alibaba, I used Schenzhen Rita Lighting LTD (Least expensive, longest wait). 
              Other options include Adafruit (A little more expensive) and Sparkfun (Also more expensive)
12 Volt DC, 10 Amp Power Supply (I got a 15A variable power supply from Fry's. It's AWESOME)
1/8" frosted plexiglass (available at a local glass store or acrylic store, should be a little smaller than the back)
20/22 gauge wire
Protoboard and/or pre-made PCB
32"x32"x1/8" Wood Board (for the back)
18x 32"x2.75"x1/8" Wood (for the inside and outside walls... I cut mine out of some lattice from home depot)
Tolex (to finish the light, I got mine from mojotone)
Aluminium corners (also for finishing- any hardware store has these)
4pin connector (I used a 4pin microphone cable from radioshack... but a USB should work too for smaller installations)
Cabling (the 4 pin mic cable wasn't sold anywhere so I had to make my own)
Project box
USB cable (for programming and microcontroller power)

tools:
Table Saw
Circular Saw
Tile/metal saw
Soldering equipment
Drill (and various bits, metal AND wood)
Nuts&Bolts(1/8" bolts should work)
Wood Glue
Clamps (clamps everywhere)
Spray paint (I used black on the inside to make it look less wooden and more finished)


I have access to a lot of tools, which made this project much easier. If you don't have everything, don't worry... this project CAN be done with a drill, dremmel, hand saw, and clamps. you still need clamps. lots and lots of clamps. SO MANY CLAMPS.


LETS BEGIN!

STEP 1: Building the Frame

The first step is to build the basic frame that will hold are led matrix. This is one of the most important parts of the project, and it's first, so remember- measure twice, cut once!

I went to home depot and found (in the moulding and trim section) some wide lattice that I cut in half to make two 2.75" wide boards. You'll need 9x 32" boards to make the entire thing, so make sure you buy enough of the lattice.

Take your bars and create a basic frame, clamping it together and supporting the middle with an extra board or two. Place larger pieces of wood on the outside of the frame (before the clamps) to distribute the pressure. Make sure the box is square, and glue.

When it's pretty dry, add the remaining 7 bars to create the y (or x) direction of your matrix. Be sure to make them as close to the same size as possible! clamp, and glue. Let this dry for a bit. 

STEP 2: Finishing the Matrix

With your remaining bars, cut slats to create the x direction. Cut them as accurately as possible, because they will most likely be off (I had to do quite a bit of sanding to get everything right). Measure and glue them in (see my picture for reference).

tips: have a friend help glue while you put them in. Mark where you're going to put them BEFORE you actually put them in- this'll save a lot of time in the long run.

STEP 3: Cutting the Back

Before we commit to actually cutting the back board, let's go ahead and trace the inside boxes on the 1/8" back board. You might as well kill two birds with one stone and find the exact center of each square by drawing in cross-hairs. This helps for positioning the LEDs.

When you're done tracing the boxes, trace the outside edge so you know where to cut. Cut it, sand it a bit, and continue onward....

STEP 4: Finishing the Back

This is kinda a multi-step thing, so bear with me. 

First, you're going to want to drill all 64 holes in the back of the board. If you plan on tolexing your project, DON'T FORGET TO COUNTERSINK THEM. they should also be bolts, not screws (the bottom should be U shaped not V shaped).

After you've drilled the holes, go ahead and spraypaint this thing, though you only need to do it on the front if you're not tolexing.

When it's dry, lay it face down and put all the nails in, flip it over, and string the leds. They should fit JUST right, but you may need to make some new connecting cables.  Be sure to check for those twisted cables!! 

STEP 5: Aligning the Matrix

Laying the matrix perfectly on top of your completed back, mark where the wires are (see pic). Using a dremmel, create little tunnels for the wires. Since I'm making two, I brought up an extra wire to have an input connector and an output connector.  

Paint this next, align, and glue, being sure to use adequate pressure (bags of concrete helped with this... had to reglue a few times though :P)

At this time, you should also drill the output/input holes. If you plan on adding more units later, soulder a long cable from the bottom of the strip to the top so the input and output can be next to eachother.

STEP 6: Final Steps!!!

Tolex your box if you want to... I used carpet glue and it works perfectly (and is wayyy cheaper and more readily available than the "tolex glue" crap they sell on the internets). Cover the back evenly first, lay the box down and clamp. Give it a good night's rest, and do the sides the next day. 

When you're done with that, attach the metal wings drilling holes to take the plexiglass in to account. I embedded bolts into one side of the box so I could remove the plexiglass for servicing. 

When you have everything done, peel off that brown protective covering and enjoy!!

STEP 7: WHAT ABOUT CODE?

Oh, that's right. Code would be helpful right? Well, I'm still trying to develop my own based on the adafruit test code. I'm working closely with the developer of PixelController (an open source array controller) to create something to work with my specific LEDs, and I should have my code up soon :D.

If there are any master coders out there that want to help, I'd be greatly appreciative!!!

Update (4/22/12):
I'm now using adafruit's Adavision code and it's working pretty well.
I've been working all weekend on this stupid thing, only to figure out that my pixels are GRB, not RGB (meaning the colors are switched. I'm trying to figure out how to fix this at the most fundamental level possible. If anyone has any suggestions, I'd appreciate it greatly!

10 Comments

so nice project.... ! can you upload the codes?? please..

First off, nice work. Second, and this is pretty basic: Do you know the part number or description for the addressable LEDs you purchased? I'm thinking of building a similar setup.
Once you get one morticed board made, you can crank out the rest rapidly using that as a pattern.

I looked on your site. I could not find any code on adavision site. With video update data rates, there's gotta be hardware somewhere that's doing all this high-speed data transfer and order rearrangement. In my case, I have 4 parallel chains of LEDs to drive, and the "order tables" for each chain is different. So I have to look up from 4 tables, fetch 4 separate RGB drives, split the bits up, and "quarter turn", re-arrange the bits, and output them "in time". The MotionDrape LEDS use 5 bits per color. The protocol is weird, apparently synchronizing on a clock. There must be dead time between the data changes and the clock on both sides (I have no documentation for the protocol, so I have to go on what the MotionDrape box sends). I am not streaming video. I am "calculating" images, such as scrolling text and logos, and other "eye candy" effects such as sparkling and "wiping". I am interested in your protocol and exactly how the streaming video gets to the LED panel. (How does your "order table" influence the output?) . How is the video digitized and input? I know of no small processor that can handle directly video data rates. What is the clock speed to the LEDs? (MotionDrape uses 1MHz. I am using 300KHz (I am maxing out my 6MHz processor). I am using no hardware other than I/O ports, a UART, and a timer for periodic interrupts. The PC only serves to send commands to the processor, such as: "draw logo #5 with lower left corner at 3,4. Set wipe speed from top, bottom, left, right. Set wipe color. Do wipe..." etc. There is only a 1200 baud link from the PC to the processor.
Hello,
My name is Anthony and I have lighting company making LED light panels.
but I'm not good in electronic and i want to learn something. like this project you made PixelLux- A 64 Pixel RGB LED Video Screen.
but I don't have any idea about Arduino and RGB led pixel controller , I know to much about LED and RGB led . so please if you can help to start learning step by step how to make it I will be thankful. especialy about how can I controle the pixels or how I can write whatever I want on this board.
I like to send you pictures about what I do .

thank
Anthony
How close are you on getting the code to work with these pixels? And would it be possible to see what you have in the way of code so far?
I'm currently making a project very similar to this one, however I'm using These pixels from adafruit http://www.adafruit.com/products/322 , and I was wondering how much modification this code would need to use them.
Hey! thanks for looking at my project! I suggest you look here: http://ladyada.net/make/adavision/index.html
this code is literally MADE for your pixels! Just make sure you have the ws2801 chip, and all will be great.
When making the lattice board, I would have morticed the joints where the horizontals and verticals cross. This would have been easy for you to do as you have a table saw.

What does the digital protocol look like? I did something similar, except I bought a Chauvet "MotionDrape" for $500 each (2 x 3 meter black cloth with 16 x 11 RGB LEDS/circuit boards wired together). I bought 4 of them, and stripped 3 to make one with 31 x 21 LEDs. I reverse engineered the protocol, and wrote a program to talk to 4 busses at once. I am still writing code for use at trade shows, to draw letters, scroll, "wipe", draw logos, etc. The protocol on the drape involves a clock and data line for each set of 176 LEDs. If you tell me what the protocol is, I can give you recommendations how to structure the code.

I write my software in assembly, to get speed. I am presently using a 6 MHz 65816 processor, because it can address 64 meg x 8, to allow space for custom logos. With carefully optimized code, I update the drape in 50 milliseconds.
Mortising would've helped make it a little cleaner, but, because I made two boards, it would've taken way too much time.

Right now I'm working with a few different types of code... I think I'll end up working off of adafruit's "Adavision" code (seen here: http://ladyada.net/make/adavision/index.html). It's pretty cool, and implementing it with Michu's PixelController would be pretty easy.

I commend you for writing in assembly!! I'd love to see a video or picture of your project, it sounds amazing! I actually looked into buying a MotionDrape... but I didn't because I wanted a more DIY solution.
post video!!! how quickly addressable are the individual LEDs? what would be the refresh rate of the screen?
I'll upload a video tonight! According to the LED data sheet, the refresh rate of the WS2801 chip is 2.5KHz.. The data sheet can be found here: http://www.adafruit.com/datasheets/WS2801.pdf