-
Notifications
You must be signed in to change notification settings - Fork 0
Using Rainbowduino
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.
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:
- Connect an Arduino board to the computer via USB as normal
- Open the Arduino IDE
- 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
- Wire up the Rainbowduino so that it has power (see gotcha 1)
- Connect the Rainbowduino’s GND terminal to a power source’s GND
- Connect the Rainbowduino’s VCC terminal to a power source’s 5V
- The Rainbowduino’s power LED should light up
- Connect the Rainbowduino’s DTR header to the normal Arduino board’s RESET header (this is necessary)
- Link the Arduino and Rainbowduino so that the Arduino passes on data to the Rainbowduino
- Connect the Arduino’s TX header (digital pin 1) to the Rainbowduino’s TXD header
- Connect the Arduino’s RX header (digital pin 0) to the Rainbowduino’s RXD header
- Close the “Bare minimum” sketch; open the sketch that you intend to put onto the Rainbowduino
- In the “Tools” menu, switch the Board to “Arduino Duemilanove … w/ ATmega168”
- Upload the sketch
- The sketch will not be uploaded onto the Arduino, but will be passed to the Rainbowduino
- Unplug the RX/RXD and TX/TXD wires and remember to switch the target board back to “Arduino Duemilanove … w/ ATmega328”
Todo
- I’m still not entirely clear on how the Rainbowduino draws power
- 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
- 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
- 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