Instructables

Lampduino - an 8x8 RGB Floor Lamp

FeaturedContest Winner
Picture of Lampduino - an 8x8 RGB Floor Lamp
8x8testing.jpg
spaceinvaders.jpg
tetris.jpg
Lampduino is a computer-controlled free-standing floor lamp, comprised of an 8x8 RGB LED matrix. The lamp stands 45" high and 18" wide.  Light emanates from both sides.  It has various display modes, as well as an included editor for creating animations.  The lamp is controlled via an application running on a PC host.  The display modes include realtime drawing, playback of previously created animations, snow, meteor, plasma, and synchronization with music.  With its endless available colors, Lampduino can also be used for color therapy, or as a mood light.  When running standalone, without a computer, it plays a soothing plasma simulation..

NOTE:  Any flickering in the videos below is caused by video camera aliasing.  Persistence of vision makes it look flicker-free by the naked eye.



 
 
Remove these adsRemove these ads by Signing Up

Step 1: Bill of Materials

Parts List

(64) 5mm common anode RGB LED's. I bought mine on eBay
(1) ITead Studio Colorduino or an Arduino with Itead Studio Colors Shield
(
1) large piece of foamcore board.  This kind of board can be found in most office or artist supply shops.  It is a foam core sandwiched between two sheets of thick paper.  I recycled a 45x30" piece that had a previous life as an advertising poster.
(2) 18x18" pieces of matte drafting film.  I cut them out of a single 24x36" sheet of .003" thick Grafix 2-sided matte drafting film.
lots of 30AWG kynar-insulated wrapping wire. I bought 3 50 feet rolls at Radio Shack, one each of red/white/blue. 150 feet is overkill, but it's a lot easier to work with different colors of wire.
(2) 16-pin male headers
(1) 5V 1A power supply.  I repurposed a wall wart from a broken gadget.

For music synchronization, a few additional parts are needed.  See the Music Synchronization step.


Tools

x-acto knife
hot glue gun
wire stripping/wrapping tool
straight edge
ruler
GraspGG made it!9 days ago
You needn't be super precise

Unfortunately with this material it doesn't work like that ... 2mm cutting rabbets/slits with 3mm material thickness isn't a helpful combination ;) A dremel has to be used to widen all 96 slits.

066.JPG
lincomatic (author)  GraspGG9 days ago

Since you're using dibond, won't the aluminum short out the LEDs when you press them into the slits? I guess you have to cut wider slits, insulate the wires, and then hot glue the LEDs in.

I'm going a different way, cause of 140° angle diffuse leds... On the backside a plate will be mounted, holding all leds which are facing toward the front. Right now the soldering part has to be finished, which will take "some" time ;)

I will keep you informed!

Btw.: Thanks alot for this great guide, lincomatic!

GraspGG made it!9 days ago

Dibond (3mm) is used instead of foam ... more than once i was thinking about stopping and using foam like lincomatic did ... ;)

050C.jpg049.JPG051.JPG057.JPG
lincomatic (author)  GraspGG9 days ago

You, my friend, have incredible patience! Looking forward to seeing the completed build!

GraspGG made it!9 days ago

Hopefully i don't have to take it apart again, cause the connections are very tight/strong (2mm slits / 3mm material) Much ironing left to do ...

089C.jpg
GraspGG made it!9 days ago

Nearly 20m cuttings with circular saw (cause of the dibond material used) had to be made.

057.JPG058.JPG059.JPG062.JPG065C.jpg069.JPG071.JPG076.JPG078.JPG077.JPG080.JPG
mmdonaher13 days ago

I finalllly finished wiring and building everything and testing my LEDs and power supply today. I was planning to power the array from the screw terminals, but when I went to attach the power supply I realized the colorduino I was sent did not have a switch to slide between "header" and 'terminal" power sources. I was able to find a picture of both (so clearly they manufacture it both ways?) and have included it below. The one on the left is what every tutorial seems to depict and somehow I ended up with one like the righthand picture. I was curious what to do in this situation- will powering it through the terminals without the switch in place cause a problem to my the Colorduino or my LEDs?

