Assembling Your Colorduino
The RGB LED matrix has two rows of 16 pins on its underside.
|Side View of the RGB Matrix|
These pins fit into two rows of header pins on the Colorduino.
There are two possible orientations, but only one of them works.
Note the pin marked
1 on the Colorduino board and on the underside
of the matrix. In the pictures below, these pins are highlighted
by a red oval.
|Pin 1 on the Colorduino||Pin 1 on the RGB Matrix|
1 on the matrix with pin
1 on the Colorduino board, and then
carefully push all 16 pins in each row of the matrix into the corresponding
header pins on the Colorduino. You will probably find that you need
to push or pull some set of pins to make this work. Done gently
enough, this is OK. But because this fit is so tight, it’s probably a bad
idea to insert and remove the matrix frequently from the Colorduino. Fortunately,
that isn’t necessary.
Connecting the Colorduino to Your Computer
Many Colorduino-like boards do not come with any interface to a USB port.
To program them, you have 3 choices:
Use an AVR Programmer to download your program directly
to the board. This approach is necessary if you are installing a bootloader
on the board.
Use a second Arduino board to download a program.
Use an FTDI cable to download a program.
All three programming choices are described below. If you have a board
with a bootloader on it, and you have the FTDI cable then the easiest approach
is to skip directly to the instructions for
programming the Colorduino using the FTDI cable.
Program with a Programmer ###
All Colorduinos come with an ICSP “header”, which can be connected to
a “programmer” to program the device. In the photo on the left below,
the 6-pin ICSP header header on a Coloruino-like board is indicated by
a yellow oval. In the photo on the right below, a USB programmer
is connected to that ICSP header. The particular programmer shown
in the photo is called a “USB Tiny”; it comes with two cables, to allow
for connecting to boards with different (10-pin) ICSP headers; only the
cable with the 6-pin connector is needed to program the Colorduino.
|Locating the ICSP header||Colorduino
The big disadvantage of using an AVR programmer is that, any program downloaded
through the ICSP header will overwrite not only the existing program on the board,
but also the bootloader if there is one. (The bootloader is a small program that
watches one of the serial input lines to see if a connected device wishes to add
a second program to the board; unless that serial line is activated, the boot loader
executes, and then transfers control to whatever other program has been loaded on to
So why does anyone ever use a programmer to upload an ordinary sketch to
an Arduino-like board? Because either:
- their sketch needs every bit of flash memory the board has to offer,
even the 2K worth of memory normally occupied by a bootloader, and/or
- their sketch needs to start immediately when the board is powered on
or reset, and cannot tolerate the delay (which is actually pretty short)
that occurs when a bootloader is present.
Since neither of these conditions usually exist, and since a bootloader
makes it easy to program an Arduino without a special piece of hardware like
the programmer device shown in the picture above, one normally just
uses the programmer device just for the special purpose of downloading
a bootloader program.
To use the programmer, connect it as shown in the photo above at right, and then
connect its other end to a USB port on your computer. It is a good idea to
power the Colorduino board not via the programmer, but by a set of batteries
connected to the appropriate pins in on one of the two green terminal blocks.
After the programmer is attached to the Colorduino and to the computer’s USB
port, power on the battery pack.
Surprisingly, at this point, the Arduino IDE should not show that any
devices are connected on any USB ports. To burn the bootloader,
Tools menu on the IDE, choose
Programmer, and be sure that the
right type of programmer is selected (in this case, USBTinyISP). Then
just click on the last entry in the
Tools menu, viz.,
As an aside, a USB Tiny programmer costs about $$12-$$20 and is
available from big distributors like Adafruit,
Sparkfun, and many others. There are many
more modern types of programmers that will work as well.
Program using a second Arduino
Colorduino boards also come with two series of pins on the sides of the board
not connected to the RGB matrix, either one of which can be used for programming
the board. One of these series of pins is all female; the other is all male.
Choose whichever one matches the jumper cables you have available.
[TODO: Show a picture of each of the two rows of pins.]
You can connect either one of these sets of pins to a breadboard, and then
attach a second Arduino board which does have some USB interface (like an UNO)
to those pins.
[TODO: Show a picture of an UNO and Colorduino attached to a breadboard.]
Program using an FTDI connector
This is the easiest method of programming a Colorduino. The picture below gives an overview
of the wiring:
Jumper pins from the Colorduino circuit board are connected to an FTDI circuitboard.
On the other end of the FTDI circuitboard, a blue USB cable is attached; the other end of
that cable goes to your computer. The red and black jumper cables emerging from the bottom
of the Colorduino are attached to a battery pack.
The FTDI device might not be a circuit board as shown in the picture above; it could just
be a cable, where the FTDI chip is embedded in one end of the cable. A picture of
an FTDI cable is shown below:
An “FTDI connector” may be either a cable or a small circuit board that contains a chip, based on
a design by Future Technology Devices, Inc., which translates the signals from the header pins on
the Colorduino to the appropriate signals and connection for a USB port.
Two such devices are shown below:
|An FTDI interface board||An FTDI cable|
You can connect either one of two sets of pins on the Colorduino to the FTDI cable:
either use the female header pins, shown on the left below, or the male pins, shown on the right.
|Female header pins on the Colorduino||Male header pins on the Colorduino|
When making the connections between the FTDI cable or FTDI circuit board and
the computer, it is essential that the receive (RX) and transmit (TX) pins be
crossed; i.e., the TX pin of the FTDI board connects to the RX pin on the Colorduino,
and the RX pin on the FTDI board connects to the TX pin on the Colorduino.
The following table sums up the proper connections, either for an FTDI adapter
in the form of a small circuit board (left-most column) or for an “FTDI cable”.
The FTDI cables do not bring out a DTR line; in this case, the colors below
refer to the RTS line in its stead. Note that various manufacturers use
different colored wires, so the wire color alone might not tell you the
function of a particular pin. Two common color-function schemes are shown
in the table:
- One applies for FTDI cables that have a brown wire (i.e., cables
directly from FTDI or Adafruit); this is shown in the 2nd column.
- The other one applies for an FTDI cables that have a blue wire
(many FTDI-alike cables from Chinese manufacturers). This is shown
in the 3rd column.
|FTDI adapter||FTDI cable (brown)||FTDI cable (blue)||Colorduino|
When these connections have been made, the Arduino IDE should show
Tools->Port), that the that the
Colorduino is accessible through one of the serial ports. If that port
is not already pre-selected, then be sure to set its checkbox.
Then set the board type (
Arduino Duemilanove, which is
another Arduino board with the same chip (ATmega328p) as the Colorduino,
and which also lacks a USB port.
After the Colorduino has been programmed …
If you just want to sit back and enjoy your beautiful Colorduino,
there’s no need to keep it attached to your computer. Just
connect a 6V battery pack to the
GND pins of one of
the green power terminals on the board, and your Colorduino will play
until the battery dies.
[Show picture of the green terminal pins.]
Used this way, a collection of pre-programmed Colorduino’s
could convert an ordinary Christmas tree into an eye-popping delight!