Skip to content

RainbowDuino here it is! (and how to program it)

2009 June 25

Yay – I finally got my RainbowDuino. Unluckily I did sth wrong with the external power connection (JST 2 pin jack) and smashed a capacitor. Maybe the polarity was wrong or it couldn’t stand the 12 volts? But luckily no damage to the main system so it still works using the terminal connector (right through the 5volts of the Arduino). *phew*

The first real basic problem I ran into was how to program the Rainbowduino as there’s no USB connector and I don’t have an UART interface.
But well, nothing simpler than that: Just connect your Arduino’s Tx,Rx,GND,Reset and Vcc ports with those of the Rainbowduino, choose the right controller type in your IDE and program it as usual – works perfect for me!

Check out my Rainbowduino Editor mtXcontrol here – it’s an easy way to draw shapes on your rainbowduino!

Btw. DTR on Rainbowduino is Reset on Arduino

Sorry I forgot to mention, this trick does NOT work if your host arduino is a ATmega168 – you need an ATmega328 to pass serial communication through. Before that, make sure you upload this blank sketch to your host Arduino first:

/* blank sketch to upload on Arduino */
void setup()

void loop()


And, as multiple times requested, a picture of my complete setup:

Make sure you’ve selected the switch right. It has to point to the same side as the green Terminal connectors are. If you power rainbowduino through the white JST jack, flip it!

72 Responses
  1. Hoctrimede permalink
    March 10, 2014

    Hello. Thanks a lot for this nice article.
    I’m french, so sorry in advance for all my english faults…

    I have two questions :
    1. On the Arduino (use to pass serial communication through), did you remove the ATm328 circuit ? I see on the picture that the circuit is on the board.

    2. Concerning the connection between Arduino et Rainbow : It’s not necessary to cross RX and TX connection between Arduino and Rainbow ?

    Thanks a lot for your help.

  2. Calvin permalink
    November 22, 2013

    hey guys, can anybody help with this, I’m almost about to give up, tried so many things and I still can’t get my arduino to talk via I2C with my Rainbowduino/8x8matrixLED.

    i flashed the firmware correctly onto the rainbowduino, but after uploading the master code from:

    to my arduino uno, it doesn’t seem to communicate with the rainbowduino w/ 8x8LED matrix; no lights at all =(.

  3. Laurence permalink
    April 20, 2012

    Can someone please help me to get my Rainbowduino V3 to work with MTX Control, i have uploaded the firmware to the Rainbowduino, no Arduino board needed as the new Rainbowduino allows for sketches to be uploaded directly, When i start MTX Control, it just says NO DEVICE FOUND, and tryint ALT + ENTER does nothing, i am running MACOSX 10.6.8 snow leopard, Please help

  4. Imanuel permalink
    February 28, 2012

    anyone have an example program for scrolling text?
    because I do not understand using rainbowduino to display the letters in an 8×8 RGB LED matrix.
    If you have an example of this program please send to my email: @ imanuel.siman
    thank you

  5. January 20, 2012

    There is now a RainbowDuino version 3.0 with on-board USB for programming. You no longer have to use a separate Arduino for programming.

  6. Chad permalink
    January 16, 2012

    Has anyone gotten this to work with v3.0 Rainbowduino hardware? I can successfully flash the Rainbowduino, Mtxcontrol finds the board ok and I see the rx/tx lights light up when I send activity to the board, but the lights do not light up. The only thing I can get working with this 3.0 board is the included examples that come with the stock 3.0 firmware. Ideas?

  7. ortsac permalink
    August 16, 2011


    I am using the latest files from, the firmware is dated 8/2/2011 from the githup site zip file “latest_mtxcontro_and_firmware_windows”, Seeeduino 328, and Windows XP.

    I’m new to Rainbowduino….I was able to successfully the following using the Adruino IDE:
    1. Blank the Seeeduino Atmega328 (I am using it as a pass a USB-serial comunication to the Rainbowduino board.)
    2. Upload the “Rainbow_Plasma.pde” into the Rainboeduino and watch it perform in Standalone mode.
    3. Blank out the “Rainbow_Plasma” from the Rainbowduino and watch the display turn off.
    4. Upload the firmware the “mtxfirmware.pde” into the Rainbowduino and watch it all go white.

    The problem is it seems that the”mtXcontrol.exe” does not seem to work. There is a message at the top of the window that says “No output device found, running in standalone mode”. I do not know what that means and how to correct it. Please help!!!!


  8. kin37ik permalink
    May 8, 2011

    ive done exactaly what youve described here but i cannt get mine to work, im using an arduino mega 2560 and 2 rianbowduino’s, ive tried uploading the MTX firmware onto the rainbowduino but the compiler just throws alot of errors and doesnt upload it to the rainbowduino at all

  9. Paul permalink
    February 22, 2011

    Hi Guys,

    I managed to get my Rainbowduino (328) programmed via a seedunio (328). I experienced the same error stk500_paged_write() ….. when following the instruction the way I achived this was todo the reset for the boot loader manually.

    Here is what I did.

    1. Connect the RST to GND on the seeedunio board (hold chip in reset state)
    2. Connect RX,TX,GND and VCC (5V) from seeedunio to Rainbowduino
    3. Setup arudino IDE read with the firmware.pde and 328 board format.
    4. Press reset on the Rainbowduino and then quickly press the upload button (I think it needs to be under 0.5 seconds).

    This should then download the new firmware to the Rainbowduino board.

    P.S I found that I needed to change
    #include —– >> #include “MsTimer2.h”
    in a couple of places

  10. Dave permalink
    August 16, 2010

    If the Arduino and the Rainbowduino are both 328 you cannot program through the Arduino, you will need a usb – uart rs232 board i think.

  11. August 13, 2010


    Any luck with your problem? I’m experiencing a similar issue, although I’m unable to even program the blank sketch.

    I have the newer Rainbowduino, but cannot program it through my existing Arduino 328. I have been able to program it with the Uarb_SB, but only have one available usb hub and have to keep swapping between programming the master and the rainbowduino.

  12. June 28, 2010

    Hi sweet looking app. I have a newer Rainbowduino with an Atmel 328

    The blank sketch loads fine on my Arduino 328 but when trying to upload to the Rainbowduino (after following the wiring in the blog pic), I get this

    tried both setting 128 and 328 in the arduino IDE, any ideas?

    avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x64
    avrdude: failed to write flash memory, rc=-4
    avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

  13. May 17, 2010

    now it works! and error from my side… sorry!

  14. May 13, 2010


    I’ve tried but it does not work for me… what I do is the following:
    1- Connect Arduino (328) with Rainbowduino as your connections (tx-tx, rx-rx)
    2- Upload the blank sketch to the 328 arduino
    3- Change the Board to “Arduino Diecimila, Duemilanove or nano Atmega/168” and upload the firmware.pde
    At this point, the upload is not succesful and I get the error: “avrdude: stk500_recv(): programmer is not responding”

    Any idea?

    Thanks in advance,

  15. KING LEVI permalink
    February 1, 2010


  16. king levi permalink
    January 29, 2010

    thanks TOBI Iam shure i have the wright mtx the part idont understand is
    e. Using the Arduino IDE, load the firmware.pde sketch and then transfer it.

Trackbacks and Pingbacks

  1. 8×8 RGB LED Display | Mike:Enabled
  2. » Star Wars glowing mask
  3. » RGB-8×8-LED-Matrix
  4. Rainbowduino mit Arduino verbinden und programmieren « SUSAY – Design, Technik und Trends
  5. » Rainbowduino fun – aka neorainbowduino
  6. Rainbowduino… a virus in my Arduino!

Comments are closed.