colorduino.jpg

I heard back from iTead and their reply is below:

"We
have soldered 0R resistors on that position of the switch. You can add 9V
or other power supply on VIN pin."

I powered my array with 6V 1A through the screw terminals and it works perfectly.

The image quality on this is miserable (sorry!) but since this was a gift for someone, I don't have it around to take a better picture of. I'm happy with how it turned out. Used a Lexan enclosure for the array, with black foam board instead of white, and vellum sheets inside to diffuse the light I used black glossy spray paint on the bottom 2.5" to hide the wires/colorduino/usbtinyisp programmer.

plasma.jpg
chrwei2 months ago

just FYI, the itead product links no longer work

kd7eir1 year ago
I can load the colorduino slave sketch to the colorduino, but rgbmtx says that there is no device found.

Any suggestions?
kd7eir kd7eir1 year ago
I discovered the source of my communications error! When RGBmtx is launched it was resetting the serial port connection to the Colorduino, causing it to not see the Colorduino.

Instead of plugging my programmer directly into the Colorduino, I used female to female cables and connected GND, VCC, RXD, and TXD. I did NOT connect DTR. By not connecting DTR, I prevented the serial port reset from affecting the Colorduino, and RGBmtx was able to see it!
Mal3D kd7eir2 months ago

Thanks! That fixed my problem, too! :)

kd7eir Mal3D2 months ago

Glad to help!

Mal3D2 months ago

Still new to the whole Arduino, Colorduino thingy, but thanks to you, I am able to use the RGBmtx to create some animations that work on the Colorduino! I used the animation code from Adafruit to do another Space Invader animation, but I don't know where to send it to you. Thanks!!!

lincomatic (author)  Mal3D2 months ago
cool! send me a pm and i'll tell you where to send it.
fcohen13 months ago
Hey, Congrats for the great idea!
I´m building mine and would like to know if there are any changes if I use a 24awg wire instead of the 30awg one...
Thanks!
Cra7y3 months ago
Will this work with an arduino UNO rather than Duemilanove?
lincomatic (author)  Cra7y3 months ago
yes
MJ9907 months ago
I have a problem with rgbmtx. I connected Colorduino, and the matrix of LEDs, to the PC via Arduino Duemilanove (without microcontroller). However, when using rgbmtx, there is a random delay in the display of frames. it is as if some frames were skipped, as during the animation LEDs rx-tx arduino blink correctly but the frame does not show all on the matrix. anyone have any ideas as to the reason for this? thanks
rubeke474710 months ago
I just love this project and I really want to make one as a coffee table like in the picure I found on google. But there is one problem i would like to solve. In you instructions you said that if its not connected to the computer it can only display the plasma program because the memory is to small to hold other sketches. Now is my question if there is any way to increase the memory ? A external memory I can connect to it or something like that ? I've been searching on google without succes. It would be a shame if I had to connect my coffee table to my pc just to put something else on there then the plasma or to make it react to music. Thanks
tisch01.jpg
I was wondering, did you take that picture or did you get from google?
Did you read my post ? Apparently not. It is in the first sentence.
I sort of skimmed through it I wasn't really awake yet
Would the microSD breakout board be an option ? How would I connect this and program it to make it work ?
lincomatic (author)  rubeke474710 months ago
Yes, you need to store the animations in files on the SD card, instead of feeding them via the serial link
oke thansk I'll give that a try
nerd74737 months ago
really cool lincomatic
sansari27117 months ago
I'm having some trouble getting RGBMtx to recognize the device. I have the Colorduino connected via USBTinyISP and the ColorduinoSlave sketch is uploaded (the plasma works, but only if the USB is plugged in as well). Any tips to get RGBMtx to recognize?
zclingaman8 months ago
What resistor did you use? It looks like you have a large one hooked up to your Colorduino.
lincomatic (author)  zclingaman8 months ago
I didn't use any large resistors. The current limiting is all done on the board.
max608109 months ago
me podrías ayudar como hacer un texto en colorduino hasta ahora solo he logrado poner letra por letra pero es mucho el espacio entre ellas, es asi.
for(j = -7;j < 7;j++)
{
DispShowChar('u',255,255,255,j);
delay(i);
}
for(j = -7;j < 7;j++)
{
DispShowChar('d',255,255,255,j);
delay(i);
}
for(j = -7;j < 7;j++)
{
DispShowChar('i',255,255,255,j);
delay(i);
}
asi se pone letra por letra pero quisiera meter una palabra completa como hacerle te lo agradecería mucho.
zclingaman9 months ago
Also, what USB adapter/parts do I need in order to connect to my computer?
zclingaman9 months ago
What parts did you use to power the Colorduino? Can you post a link to the power supply and power adapter you used? I am buying all the parts for this project
Hey Lincomatic, thanks a lot for this tutorial. I followed all the construction aspects, but for software I designed all of my own. I used the Rainbowduino V3 which has a built in USB and I feel is much easier to work with, and I didn't have any kind of programmer. Since I wanted it to play frames even when it's not connected to a computer, I designed my own GUI kind of like RGBmtx (Mine has some better features: play mode, ability to have any color, etc). I also hooked up an SD card reader to my Arduino, and I'm sending all the info over i2c. It's all really straightforward, I am a total amateur at electronics and programming and this is my first project I've spent any significant amount of time on and I'd like to share it with people. I'd be happy to make an Instructable showing people how to do all this but I want to make sure you're okay with that first. I would give you credit and direct people to your tutorial for steps 1-14, and then I'd walk them through the connections and how to setup the software for my method. Let me know if that's okay, thanks.

