mtXControl - a Rainbowduino Editor By Tobi

Just throwing my two cents in…

First of all, thanks to Tobi for creating this application. After discovering it via the contest, it inspired me to order a Rainbowduino so that I could program it as a birthday present for my wife. Although the parts showed up a little late, I was able to successfully get everything going. That being said, I do have some thoughts/observations/questions in no particular order: (not a total newbie to Arduino or Processing, but still learning :slight_smile:

  1. I tried to follow the directions to change the speed of the animation between frames, but nothing seemed to have any effect. What mode should the application be in so that I may change the speed, and what are the relevant keystrokes? I tried ALT + -, which I took to mean the minus sign, then I thought better of it and tried ALT + a number. Nothing seemed to have any effect. Am I just missing something obvious?

  2. As seen in the comments on your blog post, I too fell victim to the fact that I was not able to use the precompiled binary of the app. I downloaded the source and ran it through the Processing environment and was then able to communicate with the Rainbowduino. If there is anyway I can help debug this, let me know. Also, did I again miss something simple in terms of downloading all the relevant source? I had to manually add each file to my sketch to make everything work. I know there should have been an easier way. Do I just not know how to download properly from the git repository?

  3. I was a little confused as to the proper procedure as to getting the Arduino ready to program the Rainbowduino. To clarify the steps:
    a. Load the latest Arduino environment on the PC
    b. Confirm the ability to upload a simple sketch to the Arduino, making sure to select the correct processor type
    c. Upload the “blank” sketch to the Arduino so that it acts like a pass-through connection
    d. connect the Rainbowduino to the Arduino as indicated in your blog picture (which is actually a little blurry and hard to read, maybe annotate the pin numbers/)
    e. Using the Arduino IDE, load the firmware.pde sketch and then transfer it. The Arduino serves as the middle-man so that the microcontroller on the Rainbowduino can be reprogrammed. Important note is to change the processor type to 168 if you have a 328 Arduino.
    f. A brand new Rainbowduino should now go from displaying the multi-colored test pattern to all white LEDs.
    g. Close the Arduino IDE. Load the latest Processing IDE (although similar in appearance, they are not the same). Remember to leave everything connected as displayed in the blog photo.
    h. Load the mtXControl application and compile and run it. The display should go blank.
    i. Use the application to design your animation and then Save it to the Matrix.
    j. Close the Processing IDE. Disconnect the USB cable from your PC to the Arduino and undo the connections between the Arduino and the Rainbowduino.
    k. Power the Rainbowduino up by itself (either with an AC adaptor or a battery) and the animation should display.

Does this seem like I have everything right? With a little guidance I could write something a little more detailed or perhaps make a screencast (at least for the Mac platform).

I think that is it for now. Thanks again for a great app. I hope you continue to improve it. Let me know if I can help or if anyone wants to help me put together a detailed tutorial or screencast.

Thanks,

Bob

Can’t get it to compile :frowning:

[code]E:\DOCUME~1\Carson\LOCALS~1\Temp\build58991.tmp/Rainbowduino.h:1: error: expected constructor, destructor, or type conversion before ‘/’ token

e:/arduino/arduino-0017/hardware/tools/avr/lib/gcc/…/…/avr/include/stdlib.h:143: error: ‘size_t’ has not been declared

[/code]

…and a whole bunch of ‘size_t’ has not been declared errors. :frowning:

Thanks.

Hey Bob thanks for you feedback here quick answers:

ALT and + key or ALT and - key change the speed on the arduino. Maybe hold the keys longer to take effect. Maybe I should add some visual feedback on processing side as well.

I still had not any time to debug this. Although non working precompiles seems to be only a problem for snow leopard macs? Would be great if anyone can report success stories on other system, by now I don’t hav any other to test with.

well I do have all file in structure like the repository is. The top mtXcontrol folder is within my sktechfolder directory, set up in processing preferences. I open mtXcontrol.pde with processing, and firmware.pde with arduino IDE. works allright.

wow right, looks all okay for my. After step i) I would only add one more step: switch to ‘Arduino: Slave’ mode (alt + ENTER) or second button form top) which allows you to display your drawing in processing in realdtime on rainbowduino to test it.
If it’s ok I’ll add those steps to the documentation, with mention your name, of course.

A proper setup screencast is indeed a good idea. I’ll see if I have time. If you or sthoneelse is interested, feel free to go for it, of course! :wink:

Thank you again… Cheers Tobi

Hm strange, I never saw this error before. Does other sketches compile well? try some ‘bigger’ examples usering libraries as well, maybe your library path isn’t correctly set up?

Hi Tobi,

Thanks for taking the time to answer my questions. Please feel free to use my text on your site. Hopefully someone will find it useful.

I may try to do a proper screencast this weekend.

Thanks again for the app and the guides.

P.S. You going to show off all your Rainbowduinos that you won any time soon?

cool, thanks, i just updated the documentation…

hehe, sure :wink: - but they havn’t arrived yet - they are still one the way…

From what I gather, download the “firmware” zip… Drop raindbowduino into the libraries folder…

Create a directory in your Arduino sketches directory (windows it’s documents\arduino) Something like RainbowduinoMXControl. Rename firmware.pde to RainbowduinoMXControl.pde… Then fire up Arduino 17… Sketches > RainbowduinoMXControl … Upload that

He’s hardcoded the serial port (?!) so you need to download the mxcontrol software to your desktop. Throw all the files in a directory called “mtXcontrol”. Download and unzip processing somewhere and upload up mtXcontrol.pde within processing.

