Skip to content
bzbhorizon edited this page Sep 14, 2010 · 4 revisions

What Rainbowduino does

Normal Arduino boards have a limited number of output pins, meaning that only a limited number of components can be individually driven directly from the boards. Rainbowduino is an Arduino-based board that allows multiple LEDs (or other components) to be driven programmatically. There are pre-built LED matrices that are designed to plug into and sit on top of the Rainbowduino board like other types of Arduino shield; alternatively the headers on the Rainbowduino can be wired into a more specific circuit.

How to program Rainbowduino

How to load a sketch onto the Rainbowduino

Since Rainbowduino has an Arduino chip on-board (ATMEGA168) they can be programmed via the Arduino IDE. Unfortunately the Rainbowduino doesn’t have a USB interface, so I have been transmitting sketches to a standard Arduino board (via USB) which can then pass the sketches directly on to the Rainbowduino:

  1. Connect an Arduino board to the computer via USB as normal
  2. Open the Arduino IDE
  3. Open the “Bare minimum” sketch from the “Stubs” submenu of the “Examples” menu and upload it onto the Arduino
    • I’m not sure whether this step is entirely necessary, but I read that the normal Arduino (the intermediary) should not be doing anything, hence loading it with an empty sketch
  4. Wire up the Rainbowduino so that it has power (see gotcha 1)
    1. Connect the Rainbowduino’s GND terminal to a power source’s GND
    2. Connect the Rainbowduino’s VCC terminal to a power source’s 5V
    3. The Rainbowduino’s power LED should light up
  5. Connect the Rainbowduino’s DTR header to the normal Arduino board’s RESET header (this is necessary)
  6. Link the Arduino and Rainbowduino so that the Arduino passes on data to the Rainbowduino
    1. Connect the Arduino’s TX header (digital pin 1) to the Rainbowduino’s TXD header
    2. Connect the Arduino’s RX header (digital pin 0) to the Rainbowduino’s RXD header
  7. Close the “Bare minimum” sketch; open the sketch that you intend to put onto the Rainbowduino
  8. In the “Tools” menu, switch the Board to “Arduino Duemilanove … w/ ATmega168”
  9. Upload the sketch
    • The sketch will not be uploaded onto the Arduino, but will be passed to the Rainbowduino
  10. Unplug the RX/RXD and TX/TXD wires and remember to switch the target board back to “Arduino Duemilanove … w/ ATmega328”

How to program LEDs using Rainbowduino

Todo

Rainbowduino manual

Gotchas

  1. I’m still not entirely clear on how the Rainbowduino draws power
    1. If power is drawn from a normal Arduino board (5V header, as described above) to the VCC header alongside the TX and RX headers, this doesn’t seem to be quite enough: weak LEDs are lit weakly
    2. I didn’t have a power source with a 2-pin connector to match my Rainbowduino’s JST power socket, but that seems to be the preferred method
    3. If power is drawn from a normal Arduino board (same 5V header) to the power terminal, it seems that more power is drawn as the same LEDs are lit brightly
Clone this wiki locally