Here's a picture of the GUI by the way: http://imgur.com/syhIxqs
(you can tell where by the scroll bar is at in the Processing window that I put a lot of time into this ;D)
lincomatic (author)  Sovereignty3149 months ago
Sounds really cool! By all means, post an instructable.
dvon wichard10 months ago
Hi !

I'm trying to upload colorduinoSlave.pde with the version of colorduino library (v124) but I get the following errors :

ColorduinoSlave:164: error: conflicting declaration 'typedef struct ColorRGB ColorRGB'
/Users/emilien/Desktop/Arduino.app/Contents/Resources/Java/libraries/Colorduino/ColorTools.h:38: error: 'ColorRGB' has a previous declaration as 'typedef struct ColorRGB ColorRGB'
ColorduinoSlave:172: error: conflicting declaration 'typedef struct ColorHSV ColorHSV'
/Users/emilien/Desktop/Arduino.app/Contents/Resources/Java/libraries/Colorduino/ColorTools.h:44: error: 'ColorHSV' has a previous declaration as 'typedef struct ColorHSV ColorHSV'
ColorduinoSlave.pde: In function 'void ColorFill(unsigned char, unsigned char, unsigned char)':
ColorduinoSlave:281: error: 'PixelRGB' was not declared in this scope
ColorduinoSlave:281: error: 'p' was not declared in this scope
ColorduinoSlave.pde: In function 'void unpackFrame(byte*, byte)':
ColorduinoSlave:303: error: 'PixelRGB' was not declared in this scope
ColorduinoSlave:303: error: 'p' was not declared in this scope

Could you help to figure this out ?
dvon wichard10 months ago
I was having the error and I get an answer from an Itead engineer.

"First of all, your connection isn't quite right, you should connect them like this: TX->RXD; RX->TXD.
And you need to choose the "arduino duemilanove w/atmega328" as your board type."

And now it's working for me, I hope it will for you !
jonspring10 months ago
When I used an FTDI cable, I got an "stk500_recv(): programmer is not responding" error message in the Arduino IDE until I also connected the DTR pin on the FDTI cable to the DTR pin on the colorduino. That syncs the reset and allowed the upload to work.
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!