Rainbowduino main board

sure. i first put on the newest image from the product page. i put the Rainbow_CMD_V2_0 image onto the rainbowduino via mega-isp on a seeeduino.

then i uploaded the SeeedMaster to a seeeduino. I attached the I2C pins like below

seeeduino rainbowduino
analog 4 to the pin farthest from the power rails
analog 5 the next pin
ground the next pin
5v the next pin

so i have 4 pins left between the power rail and the already plugged in 4 pins.

after that, i just gave it all power and the seeedmaster already cycles through the some letters.

check out here
and here

for a closeup of the connection

the “fix” was for my rainbowduino not displaying the programming properly. it no longer just does random bars. i just did touch up solders on all the legs of the ICs and all the ends of the surface mount stuff, and also the logs the female headers are in. (so basically, everything soldered to the board, i just heated it up to make it flow again just to verify it has connection)

i still am unable to upload the firmware with UartSB or the method posted in the blog because i get the issue of mismatched type.
i can however edit the code i want on the rainbowduino, and try to upload it with the arduino ide, and it fails, but it gives me the compiled hex file that i can then upload with avrdude and my mega-isp seeeduino.

Ah good man. I’ll try the seeeduino approach. Taking my AtMega 328 out worries me.

Have you managed to get custom bits displayed mate? I was pondering writing a small game - Snake maybe? I’ve a few ideas but wouldn’t mind seeing code to see how it should be addressed.


ps: Is it just me or do we not get mails from the forum anymore?

on the emails, yea i still get them. perhaps you have a junk filter that blocks it?

as for the images, as it looks now, it seems that everything on the rainbowduino as fas as custom bits, has to be progammed into an image map of r g b values. in the rainbowduino code, the data,c file, there is the variable named ‘Prefabnicatel’ which has the image maps in them.

you then call on the seeeduino

ShowImage(address, image, shift);

where image is the place in the Prefabnicatel array on the rainbowduino.

im not sure if the rainbowduino is currently able to accept custom coordinates to turn on or off via the seeeduino over i2c. i dont see it in the code, the only commands are ShowImage, ShowColor, and ShowChar so you would have to implement that portion yourself.

that could be something fun to work on though.

Hah, my current project is giving me enough headaches :stuck_out_tongue:

I may look into it later but I’d have to see how they developed the main code.

hi atomriot,

I am now in possession of 4, count 'em, 4 Rainbows, and most recently a UartSB (because I couldn’t get the ic2 working either). Of the 3 originals that I bought, one died almost immediately after it did that single bar randomness you describe on the one you got, another died after about an hour.

I just recieved a replacement for the 1st dead one when I bought the UartSB. They all, including the latest replacement (complete with a “QC/Passed” sticker), get the same avrdude error messages.

Have you (or anyone) heard of a fix yet? Do you know of another forum with a little more Rainbowduino traffic?

either this forum or the arduino one is the only 2 i have seen talk of rainbowduinos.

you could try going the mega-isp route if you have an arduino laying around. thats how i get mine programmed. and once i have that, i use avrdude manually. there is also an avrdude gui but in previous posts i put what commands i used to copy it over.

you have 4, but you are trying to program them individually? are you putting custom “images” on them? you could control them with the i2c method plugged into one and the use the address function in all the drawing methods, to control which one you are writing to.

the reason it wasnt working initially on mine was because of the speed that avrdude was trying to write to the chip. when i manually specify the speed, it works just fine. i dont have an actual isp programmer so i dont know if it was just the sketch i used (mega-isp) has it set to some value, or if the m168’s require a specific speed.


Ok. In Arduino loader program, I had it set to my Arduino Duemilanove (Atmega328). Switched to the '168 and it loaded fine. No time to get any further right now.

nice, glad it started working for you

hey FreeZinG,
in your UartSB bootloader writing to the rainbowduino, what avrdude.conf are you using? i dont have diecimila as an option in the command

avrdude -c diecimila -P ft0 -p m168 -t -B 4800

i checked arduino avrdude.conf from 0016 and the winavr avrdude.conf

you can download the conf file here: geocities.jp/arduino_diecimi … ex_en.html

And I use the conf file was modify by ourself for fitting the UartSB.

