Introduction: Colorduino Scrolling Text: More Characters!

Picture of Colorduino Scrolling Text: More Characters!

In this instructable you're going to learn how to do scrolling text on a RGB LED Matrix using the colorduino board from iTead studios. The colorduino is basically a RGB LED Matrix driver that takes a lot of the work out of driving LED Matrixes. In a combination with different libraries it is really easy to create cool effects and graphics with it. Its an inexpensive project and fun to play around with :).

Step 1: Parts

Picture of Parts

This project does not require many external components.

Parts List

 RGB LED Matrix
    - (this is the cheapest and the one I use)  Ebay           
    - (Available from colorduino site) iTead

    - iTead 

FTDI or Arduino
for programming

    - Sparkfun

Jumper Wires 
Male to Male  

    - Australian Robotics

The arduino IDE installed and basic knowledge of uploading sketches.

Step 2: Wiring the Colorduino

Picture of Wiring the Colorduino

The next step is to upload the attached code to the colorduino. To do this you can either use an FTDI adapter or another arduino. Since my FTDI adapter was broken i used my arduino to upload the code. This is good if you want put an Atmega328 chip into a breadboard and be able to program it. This method only works if you have an arduino with a replaceable chip.

1. First step to using the arduino as an FTDI programmer is to take out the Atmega328 Chip
2. Connect the wires as told in the Pin Connections table below
3. Change the board type in the Arduino IDE to: Arduino Duemilanove
4. Change to appropriate serial port

Pin Connections

Colorduino || Arduino 
DTR         ->  Reset
GND        ->  GND
TXD         ->   Pin 1
RXD        ->   Pin 0
VDD        ->   +5v


Step 3: Programming the Colorduino

Picture of Programming the Colorduino


To use the code provided you need to install two libraries. Installing libraries are easy and for this instructables all you need to do is download the zip folder and extract it to: Documents/Arduino/libraries folder and then restart the arduino IDE.


Adafruit GFX Library: Github
DinoTools Colorduino GFX Library: Github

Update: New Library Available!

Thanks to the wonderful work of Zane Carter and a bit from me. There is now a great library that can achieve scrolling text with one line! It supports up to 20 characters and has the same multidisplay abilities. Currently can only select one colour for the entire thing but multicolor support is being added soon.

//Scroll("String!", delay, textcolred, textcolgreen, textcolblue, bgcolred, bgcolgreen, bgcolblue, displaynumber)
//Scroll("Scrolling Text!", 100, 255, 255, 255, 0, 0, 0, 1);

Github Link:

OLD multicolored code:

Modifying the code to suit you:

Before you upload the code you have the chance to set the number of characters (currently only 3 options) but it is very easy to expand upon the code to add more characters.

Changing the Message:

As seen in the second picture, with the default code there are 15 possible character's to use in the scroll messages. It also supports ASCII codes. To use an ascii code, remove the ' ' and type in the code (Eg. a Love heart is 3; char scroll_1 = 3;)

Changing the Colors:

