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 »




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
I'm starting to think the only way to figure out what's going on is for someone to send me an UNO to debug with.
Scanning ports for Colorduino
WARNING: RXTX Version mismatch
Jar version = RXTX-2.2pre1
native lib Version = RXTX-2.2pre2
cE=0pingrc=0Found a Colorduino on: COM1
cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0cE=0Start Writing Matrix - Done
got the matrix write bit from trying to save a frame to the colorduino - display still just freezes the plasma mode on it when I try anythigng but plasma mode. I notcied the code in the debug window just says cE=0 on everything mode I try and fyi I still can see the rx an tx lights flashing on the uno in snow mode etc
Look fwd to your reply
Cheers Kev
So in record mode, the matrix doesn't update in realtime when you edit the matrix? Snow and Meteor do nothing? And it never returns cE=anything other than 0?
If so, I don't get why the matrix isn't updating except in plasma.
Just wondering if I now go for a colorduino are you confident it will work with that and its not down to the Uno ???
Cheers again Kev
Sorry for the delay in replying.. I've been quite busy. I am really stumped as to what's going on.. the fact that the plasma works indicates the that colors shield is functioning properly. The cE=0 indicates that the communication is working properly ... so what's wrong? I would expect that if the Uno were the culprit, that the communications would have errors. And if the colors shield were the culprit, the plasma would fail. When you put it in snow or meteor mode, do you get a continuous stream of cE=0 messages?
Cheers Kev
case OPC_PLAY_FRAME: // incoming frame
// curMode = CMODE_PLAY_FRAME;
if (curMode == CMODE_PLAY_FRAME) {
if (packetBuf[1] == PACKED_FRAME_LEN) {
unpackFrame(packetBuf + 2);
curError = 0;
change the last 2 lines so they look like this:
case OPC_PLAY_FRAME: // incoming frame
// curMode = CMODE_PLAY_FRAME;
if (curMode == CMODE_PLAY_FRAME) {
if (packetBuf[1] == PACKED_FRAME_LEN) {
unpackFrame(packetBuf + 2,1);
curError = 0xbd;
upload the updated sketch to your Arduino and restart RGBmtx.
now, you should see cE=-67 coming out randomly when moving the cursor in RGBmtx. When you are in snow mode, there should be a continous strea of cE=-67. Let me know the result.. I'm trying to see if the frames are getting received properly.
Sorry for my delay in replying this time my turn to have been ttied up at work!! anyway changed the code as you said and I still get cE=0 when moving the cursor and a constant string of cE-0 in snowmode - over to you!!
Cheers Kev
replace readProcessPacket() in ColorduinoSlave.pde with the one below, upload it to your Colorduino, and run the debug Processing sketch, and let me know what cE=xx numbers you get when you try to run snow mode.
// check for a packet from the host and process it
void readProcessPacket()
{
//
// fetch a data packet from host
//
int bytesRead = readPacket(packetBuf);
if (bytesRead) {
//Serial.write(bytesRead);
if (bytesRead > 0) { // process packet
switch(packetBuf[0]) {
case OPC_PING:
// NOP
curError = 10;
break;
case OPC_PLAY_FRAME: // incoming frame
// curMode = CMODE_PLAY_FRAME;
if (curMode == CMODE_PLAY_FRAME) {
if (packetBuf[1] == PACKED_FRAME_LEN) {
unpackFrame(packetBuf + 2,1);
curError = 11;
}
else {
curError = 1; // bad data length
}
}
break;
case OPC_QUEUE_FRAME: // incoming frame
if (packetBuf[1] == PACKED_FRAME_LEN) {
if (!packedFrameQueue.addFrame(packetBuf + 2)) {
//success
curError = 12;
}
else {
curError = 1; // bad frame
}
if ((curMode == CMODE_MUSIC_SYNC) && packedFrameQueue.isFull()) {
return;
}
}
else {
curError = 1; // bad data length
}
break;
case OPC_SET_MODE:
if (!setMode(packetBuf[2])) {
curError = 13;
}
else {
curError = 1; // unknown mode
}
break;
case OPC_FILL:
if (curMode == CMODE_FILL) {
ColorFill(packetBuf[2],packetBuf[3],packetBuf[4]);
curError = 14;
}
break;
default:
// unknown opcode
; // fall though
}
}
Serial.write(curError); // send current error code to host
}
}
Sorry for delay man been snowed under at work again!!!
anywayI now get cE=13 all time in any mode, and as before display freezes unless in plasma mode.
Look forward to your reply
Kev
pkt[idx++] = (current_mode == mode_music) ? OPC_QUEUE_FRAME : OPC_PLAY_FRAME; // frame opcode
add the following line after it:
print("wf=");print(pkd[idx-1]);
and let me know what you see in the Processing console.
This is what I get in snow mode - just a cut and paste from processing and it just keep repeating
cE=13wf=2cE=13wf=2cE=13wf=2cE=13wf=2cE=13wf=2cE=13wf=2cE=13wf=2cE=13wf=2cE=13wf=2cE=13wf=2cE=13wf=2cE=13wf=2cE=13wf=2cE=13wf=2cE=13
Cheers Kev
globo is getting the same thing.
I don't understand. I send a play frame command and it receives a set mode command. Must be something strange with the UNO corrupting the data.
I'm not sure I can figure this out unless someone sends me an UNO to debug.
I'll think about it some more this weekend and see if I can think of some other tests to do.
Kev
Cheers Kev
Cheers Kev
Do you want shot of the messages it brings up ?
I believe they changes the software serial interface in 1.0, in particular I noticed that the packet buffer has been reduced to 64 from 128, but since it works with 0023 I haven't debugged it any further, it was far simpler to keep an older compiler around ;)
My Colorduino uses a AtMEGA 168, and I can't even get it to run with SERIAL_BUFFER_SIZE = 128. I think I'm running out of memory!
I'm sticking with Arduino 0022
I thought it would be easy to fit the entire frameset in to the ArduinoMEGA 1280's 128K of flash using a large array in PROGMEM. I was wrong. Apparently there is a 32k limit of some sort on array sizes (includes structure overhead, so you have < 32k maximum in each array). I wrote some code that allows you to split up the data into several arrays and access them programatically using an iliffe vector (array holds pointers to memory locations of the other arrays). Let me know if you are interested in the code and I can put it somewhere.
Anyways all 172 frames, array code and Colorduino code compiles to 35240 bytes, so it's still too large for the ATMega328 :( I guess the maximum number of frames that can be stored on the ATMega328 is probably around 150 or so?
Converting the BMP to a raw data structure needed some thinking and perl script magic because of the way the file is actually laid out (would be easier if the file was just one long image with frames starting at every 8th pixel column :) but the frames are laid out X then Y.
Converting to raw bits is easy with NetPBM "bmptopnm < music.bmp | pnmtoplainpnm > music.pnm" (see: http://netpbm.sourceforge.net/doc/ppm.html). But, making that into a set of arrays took some thought: read in the file, lay out the file in memory then read out each frame, and then output the frames into a set of arrays. The up side is that I can now convert any BMP or image into an array that can be used in the firmware. My perl script is horrible, it puts one image per array (size 192) but if you want to save the most flash, you can combine the arrays and hold music.bmp in to two equally sized arrays of 16512 in size. Let me know if you are interested in the horrible perl script.
Cheers!
print("wf=");print(pkt[idx-1]);
right?
Scanning ports for Colorduino
WARNING: RXTX Version mismatch
Jar version = RXTX-2.2pre1
native lib Version = RXTX-2.2pre2
pingrc=-1No Colorduino on: COM3
cE=-2pingrc=-2Found a Colorduino on: COM5
And after this nothing else appears as I change modes etc. Incidentally if I close MTX and restart it, it wont find the colorduino until I unplug it and reconnect
Cheers Kev
Do you want to email me rather than put it on here?
newdos@btinternet.com
button:326: error: stray '#' in program
Frame:219: error: stray '#' in program
FrameChooser:6: error: stray '#' in program
FrameChooser:6: error: stray '#' in program
GuiElement:55: error: stray '#' in program
GuiElement:55: error: stray '#' in program
GuiElement:60: error: stray '#' in program
RGBmtx:10: error: expected unqualified-id before 'public'
RGBmtx:15: error: 'PFont' does not name a type
RGBmtx:16: error: 'PFont' does not name a type
RGBmtx:18: error: 'Matrix' does not name a type
RGBmtx:19: error: 'Device' does not name a type
RGBmtx:56: error: expected constructor, destructor, or type conversion before 'buttons'
RGBmtx.cpp: In function 'void setup()':
RGBmtx:63: error: 'frame' was not declared in this scope
RGBmtx:63: error: 'getToolkit' was not declared in this scope
RGBmtx:66: error: 'matrix' was not declared in this scope
RGBmtx:66: error: expected type-specifier before 'Matrix'
WARNING: RXTX Version mismatch
Jar version = RXTX-2.2pre1
native lib Version = RXTX-2.2pre2
No Colorduino found!
RGBmtx is not "seeing" the Colorduino. It had been seeing it before but not any longer.
Guidance?
As of release 1.0, libraries must be installed in a folder named 'libraries' inside the 'sketchbook' folder." when I run RGBmtx.pde in Processing. I attached a photo of my file tree showing the location of colorpicker.jar. Is this the correct placement?
If I load ColorduinoDevice.pde, I get the following errors when compiling: ColorduinoDevice.pde:-1: error: 'import' does not name a type ColorduinoDevice.pde:-1: error: expected initializer before 'Device'
If I load RGBmtx.pde, I get the following errors when compiling: RGBmtx.pde:-1: error: stray '#' in program RGBmtx.pde:-1: error: stray '#' in program RGBmtx.pde:-1: error: stray '#' in program RGBmtx.pde:-1: error: stray '#' in program RGBmtx.pde:-1: error: stray '#' in program RGBmtx.pde:-1: error: stray '#' in program RGBmtx.pde:-1: error: stray '#' in program RGBmtx.pde:-1: error: stray '#' in program RGBmtx.pde:-1: error: stray '#' in program RGBmtx.pde:-1: error: stray '#' in program RGBmtx.pde:-1: error: stray '#' in program RGBmtx.pde:-1: error: stray '#' in program RGBmtx.pde:-1: error: stray '#' in program RGBmtx.pde:-1: error: stray '#' in program RGBmtx.pde:-1: error: stray '#' in program RGBmtx.pde:-1: error: stray '#' in program RGBmtx.pde:-1: error: stray '#' in program RGBmtx.pde:-1: error: stray '#' in program RGBmtx.pde:-1: error: stray '#' in program RGBmtx.pde:-1: error: expected unqualified-id before 'public' RGBmtx.pde:-1: error: 'PFont' does not name a type RGBmtx.pde:-1: error: 'PFont' does not name a type RGBmtx.pde:-1: error: 'Matrix' does not name a type RGBmtx.pde:-1: error: 'Device' does not name a type RGBmtx.pde:-1: error: expected constructor, destructor, or type conversion before 'buttons' RGBmtx.cpp: In function 'void setup()': RGBmtx.pde:-1: error: 'frame' was not declared in this scope RGBmtx.pde:-1: error: 'getToolkit' was not declared in this scope RGBmtx.pde:-1: error: 'matrix' was not declared in this scope RGBmtx.pde:-1: error: expected type-specifier before 'Matrix' RGBmtx.pde:-1: error: expected `;' before 'Matrix' RGBmtx.pde:-1: error: 'size' was not declared in this scope RGBmtx.pde:-1: error: 'smooth' was not declared in this scope RGBmtx.pde:-1: error: 'noStroke' was not declared in this scope RGBmtx.pde:-1: error: 'fontA' was not declared in this scope RGBmtx.pde:-1: error: 'loadFont' was not declared in this scope RGBmtx.pde:-1: error: 'fontLetter' was not declared in this scope RGBmtx.pde:-1: error: 'frameRate' was not declared in this scope RGBmtx.cpp: In function 'void setup_buttons()': RGBmtx.pde:-1: error: 'buttons' was not declared in this scope RGBmtx.pde:-1: error: expected type-specifier before 'Button' RGBmtx.pde:-1: error: expected `;' before 'Button' RGBmtx.pde:-1: error: 'color' was not declared in this scope RGBmtx.pde:-1: error: expected `;' before 'button_color' RGBmtx.pde:-1: error: expected `;' before 'button_color_over' RGBmtx.pde:-1: error: 'matrix' was not declared in this scope RGBmtx.pde:-1: error: expected type-specifier before 'RectButton' RGBmtx.pde:-1: error: expected `;' before 'RectButton' RGBmtx.pde:-1: error: 'matrix' was not declared in this scope RGBmtx.pde:-1: error: expected type-specifier before 'RectButton' RGBmtx.pde:-1: error: expected `;' before 'RectButton' RGBmtx.pde:-1: error: expected type-specifier before 'SquareButton' RGBmtx.pde:-1: error: expected `;' before 'SquareButton' RGBmtx.pde:-1: error: 'matrix' was not declared in this scope RGBmtx.pde:-1: error: expected type-specifier before 'ModeButton' RGBmtx.pde:-1: error: expected `;' before 'ModeButton' RGBmtx.pde:-1: error: expected type-specifier before 'ActionToggleButton' RGBmtx.pde:-1: error: expected `;' before 'ActionToggleButton' RGBmtx.pde:-1: error: 'device' was not declared in this scope RGBmtx.pde:-1: error: expected `)' before 'instanceof' RGBmtx.pde:-1: error: expected `)' before ';' token RGBmtx.pde:-1: error: expected type-specifier before 'FrameChooser' RGBmtx.pde:-1: error: expected `;' before 'FrameChooser' RGBmtx.pde:-1: error: expected type-specifier before 'TextElement' RGBmtx.pde:-1: error: expected `;' before 'TextElement' RGBmtx.pde:-1: error: expected type-specifier before 'ActionButton' RGBmtx.pde:-1: error: expected `;' before 'ActionButton' RGBmtx.pde:-1: error: expected type-specifier before 'TextElement' RGBmtx.pde:-1: error: expected `;' before 'TextElement' RGBmtx.pde:-1: error: expected type-specifier before 'ActionButton' RGBmtx.pde:-1: error: expected `;' before 'ActionButton' RGBmtx.pde:-1: error: expected type-specifier before 'ActionButton' RGBmtx.pde:-1: error: expected `;' before 'ActionButton' RGBmtx.pde:-1: error: 'device' was not declared in this scope RGBmtx.pde:-1: error: expected `)' before 'instanceof' RGBmtx.pde:-1: error: expected `)' before ';' token RGBmtx.pde:-1: error: expected type-specifier before 'TextElement' RGBmtx.pde:-1: error: expected `;' before 'TextElement' RGBmtx.pde:-1: error: 'PixelColor' was not declared in this scope RGBmtx.pde:-1: error: expected `;' before 'pc' RGBmtx.pde:-1: error: expected type-specifier before 'MiniColorButton' RGBmtx.pde:-1: error: expected `;' before 'MiniColorButton' RGBmtx.pde:-1: error: 'pc' was not declared in this scope RGBmtx.pde:-1: error: expected type-specifier before 'PixelColor' RGBmtx.pde:-1: error: expected `;' before 'PixelColor' RGBmtx.pde:-1: error: expected type-specifier before 'MiniColorButton' RGBmtx.pde:-1: error: expected `;' before 'MiniColorButton' RGBmtx.pde:-1: error: expected type-specifier before 'PixelColor' RGBmtx.pde:-1: error: expected `;' before 'PixelColor' RGBmtx.pde:-1: error: expected type-specifier before 'MiniColorButton' RGBmtx.pde:-1: error: expected `;' before 'MiniColorButton' RGBmtx.pde:-1: error: expected type-specifier before 'PixelColor' RGBmtx.pde:-1: error: expected `;' before 'PixelColor' RGBmtx.pde:-1: error: expected type-specifier before 'MiniColorButton' RGBmtx.pde:-1: error: expected `;' before 'MiniColorButton' RGBmtx.pde:-1: error: expected type-specifier before 'PixelColor' RGBmtx.pde:-1: error: expected `;' before 'PixelColor' RGBmtx.pde:-1: error: expected type-specifier before 'MiniColorButton' RGBmtx.pde:-1: error: expected `;' before 'MiniColorButton' RGBmtx.pde:-1: error: expected type-specifier before 'PixelColor' RGBmtx.pde:-1: error: expected `;' before 'PixelColor' RGBmtx.pde:-1: error: expected type-specifier before 'MiniColorButton' RGBmtx.pde:-1: error: expected `;' before 'MiniColorButton' RGBmtx.pde:-1: error: expected type-specifier before 'PixelColor' RGBmtx.pde:-1: error: expected `;' before 'PixelColor' RGBmtx.pde:-1: error: expected type-specifier before 'MiniColorButton' RGBmtx.pde:-1: error: expected `;' before 'MiniColorButton' RGBmtx.pde:-1: error: expected type-specifier before 'PixelColor' RGBmtx.pde:-1: error: expected `;' before 'PixelColor' RGBmtx.pde:-1: error: expected type-specifier before 'MiniColorButton' RGBmtx.pde:-1: error: expected `;' before 'MiniColorButton' RGBmtx.pde:-1: error: expected type-specifier before 'TextElement' RGBmtx.pde:-1: error: expected `;' before 'TextElement' RGBmtx.pde:-1: error: expected type-specifier before 'ActionButton' RGBmtx.pde:-1: error: expected `;' before 'ActionButton' RGBmtx.pde:-1: error: expected type-specifier before 'ActionButton' RGBmtx.pde:-1: error: expected `;' before 'ActionButton' RGBmtx.pde:-1: error: expected type-specifier before 'ActionButton' RGBmtx.pde:-1: error: expected `;' before 'ActionButton' RGBmtx.pde:-1: error: expected type-specifier before 'ActionButton' RGBmtx.pde:-1: error: expected `;' before 'ActionButton' RGBmtx.pde:-1: error: expected type-specifier before 'ActionButton' RGBmtx.pde:-1: error: expected `;' before 'ActionButton' RGBmtx.pde:-1: error: expected type-specifier before 'ActionButton' RGBmtx.pde:-1: error: expected `;' before 'ActionButton' RGBmtx.pde:-1: error: expected type-specifier before 'ActionButton' RGBmtx.pde:-1: error: expected `;' before 'ActionButton' RGBmtx.pde:-1: error: expected type-specifier before 'ActionButton' RGBmtx.pde:-1: error: expected `;' before 'ActionButton' RGBmtx.pde:-1: error: expected type-specifier before 'ActionButton' RGBmtx.pde:-1: error: expected `;' before 'ActionButton' RGBmtx.pde:-1: error: expected type-specifier before 'ActionButton' RGBmtx.pde:-1: error: expected `;' before 'ActionButton' RGBmtx.cpp: In function 'void draw()': RGBmtx.pde:-1: error: 'device' was not declared in this scope RGBmtx.pde:-1: error: expected type-specifier before 'ColorduinoDevice' RGBmtx.pde:-1: error: expected `;' before 'ColorduinoDevice' RGBmtx.pde:-1: error: 'ColorduinoDevice' was not declared in this scope RGBmtx.pde:-1: error: expected `)' before 'device' RGBmtx.pde:-1: error: 'background' was not declared in this scope RGBmtx.pde:-1: error: 'fill' was not declared in this scope RGBmtx.pde:-1: error: 'matrix' was not declared in this scope RGBmtx.pde:-1: error: 'rect' was not declared in this scope RGBmtx.pde:-1: error: 'image' was not declared in this scope RGBmtx.pde:-1: error: 'buttons' was not declared in this scope RGBmtx.pde:-1: error: 'null' was not declared in this scope RGBmtx.pde:-1: error: 'text' was not declared in this scope RGBmtx.pde:-1: error: 'device' was not declared in this scope RGBmtx.pde:-1: error: 'text' was not declared in this scope RGBmtx.pde:-1: error: 'device' was not declared in this scope RGBmtx.cpp: In function 'void next_frame()': RGBmtx.pde:-1: error: 'ColorduinoDevice' was not declared in this scope RGBmtx.pde:-1: error: expected `)' before 'device' RGBmtx.pde:-1: error: expected `)' before '}' token RGBmtx.pde:-1: error: expected primary-expression before '}' token RGBmtx.pde:-1: error: expected `;' before '}' token RGBmtx.pde:-1: error: 'matrix' was not declared in this scope RGBmtx.pde:-1: error: 'matrix' was not declared in this scope RGBmtx.pde:-1: error: 'matrix' was not declared in this scope RGBmtx.cpp: In function 'void mouseDragged()': RGBmtx.pde:-1: error: 'matrix' was not declared in this scope RGBmtx.pde:-1: error: 'mouseX' was not declared in this scope RGBmtx.pde:-1: error: 'mouseY' was not declared in this scope RGBmtx.cpp: In function 'void mousePressed()': RGBmtx.pde:-1: error: 'matrix' was not declared in this scope RGBmtx.pde:-1: error: 'mouseX' was not declared in this scope RGBmtx.pde:-1: error: 'mouseY' was not declared in this scope RGBmtx.cpp: In function 'void mouseMoved()': RGBmtx.pde:-1: error: 'buttons' was not declared in this scope RGBmtx.pde:-1: error: 'null' was not declared in this scope RGBmtx.cpp: In function 'void mouseClicked()': RGBmtx.pde:-1: error: 'buttons' was not declared in this scope RGBmtx.pde:-1: error: 'null' was not declared in this scope RGBmtx.cpp: In function 'void keyPressed()': RGBmtx.pde:-1: error: 'keyCode' was not declared in this scope RGBmtx.pde:-1: error: 'keyCode' was not declared in this scope RGBmtx.pde:-1: error: 'keyCode' was not declared in this scope RGBmtx.pde:-1: error: 'keyCode' was not declared in this scope RGBmtx.pde:-1: error: 'buttons' was not declared in this scope RGBmtx.pde:-1: error: 'null' was not declared in this scope RGBmtx.pde:-1: error: 'keyCode' was not declared in this scope RGBmtx.pde:-1: error: 'device' was not declared in this scope RGBmtx.pde:-1: error: expected `)' before 'instanceof' RGBmtx.pde:-1: error: 'keyCode' was not declared in this scope RGBmtx.pde:-1: error: 'StandaloneDevice' was not declared in this scope RGBmtx.pde:-1: error: expected `)' before 'device' RGBmtx.pde:-1: error: 'keyCode' was not declared in this scope RGBmtx.pde:-1: error: 'StandaloneDevice' was not declared in this scope RGBmtx.pde:-1: error: expected `)' before 'device' RGBmtx.pde:-1: error: 'keyCode' was not declared in this scope RGBmtx.pde:-1: error: 'StandaloneDevice' was not declared in this scope RGBmtx.pde:-1: error: expected `)' before 'device' RGBmtx.pde:-1: error: 'keyCode' was not declared in this scope RGBmtx.pde:-1: error: 'StandaloneDevice' was not declared in this scope RGBmtx.pde:-1: error: expected `)' before 'device' RGBmtx.pde:-1: error: 'PixelColor' was not declared in this scope RGBmtx.pde:-1: error: expected `;' before 'pc' RGBmtx.pde:-1: error: 'keyCode' was not declared in this scope RGBmtx.pde:-1: error: 'pc' was not declared in this scope RGBmtx.pde:-1: error: 'matrix' was not declared in this scope RGBmtx.pde:-1: error: 'fontLetter' was not declared in this scope RGBmtx.pde:-1: error: 'pc' was not declared in this scope RGBmtx.pde:-1: error: 'null' was not declared in this scope RGBmtx.pde:-1: error: 'matrix' was not declared in this scope RGBmtx.pde:-1: error: 'keyCode' was not declared in this scope RGBmtx.pde:-1: error: 'keyCode' was not declared in this scope RGBmtx.cpp: In function 'void keyReleased()': RGBmtx.pde:-1: error: 'keyCode' was not declared in this scope RGBmtx.pde:-1: error: 'keyCode' was not declared in this scope RGBmtx.pde:-1: error: 'keyCode' was not declared in this scope RGBmtx.pde:-1: error: 'keyCode' was not declared in this scope RGBmtx.cpp: In function 'void toggle_mode()': RGBmtx.pde:-1: error: 'matrix' was not declared in this scope RGBmtx.pde:-1: error: 'buttons' was not declared in this scope RGBmtx.pde:-1: error: 'null' was not declared in this scope RGBmtx.pde:-1: error: 'buttons' was not declared in this scope RGBmtx.pde:-1: error: 'buttons' was not declared in this scope RGBmtx.cpp: In function 'void set_mode(int)': RGBmtx.pde:-1: error: 'matrix' was not declared in this scope RGBmtx.pde:-1: error: 'matrix' was not declared in this scope RGBmtx.pde:-1: error: 'matrix' was not declared in this scope RGBmtx.pde:-1: error: 'buttons' was not declared in this scope RGBmtx.pde:-1: error: 'null' was not declared in this scope RGBmtx.pde:-1: error: 'buttons' was not declared in this scope RGBmtx.pde:-1: error: 'buttons' was not declared in this scope RGBmtx.pde:-1: error: 'device' was not declared in this scope RGBmtx.pde:-1: error: 'ColorduinoDevice' was not declared in this scope RGBmtx.pde:-1: error: expected `)' before 'device' RGBmtx.pde:-1: error: 'ColorduinoDevice' was not declared in this scope RGBmtx.pde:-1: error: expected `)' before 'device' RGBmtx.pde:-1: error: 'ColorduinoDevice' was not declared in this scope RGBmtx.pde:-1: error: expected `)' before 'device' RGBmtx.cpp: At global scope: RGBmtx.pde:-1: error: 'import' does not name a type RGBmtx.pde:-1: error: 'import' does not name a type RGBmtx.pde:-1: error: 'import' does not name a type RGBmtx.pde:-1: error: expected initializer before 'GuiElement'
Sorry so long. Any guidance?
You should only load RGBmtx into Processing. If it isn't finding the board, then you need to check your connections first. You can't directly load ColorduinoDevice.pde into Processing... it's loaded by RGBmtx.pde.
As of release 1.0, libraries must be installed in a folder named 'libraries' inside the 'sketchbook' folder.
So where do I find this library and where do I put it?
/RGBmtx
and
/libraries/colorpicker
the missing library is in colorpicker.jar
No library found for com.bric.swing
As of release 1.0, libraries must be installed in a folder named 'libraries' inside the 'sketchbook' folder.
Where do I find this library and where do I put it?
/RGBmtx
and
/libraries/colorpicker
the missing library is in colorpicker.jar
I've got one - I just received my package from itead (purchased the color shield and the 64 round rgb display for testing, as you have..)
I have the color shield set up with a brand new uno, and can't seem to get your app to talk to the arduino through usb.. When the app runs, the rgb display (that is running your plasma output) blinks for a second, then goes back to plasma, and the app says it can't see an output device..
Any advice on forcing it to see the uno/color shield?
int baud = 57600
It should match the value found in the Arduino sketch, ColorduinoSlave.pde:
#define BAUD_RATE 57600
If the baud rates match up, then you need to add debugging print statements into ColorduinoDevice.pde to figure out what's going on. If you look at the ping() function, there's a debug line commented out:
// print("pingrc");print(rc);
uncomment the line and see if it displays anything in the Processinging IDE during runtime. If it doesn't print that line out, then it's not finding your serial port. If it returns -1, then your Arduino isn't responding correctly.
It appears that I've got a crazy port or two on my desktop, as all is working perfectly from a laptop.. - The desktop isn't showing a thing with debugging on.. I'll break out the baseball bat later :)
Thanks again for the info..
The baud rates match, the serial drivers are up to date, the Com port with the Uno on it is working correctly, and I've got the same error on multiple different computers.
I will keep fiddling with the code, and trying different systems, but any advice or ideas you have would be great.
And, very importantly, THANKS for the awesome build. I have had a blast building this...
What happens when you slow down the baud rate on both sides? Try 19200 on both sides and see if that wakes it up.
i have noticed there is long duration of reset time during RGBmtx start up
so i assume there sync issue between RGBmtx and UNO
perform UNO manual reset when clicking on RGBmtx icon solve the problem
hop this put some light for other UNO users
(sorry for mistakes, my English is not a pearl)
Maybe some of the other folks with problems are making the same error? That'd be nice, I'd feel less stoopid...
I'm please to say, that with some great help from my wife with the wire wrapping, we have pulled it off!! :-)
If you're interested, here's a video:
http://www.youtube.com/watch?v=pwrHY59VxO8
I just have become a bit stuck with the RGBmtx pc app and wondered if you might be able to offer some help? :-)
I am seemingly able to get the software to connect to the grid but nothing works but the plasma mode. I have a this cable directly connected to the colordunio
http://www.tronisoft.com/2472.php
like this:
Green : RTS (Requeset to Send) -> DTR
Orange : TTL Transmit Tx (output) -> TXD
Yellow : TTL Receive Rx (input) -> RXD
and am using a usb 5v 1amp adaptor to power things through the 4screw terminal.
The plasma works great but nothing else seems to :-(
I have tried changing the int baud to no avail.
To give you a bit more info about the RGMmtx and its behaviour, when i run it up, everything seems to connect ok (as the "no output device" message DOES NOT appear) and when switching modes, nothing works except for the plasma mode. every other mode just freezes the grid. :-/
I'm relatively new to this sort of thing but i don't think its my diy matrix grid as i have had the 60x60mm RGB matrix plugged directly into the Colorduino and that has the same issue.
Any help would be really really appreciated.
All the best and thanks for such a great instructable!! :-)
Cheers, John
You should disconnect RTS/DTR. The sketch doesn't use hardware handshaking. One very important connection that's missing is GND. The signalling won't work without it. You need to also connect
Black: GND -> GND
If that doesn't work, try also reversing Rx/Tx, although that probably isn't the problem, since it seems to detect the Colorduino.
The problem is definitely in the communication.
Yeah, its rectangular and still 8x8. I wasnt sure if 128 leds would draw to much power and i didnt want to risk it. I also didnt add the deviders with the intention of maybe adding them later, but i really like the effect it has when its not devided.
Still having the same issues though. :-(
Could there be anythig else i am missing, or maybe the cable i am using isnt good enough/faulty?
Is there an alternate way i can connect it to the machine?
So did you try the serial wiring I recommended above?
This was the connections i used to program it initially and back when i was using the mini matrix, i tried the app and it also froze.
1 : Green : RTS (Requeset to Send) -> DTR
2 : Black : Ground -> GND
3 : Orange : TTL Transmit Tx (output) -> RXD
4 : Yellow : TTL Receive Rx (input) -> TXD
5 : Red : Vcc +5V typical (output) -> VDD
I have tried your suggestion and the connections here today with the mini board and none seem to work. :-(
any ideas?
What's strange is that you say RGBmtx detects the board and seems to communicate.. I'm assuming you've tried editing the matrix in Slave mode, and it didn't update the matrix in realtime?
You might want to try setting a slower baud rate, in case you're getting data corruption. Make sure you set the same baud rate on both Arduino and Processing.. try 9600.. that's slow enough that it should work even w/ noisy wiring.
I will let you know how i get on! Thanks for your help.
I have tried disconnecting the dtr. If i switc the txd and rxd then the board is not detected at all so i guess thats right.
Having droped the baud rate to 9600 on Ardunio and Processing and its still not having it :-(
Any ideas on what else i can try?? Please :-)
Thanks a lot!
I have moved on since the last comment below, but now I can get the colorduinosalve.pde to compile and go via my uno (by selecting AT Mega328 as the board in arduino IDE) to my rainbowduino but all I get on my rainbowduino with 8x8 rgb matrix plugged in is rows of flickering pinky/red leds and the row 3rd from the bottom is blank - no plasma mode running at all
HELP!!! really want to build this project but I must get it working first on the matrix.
Look forward to you reply Cheers!!!
You should first check your wiring ... use a battery and resistor and check each individual LED to make sure they light up properly and that only 1 LED at a time is lit.
Cheers Kev
for info I have just finished your daftpunk 5x5 matrix and it works a treat synced to sound. One thing I have done though is to mod the software to add automatic gain control to handle volume changes and it works a treat and produces some interesting effects. If you are interested in this I will post the sketch.
One question on your op amp design for audio input I noticed I wasnt getting any gain increase and I think there is a resistor missing between the (-) input and ground as in this link here http://www.radio-electronics.com/info/circuits/opamp_basics/operational-amplifier-gain.php
by adding this it then gave me any gain I wanted. Thoughts ?(as I am no expert on this) Cheers Kev.
Oops! You're right! I forgot the 10K resistor between the - input and ground. I'll correct the Instructable.
Thanks for the great idea! We build our own in 24 hours, including wooden stand.
We made a timelapse of the whole process, which you can see here:
http://www.youtube.com/watch?v=eNTNvxgHTDw
Enjoy!
In addition, we can confirm that soldering the LEDs makes it (a lot) more difficult to put the LEDs in the cubes, but otherwise the wires often got loose while installing them. And I think soldering increases stability.
In file included from sketch_dec23a.cpp:28:
D:\arduino-1.0-windows\arduino-1.0\libraries\Colorduino/Colorduino.h:23:22: error: WProgram.h: No such file or directory
In file included from D:\arduino-1.0-windows\arduino-1.0\hardware\arduino\cores\arduino/Arduino.h:212,
from sketch_dec23a.cpp:52:
D:\arduino-1.0-windows\arduino-1.0\hardware\arduino\variants\standard/pins_arduino.h:45: error: expected unqualified-id before 'volatile'
D:\arduino-1.0-windows\arduino-1.0\hardware\arduino\variants\standard/pins_arduino.h:45: error: expected `)' before 'volatile'
D:\arduino-1.0-windows\arduino-1.0\hardware\arduino\variants\standard/pins_arduino.h:45: error: expected `)' before 'volatile'
D:\arduino-1.0-windows\arduino-1.0\hardware\arduino\variants\standard/pins_arduino.h:46: error: expected unqualified-id before 'volatile'
D:\arduino-1.0-windows\arduino-1.0\hardware\arduino\variants\standard/pins_arduino.h:46: error: expected `)' before 'volatile'
D:\arduino-1.0-windows\arduino-1.0\hardware\arduino\variants\standard/pins_arduino.h:46: error: expected `)' before 'volatile'
All the best and thanks in advance! :-D
So I can get an FTDI cable to bypass an Arduino? Or I still need one?
or something like this:
http://www.sparkfun.com/products/718
Can i ask, does that mean that a cable such as this: http://www.tronisoft.com/prod.php?id=2472 is able to actually power the unit as well as program it too?
Thanks in advance!
I love your project.
The seller had good communication. He sent me the wrong parts, and then cheerfully sent me the correct parts when I complained. Now, I have to figure out what to do with a pile of 100 common cathode RGB LED's (he let me keep the incorrect parts). The problem, though, was his parts had inconsistent color temperature. I have a feeling the many of eBay sellers from China probably are selling slightly out of spec parts.. that's why they're so cheap.
I'm having a problem getting RBGmtx to identify my colorduino. I read through previous comments and increased the time ColorduinoDevice will wait for a ping to around 10 seconds just to be safe, and still no connection. I'm using the USBtinyISP kit to connect to the colorduino, and in my attempts to fix this issue I connected my Arduino Uno to the Colorduino like you suggested in step 16. Any ideas?
I put some debug code into ColorduinoDeviceDbg.zip.
You can download it from step 18: http://www.instructables.com/id/Lampduino-an-8x8-RGB-Floor-Lamp/#step18
Use that file to replace the current ColorduinoDevice.pde and run it. In the bottom pane of the Processing IDE, it will show you which serial ports it's scanning, and a pingrc=xxx value. Does it scan the port that your Colorduino is connected to? What's the pingrc value?
On the plus side, i'm so excited this is actually working so far. Usually projects I build go up in flames at this point.
The arduino is wired to the colorduino:
RX -> RXD
TX -> TXD
Reset -> DTR
The colorduino's power supply is coming from a 5V wall adapter. I don't know what other information is relevant, but do you have any idea of what could be wrong? Once again, thank you so much for helping me out like this, i really appreciate it.
In my setup, I'm powering the Deumilanove from 5V, and powering the Colorduino from the Deumilanove. When programming, I have the USBtinyISP connected, w the 5v power jumper removed.
Reset -> DTR
GND -> GND
TX -> TXD
RX -> RXD
5V -> VDD
Then on my Dumilanove I have a 5v wall adapter plugged into my Vin pin and othe GND pin. The board in my device manager registers as "USB Serial Port (COM8)"
Right now I have a Arduino Uno plugged into my computer on COM7, but that shouldn't be a problem, should it?
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.
Sidenote: The ColorduinoSlave code wouldn't upload with CMODE_COLOR_FILL, I changed it to CMODE_FILL and it seemed to work.
I'm sorry this is being so much trouble, and I know it's probably something really silly that I'm doing that I don't know is silly because I've never done a project like this before. Thanks again for being so much help.
1) try lowering the baud rate on both sides ... say 19200.
2) try a different power supply, e.g. a 9V battery to the power port on the Arduino
3) try fiddling with different latency settings in the driver. You might have to connect/disconnect it to make the settings stick.
It's very hard to try to diagnose these things w/o being able to actually touch the hardware, unfortunately.
On tuesday I'll let you know how it goes, I have my fingers crossed. Thanks again for all the help. :D
Using the Colors Shield on an Atmega 328 Duemilanove, I couldn't get RGBmtx to recognize the slave after loading ColorduinoSlave. But I was successful in communicating with it via Processing 1.5, running the RGBmtx sketch therein.
I'm looking for help in wiring up the music synchronization component. I'm somewhat confident in what I've configured up to the left of the TLC272CP op amp IC on the diagram. From that point forward (to the right of the TLC272CP op amp IC), I don't completely understand. Is there any way you could post a more detailed, perhaps top-view, of your synchronization board?
I'd be ever greatful! Thank you again for the great project!
Congratulations on getting it built! I'd love to see your build if you have photos of it.
Simply connect R1 between Pin 1 (output) of the TLC272CP and SDA on the Colorduino. Then connect C1 between SDA and ground. Make sure the + lead faces SDA.
Thank you so much.
http://hackaday.com/2011/03/28/led-floor-lamp-really-ties-the-room-together/
Beckoning Shadows by Oliver Ledbury. Album: ANW1190 - Magic, Mystery. Label: Audio Network, Plc.
I just checked my RGB Led's and like your order they are Common Cathode.. Damn.. More on order ( Common Anode ) .. But what can I do to use the ones I have..
Can they be driven with transistors or something like that to invert the power??
If so what should I do.. I am using a color shield v1.1 and an uno..
Thanks..
I like how you made the pixelated Leds with the foam board material. I was using cardboard myself. Nice way of mounting the LEDs into the foam.
One thing about the video, sometimes you see flicker in the video, is this an attribute of the video recording or the refresh rate by the arduino ?
But I wouldn't trust their mcd numbers.. on eBay, the sellers tend to just put random numbers. They claim 4000-5000, but the mcd numbers tend to vary quite a bit between colors in the real world, and they don't specify for each color. Also, the relative intensities of my LED's varied so much that I couldn't even try to adjust the white balance ... so I wouldn't recommend the ones that I used.
Going past this, a couple of improvements come to mind re: untethering it:
A battery pack for the base (4 or 8 AA rechargables running through a 5v boost like a LT1302 mintyboost v2 will provide the 1A 5v). Two cheap AM radio transceivers (RF communication with the host PC) could carry the signals, although this depends if one can get away with 4800 baud and if not, what workarounds are suitable (ie, caching some of the shapes/frames on board).
I really like this and now it has me looking to use up some of these spare glass blocks I have...
Yes, instructions on an Arduino + Colors Shield version would be very helpful (and Cool!)
1) Colorduino has no USB interface, so you have to use an external cable
2) You probably still have a couple of I/O pins left if you use the Colors Shield, while the Colorduino basically exposes no extra pins besides SDA/SCL.
I bought a cheap bluetooth board on eBay for $11. That's going into it next. While the battery idea is nice, the LED's and circuit draw a lot of current, so that's why I decided to go w/ a wall plug.
Your glass block idea sounds cool! Make sure to document that somewhere when it's done.
I'd bet you could get a couple of hours off a 5V battery pack (Mintyboost). If you have a Kill-a-watt, it would show what this pulls in terms of 120V AC. I'm guessing it's under 4 watts.
Re Bluetooth, are you sure it will work at $11? That's about the price for a Bluetooth that expects a host computer, not something that will work with an Arduino. If you've tested it, please post an ebay link or part #. (I'm using 433MHz AM in a remote fermentation temp sensor, mainly due to cost. Bluetooth would be much nicer!)
http://cgi.ebay.com/Wireless-Serial-Bluetooth-RF-Transceiver-Module-rs232-/260697768531?pt=LH_DefaultDomain_0&hash=item3cb2cc4253#ht_3755wt_1050
I've gotten it to pair w/ my computer, but haven't gotten the serial comm w/ the AVR working yet. It's very similar to a part sold by emartee.com. they have a breakout board, but it's no good because it doesn't handle level shifting properly. the vendor i bought it from has no data sheets at all (what do you expect for $10??)
And more detailed about the AT command here: http://iteadstudio.com/produce/more-powerful-serial-port-bluetooth-module-masterslave/