AVRDUDE’s “-C” command line option specifies the location of the configuration file. The “-c” option names the programmer configuration which must match one of the entry’s “id” parameter.And the conf that we used is ( programmer id=“diecimila”; ……) ,so (-c diecimila ). if you modify the ID than the conmand parameter need to change too.

just got my v1.11 rainbowduino in the mail today. plugged it in and the green and blue are very dim and hard to see. you cannot even tell they are on unless you turn out the lights in the room.

I tried the LED Array from my other rainbowduino and it displays the same way. the red is very bright but the blue and green are very dim. I have looked into the variable resistors on the board and they don’t seem to address the issue because changing them doesn’t seem to do anything for the green or blue.

any ideas?

i have tried hooking it up through a seeeduino and through the UartSB 2.1 but thats it. i have not tried an external power source greater than 5v. i am digging around to see if i have one but thought i would post to get some input.

There are 3 variable resistance for each color channel , try to adjust the resisitance to change the urrent for each color.

yea i tried messing with those and got no result. I changed the red to the minimum and the green and blue to what felt like the max. and checked with a multimeter to make sure it was changing, and there seemed to be no effect.

Donot use the UartSB to supply power. Use the power sourse external . May be that you problem will fix.

And turn the resistance all to bottom by clockwise.

I just got my Rainbowduino and I love the hardware. Electronics can be art indeed!

Would it be possible to get a schematic for the circuit? I can just about figure out the pinout from the PCB and the sample code, but it would be nice to have the schematic for reference.

Hi Atomriot,
maybe you already solved this problem?
if not, I think the problem is related to the power feeding the Rainbowduino:
when the power is not enough, like if you power the board just from the UartUsb,
only the red LED will light, while the green and blue stay almost dark.
Try using a transformer capable of at least 500mA (better 1A), at 6V to keep the baby cool and chilled;
sometimes I used 12V but after a while the matrix got quite hot!

Hope this helps,
all the best,

kkkk, it was power, i have since switched to a 12v 1a source and power both my rainbowduinos old and new together inline.


But some which contacts the original Arduino should be used that would be programmed by their effects Rainbowduino ?

And how better to connect and install on these boards switches, 4 boards Rainbowduino for “screen” kind of 2x2 and its subsequent connection to the original board Arduino ?

Knowledgeable people, help with uncomprehending :frowning: (fwebsites read, understood nothing)
There are:

  1. Arduino board to AtMega168
  2. Rainbowduino
  3. square 8 * 8 LED Matrix - super bright RGB

And now the questions:

  1. The board Rainbowduino microswitch for what ?
  2. When programming Rainbowduino whether to pull out of the Arduino AtMega168 ?
  3. When programming for the UART interface connection boards Arduino<>Rainbowduino in this order: tx<>txd, rx<>rxd, reset<>dtr, 5v<>vcc, gnd<>gnd. Right ?
  4. When programming for I2C interface as these two boards to connect ?
  5. When connecting multiple boards Rainbowduino (for more opportunities), they both need each other to connect ? And for synchronous concurrent operation, which of these boards will be the master and slave (in fact on each of them is a microcontroller) ? Or for a realization of their work need an external circuit with my microcontroller ?

many of the info you need are in the Rainbowduino manual:

Answers to your questions:

1- The micro button is used to RESET the board.
2- If I understand your question, you’re asking “How to pull the 168 out of the board”:
it’s soldered, you can’t replace the 168.
3- If you are using the UsbUart, just connect it so that the Uart and Rainbodwuino serial pins are lined from the top.
Anyway, the Uart_TXD goes into Rainbow_RXD, and Uart_RXD goes into Rainbow_TXD.
Check the manual for more information.
4- For I2C, you need 4 cables:
(+) and (GND) from Arduino to Rainbowduino I2C pins.
Arduino analog input 4 = Rainbowduino I2C SDA
Arduino analog input 5 =Rainbowduino I2C SCL
5- Check this: http://www.arduino.cc/playground/Learning/I2C
To put it simple, multiple boards are chained using the I2C bus,
a unique address can be assigned to each board to receive commands,
and you use Arduino as the I2C master.
Then you can do whatever you want, but this is the simplest working configuration for multiple boards.

Check the manual and read the forum posts,
you’ll find many useful information.

And try to understand as much as possible from the manual,
it’s a good start:

Hope this helps,
good luck,