To change the color of the letters, you use standard RGB color codes. You can use a color picker like the one here to get the values as well (Eg. GFX_Color_t textcolor = Colorduino.color(R, G, B); //Scroll 1)
(Eg. GFX_Color_t textcolor = Colorduino.color(255, G, 255); //Magenta Colour)


After making sure you have selected the right board type and made the changes you need(Arduino duemilanove) you are ready to upload the code to the arduino. Just press Ctrl + U or the upload button and you're good to go!


Step 4: Plugging in the Matrix

Picture of Plugging in the Matrix

To connect the matrix to the colorduino, align pin 1 of the matrix to pin 1 on the colorduino. After plugging it you should see the message scrolling across the display!

Step 5: Demonstration and Final Thoughts

Picture of Demonstration and Final Thoughts

This code is just the start of the possibilities that the colorduino has to offer. You could make interactive displays, display graphics and pictures as well as making signs. Thanks for looking at my tutorial and I hope this has helped you in some way.


dancopy (author)2017-08-22

First, thanks for the tutorial - It helped a lot!
Is it possible, however, to use multiple arrays of this to display texts? Thank you

kamaljeetp (author)2017-04-11


I managed to remove my mega chip from my UNO board so it could be used as a ftdi programmer, however i keep on getting the error below and haven’t found a fix when uploading a example sketch to the colourduino, help would be appreciated.

many thanks.

Sketch uses 7,174 bytes (23%) of program storage space. Maximum is 30,720 bytes.
Global variables use 95 bytes (4%) of dynamic memory, leaving 1,953 bytes for local variables. Maximum is 2,048 bytes.

avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0xd4
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avr_read(): error reading address 0x0000
read operation not supported for memory “flash”
avrdude: failed to read all of flash memory, rc=-2
avrdude: stk500_recv(): programmer is not responding
the selected serial port avrdude: stk500_recv(): programmer is not responding
does not exist or your board is not connected

PoisonMondo (author)kamaljeetp2017-05-23

Try setting the board to Arduino Duemilanove

blowfelt (author)2015-01-23

Hi Guys has anyone managed this with more colorduino so that you can have an 8 by 32 matrix ?

PoisonMondo (author)blowfelt2015-01-23

I've tested this code with 2 colorduino's to form a 16x8 display. All you need to do is increment the display number value for each colorduino.

Tachyon (author)PoisonMondo2017-05-14

But does the library handle spanning the displays automatically or does this need to be handled by the user's code?

IE if I want to scan "some example text" across three displays, do I just put a "3" into the displays field and it all starts scrolling at display one and goes across to two and off the edge of three?

Tachyon (author)Tachyon2017-05-14

OK, I looked at the scrolltext (which I didn't realize was sample code) and it SEEMS like you just define the number of displays in the line

int displaynumber = 1;

And then the library handles it from there, starting the scroll at the display listed in the "Colorduino.drawChar" line. (display 1 in the sample code)

Is this correct?

PoisonMondo (author)Tachyon2017-05-23

No, this code was written quickly and it has no way of knowing how many displays are connected to each other. You upload the code to each colorduino, incrementing the displaynumber variable for each display


displaynumber = 1 | colorduino1

displaynumber = 2 | colorduino 2

displaynumber = 3 | colorduino 3

to form a 24x8 display.

PoisonMondo (author)PoisonMondo2015-01-23

EDIT: On the code page, use the download and install the scroll library. Once you install the scroll library, take a look at the example where you will find the displaynumber variable.

LakshmananC (author)2016-08-21
gusantorjmqntmReply5 months ago
Hello, I think it happened to me
sorry for not posting this before. I found out that using arduino ide 1.6.5, gives bad result, as stated below
just using arduino ide 1.0.5, alows me to run this GREAT CODE !! THANKS ! :)

As gusantor mentioned, it doesn't work with current versions of Arduino IDE. Can we do something to make this work with current versions of IDE? Or is there a better code available to make this work?

PoisonMondo (author)LakshmananC2016-08-23

I haven't personally touched the project in a while or looked for alternatives. I will endeavour to update the code in the next week or so. Keep checking the github.

jmqntm (author)2016-02-15

Hi and thanks for posting this Arduino/Colorduino instructable!, I have never been able to get the colorduino to work. I have read on some forums that the sketch code is not supported on later versions of Arduino. Curious.. What versions of Colorduino and Arduino did you test this on? Thanks! Jeff

gusantor (author)jmqntm2016-03-13

Hello, I think it happened to me

sorry for not posting this before. I found out that using arduino ide 1.6.5, gives bad result, as stated below

just using arduino ide 1.0.5, alows me to run this GREAT CODE !! THANKS ! :)

gusantor (author)2016-01-23

hello, I downloaded & ScrollTextV2.txt, copy libraries to my libraries folder, copy paste ScrollTextv2 to a new sketch. load to board.

I have a text scrolling but is tooooo slooooow and characters are flickering, it takes over a minute to display first "H"

may I do something to correct this (this happend with scroll speed t=200, changing it to smaller values doesn't affect this behavior)


PoisonMondo (author)gusantor2016-01-25

I'll take a look shortly

Maujabur (author)2015-11-24


I removed the 20 character limit at the library:

I just tested with one display. If somebody can use two displays, please let me know!

PoisonMondo (author)Maujabur2015-12-14

Merged your code to our repo, thanks for the help!

Maujabur (author)PoisonMondo2015-12-15

Thanks for the credits!

golfito1810 (author)2015-07-31

Re scroling text how do you speed up the scroling mine runs very slowly ,a very good tutorial it answerd some problems i had ps i am complete newbie ,thanks ,also i cannot get the examples to work from the github zip file compile and upload ok but blank matrix

PoisonMondo (author)golfito18102015-08-21

The scroll speed / delay is the second argument of scroll function:

Normal: Scroll("Scrolling Text!", 100, 255, 255, 255, 0, 0, 0, 1);

Fast: Scroll("Scrolling Text!", 50, 255, 255, 255, 0, 0, 0, 1);

Faster: Scroll("Scrolling Text!", 25, 255, 255, 255, 0, 0, 0, 1);

If you were using an arduino to program it, did you remove the chip?

Hi, I want to try this, but with the ATmega2560, what pins are what would have to connect ?, because it has not worked for me

please, I need your help, i connected RX and TX to the pins 0 and, an it doesn´t work

You need to have the chip removed to be able to use an arduino to upload. Another tip if you have done that is to set the board as "Duemilanove w/ Atmega328" as the board type

If you mean programming the colorduino with your Arduino mega then that is sadly not possible as the Arduino mega 2560 does not feature a removable micro-controller. You will need to use an FTDI adapter or something similar.