Let There Be Light (emitting diodes)!
Signs & Decorations, Videos March 3rd, 2008CAUTION…LONG (but cool?) POST WARNING!
I mentioned on my birthday (2/26) that my wife got me a cool project to work on. While it’s not 100% done, I have enough done to talk about it. I’m glad, because I’ve been dying to write about this!
Here’s what I got:
It’s an LED pegboard sign project from EvilMadScientist.com. It’s basically a much cooler version of light bright. Get your kit here! It’s designed to be highly “hackable”. It has a microcontroller that you can reprogram if you have the hardware and software for it (which they explain on their site). Supposedly the way it’s designed, it’s possible (if you reprogram it) to do simple animation by turning entire rows on and off as you see fit. It’s not possible, however, to address individual LEDs separately.
How did my wife know I would love this? Maybe she’s psychic! OR….maybe I told her to buy it for me.
I never do that, but this was too cool and I needed it badly so I dropped a hint for this one well in advance.
She got me pink, blue, and green 10mm LEDs from the same place that sold the circuit board kit. She also got me red and yellow LEDs from this place. After following the instructions (which were pretty simple), I had the board wired up and ready for LEDs. I stuck a couple of each color in to see what they would look like:
They are pretty hard to get a good picture of, and they look much better in person (just like me).
I had a lot of design ideas in mind, and it took me forever to decide what to put on the sign. I settled on this, which I mocked up in Photoshop:
If you need it, here’s the layered Photoshop file you can use to make your mockup.
Here’s a still of it lit up:
It looks better from further away, but the picture wouldn’t come out from a distance. If you like, get up out of your chair and step back about 30 feet from your monitor to get the full effect. (OMG! You’re doing it aren’t you!? HAH!).
The yellow is brighter in person…like I said - it’s ridiculously hard to photograph. I ended up having to order more blue LEDs, and some white ones which I got here. The white LEDs came in today and I soldered them all in. I’m not happy with the result. They blend in too much with the blue and don’t stand out enough. I’ve decided to remove them so the sign will end up looking like the image above with one small twist which is best demonstrated in this short video:
Now, I know what your thinking…you can’t reprogram it to make individual LEDs do your bidding. How did I do that then, your asking yourself? I’ll tell you if you promise to keep it a secret.
First, some honesty here. I didn’t actually reprogram the microcontroller yet. I plan on doing so when the USBTinyISP controller kit arrives that I ordered. What you are seeing is a complete sham, and I feel pretty bad about tricking you like this. My wife is pushing this microswitch button on and off in the darkness while I’m working the camera:
Here’s the logic behind this. The microcontroller on the board is setup to scan through all the rows on the board, turning them on and off in succession. Only one row is ever lit at any given time, but because it happens so fast your eyes see what look like a still image containing multiple rows of lights. It’s possible to rewrite the code to turn the rows on longer, shorter, in any order you want, to the beat of Michael Jackson’s Thriller, etc…
So, I figured you could just hack the board and wire the lights that I want to change via 30AWG wire jumpers to 2 unused rows. Then, I should be able to program those “unused” rows to control my animation. Here’s the rat’s nest on the back of the board that I managed to accomplish this with:
Only the last 2 rows of LEDs on the ghost image change. I started by removing the 2 resistors on the left side of the board that are connected to the two bottom rows of blue LEDs so those 2 rows were completely off when the sign was turned on.
Then, I made this image in Photoshop to help me keep track of which LEDs were lit when:
I made it by turning one of the sprite images yellow, and blending it on top of the other blue one to make green where they overlap. Green pixels are on in both frames. Blue are on in the first frame, and yellow in the second. I connected all the “green” pixel LEDs to the row directly above. Then, I wired frame 1 LEDs to the first empty row below the ghost (row #16), and frame 2 LEDs to the second (row #17). I had to cut traces on the back of the board to keep only the LEDs I wanted wired to the rows I was working with. It was pretty tricky but I got it by trial and error.
In order to test the wiring, I pulled one leg of each of the resistors feeding rows 16 and 17 out of the board, and soldered temporary wires to them:
I soldered two more wires to the pads that those legs belonged in. The two resistor ends then connected to common (ground) on the microswitch. One pad was then soldered to the NO (normally open) terminal, and the other to the NC (normally closed) terminal on the microswitch. This allows one row to be connected when you push the button, and the opposite row to be connected when you release it - alternating the rows.
My USBTinyISP programmer kit should be here in a few days. When I get it animated (without the wife behind the curtain clicking that button), I’ll post the source code in case you want to make one for yerself.








March 7th, 2008 at 2:20 pm
That’s awesome! Jumping the individual LED’s to the unused rows was pretty slick thinking. I just may have to get one of those.
March 7th, 2008 at 3:55 pm
Thanks! I have my programmer kit together, and was trying until 2am last night to get it to work with no luck so far. I’m going to bang away at it some more tonight.
March 7th, 2008 at 6:37 pm
[…] my USBTinyISP AVR programmer kit from LadyAda.net / AdaFruit.com to program the AVR chip in the LED sign I’ve been working on. Here’s what I […]