Click on the tab named Arduino and look for the lines

Arduino(PApplet app) {
try {
port = new Serial(app, Serial.list()[0], BAUD_RATE);
}
catch(Exception e) {
port = null;
}
standalone = true;
}

Change serial.list()[0] to what ever com port your using… on my machine it was “COM7” (in quotes). On 'nix it may be something like /dev/usb0

At the author of this project.

is there any chance you could write a simple Arduino to Raindbowduino demo on how your “protocol” works. I’m trying to decipher your code but there’s no comments and I’m not sure how your client and server code mesh up.

Cheers, I’d appreciate it :slight_smile:

Hey Miles

I’ve just updated the SOURCE (not the binaries yet) to have an autodetection for the Rainbowduino port (only tested on Mac OS X yet) and Bitmap save and loading support. I cleaned up the code a bit and prepared quite a lot for more color support in futur. So check it out and stay tuned!

A screen cast is comming as well, hoepfully soon…

Cheers Tobi

Happy new Year to all of you!
Good news right from the beginning: I’ve just pushed a new version of mtXcontrol!

On big thing is support for Novation Launchpad, but maybe way more interesting bit for you is, I’ve move the complete rainbwoduino communication into a separate library which can include into your Processing programs easily. Check:
http://rngtng.github.com/rainbowduino
It now follows a proper API (likely to change) with extended functionality, including handshake and ok/error response Codes. Now, you updating the Buffer, loading/saving from EEPROM, setting the brightness or pinging the device works like charm!

As of that mtXcontrol is now way more stable, autodetects your Rainbowduino, im/exports BMP files, improved color chooser and many more. Download the latets version here:

http://github.com/rngtng/mtXcontrol/downloads

Pls. updated your Rainbowduion firmware (included with the binaries) as well!
Looking forward to your feedback and suggestion, enjoy 2010!

Cheers Tobi

Ok long time no hear as I was quite busy lately. But I managed to drive my rainbowduino and mtXcontrol development forward supporting multiple devices. Not yet fully finished, but good for beta test. Get a (quite nerdy) sneak preview here:

vimeo.com/10377543

I focused to get quick and easy. Some features:

  • one for all -> master & all slave run on same firmware
  • no configuration -> auto detection of master & slave + I2C address selection
  • nice protocol for easy communications with devices. I’ll release a processing (java) library, which should be easy to port to other languages
  • Master/slave communication is kept generic, so you can use this for other project with multiple Arduinos as well

Wanna beta test? Grap the sources here and start with examples:
github.com/rngtng/rainbowduino/tree/master_slave

Stay tuned! Tobi

I have a question…

g. Close the Arduino IDE. Load the latest Processing IDE (although similar in appearance, they are not the same). Remember to leave everything connected as displayed in the blog photo.
h. Load the mtXControl application and compile and run it. The display should go blank.

What exactly do I have to load and run on Processing ?

h. Load the mtXControl application and compile and run it. <- Is this mtXcontrol.exe file ?

I currently have the LED Matrix on White, it doesn’t go blank. I get the following message on mtXControl: “No output device found, running on standalone mode”. What to do ?
Thanks in adv.

the current mtXControl just can communication with COM port 1, please set your USB2Uart to COM Port 1

I need help. I cant make it work, windows or mac. Im stuck at the all white LEDs pattern. Could anyone make a video or screen caps of the whole process ? Im clueless. I ran mtxcontrol on mac and nothing happens, only the icon shows up. I tried running the latest processing ide while running mtxcontrol, no luck. Do I have to run anything on processing before running mtxcontrol ? thank you in advance.

I can’t get the mtXcontrol to work with the Rainbowduino through my UartSB v2.2. I got the firmware upload to work, but mtXcontrol always says “Output device not found, running in standalone mode.” I started with my UartSB set to COM8 (default), then I tried COM1. The tutorials I’ve seen say to run something in Processing, but I can’t find that. I’m using the mtXcontrol.exe file instead, and it doesn’t work.
Anyone willing to help?

mike41325 and I are experiencing the same issue. We must be missing something, I don’t know what should be running on processing when mtxcontrol is running… or if there’s any… any help much appreciated.

Hi there,

The new version of mxtController and conresponding firmware run on rainbowduino may not work, so you may try this(I’v tested ok):

  1. Download the mtXcontrol_windows.zip and Rainbow_mtX.zip here:http://code.google.com/p/rainbowduino/downloads/list

  2. Connect your rainbowduino in proper way to your computer that you can program it throgh COM.(Remember to change the port to use COM1)

  3. Unzip Rainbow_mtX.zip to your arduino code directory (no need in the arduino library), open Rainbow_mtX.pde by arduino and program it to your rainbowduino.(If it compiles failed, there may be another rainbowduino class in your arduino library, so back up and remove it).
    After programmed, the rainbow Matrix will be all in white.

4.Unzip mtXcontrol_windows.zip and run mtXcontrol.exe.
If ther’s error reported, like “not found javaw.exe”, then you need to add the java path to your environment variable(On my computer is: D:\Program Files\arduino-0018\java\bin ). Am I understood?
If there’s no error reported, just enjoy controlling your rainbow!

May it helps!

All the best,

-Icing

I got it to work, but certain actions (like loading from the matrix) will freeze the program and I have to force-quit the window. Anyone have a solution?

Hi mike,

Which version of mtXcontrol and firmware are you using? I’m failed on the newest one.

I used the most recent version that was posted right before my comment today.