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 ads by
Signing UpStep 1: Bill of Materials
(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
























































Visit Our Store »
Go Pro Today »




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 ?
"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 !
thanks!
But is there a way to use music mode in standalone mode (without a computer) ?
Is it possible ?
Hey lincomatic
I finally managed to get this going yesterday after revisiting your project and reading the comments about changing the #define SERIAL_BUFFER_SIZE to 128 if using V1.x of Arduino. That didnt work, however, compiling in arduino-0023 did so that made me smile! Now my table can do more things than the plasma mode! :-)
I still have a bit of a problem though and hope you might be able to help.
I have everything connected and seemingly working well except for a crashing when playing back the frames from RGBmtx.
For example, when playing back the music.bmp the board and the RGBmtx freeze at frame 81. others i have created also freeze around 80, in my case it was 83. Is there something i am doing wrong or perhaps something you can help me try to get it past that mark?
I would guess at some sort of memory limit/leak but have no idea where to start?! All the best,
Rad
Also, do you know of a limit there might be on the amount of frames?
As for the Error, im getting:
"An OutOfMemoryError means that your code is either using up too much memory
because of a bug (e.g. creating an array that's too large, or unintentionally
loading thousands of images), or that your sketch may need more memory to run.
If your sketch uses a lot of memory (for instance if it loads a lot of data files)
you can increase the memory available to your sketch using the Preferences window.
Exception in thread "Animation Thread" java.lang.OutOfMemoryError: Java heap space
at processing.core.PGraphics2D.allocate(Unknown Source)
at processing.core.PGraphics.setSize(Unknown Source)
at processing.core.PApplet.makeGraphics(Unknown Source)
at processing.core.PApplet.createGraphics(Unknown Source)
at RGBmtx$Frame.draw_canvas(RGBmtx.java:1254)
at RGBmtx$Frame.draw_full(RGBmtx.java:1244)
at RGBmtx$Matrix.current_frame_image(RGBmtx.java:1634)
at RGBmtx$Matrix.current_frame_image(RGBmtx.java:1630)
at RGBmtx.draw(RGBmtx.java:205)
at processing.core.PApplet.handleDraw(Unknown Source)
at processing.core.PApplet.run(Unknown Source)
at java.lang.Thread.run(Thread.java:662)"
With that, I increased the "Maximum Available Memory" in preferences of Processing to 512mb and its resolved it.
Do you have yours set higher than the default too? Im guessing i will run into this issue again if the image sequence in RGBmtxis made longer?
you will see this in this images
Arduino RX -> Colorduino RX
Arduino TX -> Colorduino TX
Arduino Reset -> Colorduino DTR
Arduino 5V -> Colorduino VDD
Arduino GND -> Colorduino GND
Also, make sure that you have done the following:
The serial buffer has been decreased to 64 bytes, which is too small for RGBmtx to properly communicate with my ColorduinoSlave sketch. RGBmtx will just freeze up your Colorduino, and not work correctly.
To fix it, you must exit the Arduino 1.x IDE and edit modify hardware\arduino\cores\arduino\HardwareSerial.cpp.
Look for the line
#define SERIAL_BUFFER_SIZE 64
and change it to
#define SERIAL_BUFFER_SIZE 128
Then restart Arduino 1.x and re-upload the ColorduinoSlave.pde sketch to your Colorduino.
Any suggestions?
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!
I haven't had a chance to integrate it into my latest version yet.
I have updated step 18. http://www.instructables.com/id/Lampduino-an-8x8-RGB-Floor-Lamp/#step18
See the section "WARNING FOR THOSE USING ARDUINO 1.X"
Thanks to AtkoBaka for discovering the fix.
Also, I have updated the Instructable with pinouts for connecting to an FTDI cable.
1) Can i switch modes with buttons or a controller instead of a laptop? (can i switch between cool animations and just collour fading or 1 hard collour?)
2) Is the part list still up to date? since i'm a noob in electronic's i'm not quite shure what i'm buing XD
3) The leds ur using, what cmd are they?
4) this thing is so awsome :D
I am having the same issue with getting Processing and RGBmtx to communicate with my colorduino. I have the colorduino connected to the computer with the Foca FT232RL that itead sells for the colorduino.
I changed the ping command as you recommended, and I got a white fill when I opened RGBmtx. Other than the plasma mode, I can not get anything else to happen with RGBmtx.
"To see if the Colorduino is receiving the ping() command properly, replace the ping code readProcessPacket() in ColorduinoSlave.pde with this:
case OPC_PING:
curMode = CMODE_COLOR_FILL;
ColorFill(255,255,255);
// NOP
break;
Then if it's receiving ping() properly, you should see the whole matrix light up white. Then we'll know that the problem is in sending the response back to the host."
That is what I am referring to.
I'm nearly finished with this project, but I was wondering if you put current limiting resistors anywhere in this circuit?
Thanks!
Cheers Kev
There was another user who hit the reset switch before launching Processing to fix his problem, but in his case, RGBmtx seemed not to detect his board, which is not your case.
Try downloading downloading and installing Processing. Then download and unzip RGBmtxsrcV1.1..zip into your processing sketch folder. Start Processing and load RGBmtx.pde into it (see my instructions in my response to roncobra if you run into problems). Once you get it running, exit Processing, download ColorduinoDeviceDbg.zip and replace the existing ColorduinoDevice.pde with the version in the ColorduinoDeviceDbg.zip.
Restart Processing and load in RGBmtx.pde. Now, you should see messages in the bottom pane of the Processing UI such as cE=0, etc. Let me know what you see, and maybe I can figure out what's wrong.
I have a similar setup as kevin (MacBook Pro OS X 10.7.3 - Uno connected to the Colorduino). I had quite a few problems getting RGBmtx to start. RXTX Library mismatch between arduino and Processing. I also had to lower the baud rate to 19200 and enable the delay(100) in openPort ().
Now RGBmtx starts up fine, finds my serial port but doesn't do anything.
Scanning ports for Colorduino
Stable Library
=========================================
Native lib Version = RXTX-2.1-7
Java lib Version = RXTX-2.1-7
cE=-16pingrc=-16Found a Colorduino on: /dev/tty.usbmodemfa131
cE=13cE=13
cE=13 probably means that the communication is not working. Any ideas how to get it to work?
Yours Jan
I don't understand what you mean ty RXTX library mismatch between arduino and Processing. There is no shared code between Arduino and Processing.
"WARNING: RXTX Version mismatch
Jar version = RXTX-2.2pre1
native lib Version = RXTX-2.2pre2"
Processing has one, Arduino the other it seems. After copying the one from aruino to Processing it worked again.
Stable Library
=========================================
Native lib Version = RXTX-2.1-7
Java lib Version = RXTX-2.1-7
cE=-2pingrc=-2Found a Colorduino on: /dev/tty.usbmodemfa131
cE=13wf=2cE=13