I’ve been wanting to tinker with RGB LED matrix for a while, and finally was able to do so earlier this month. It was fun programming some effects, game of life etc. on a 8×8 matrix using Arduino. Here is a Christmas ornament that I programmed. It shows a color changing star followed by scrolling text featuring Christmas related phrases.

The colors appear diffused in the video, but they are much more vivid in reality. I need to learn how to use my camera properly lol.


No custom circuitry is required. I ordered a color shield and couple of 8×8 matrix LEDs from China (ebay) and got this to work. Here is the parts list:

RGB LED 8*8 Matrix Driver Colors Shield For Arduino – $16.50
Matrix 8×8 RGB LED Full Color Dot Square Display 60x60mm Common Anode Arduino – $3.84
Arduino Uno –  I had this already.

Total cost – $20.34


Here is the sketch: https://github.com/rmadhuram/ChristmasScroller

I ran into one limit when I tried to add more phrases. If I added more than 4, it kept crashing and random LEDs would light up. I then figured there was a 2K data limit on the character strings you could have in your sketch for Uno!

Wish you all a merry Christmas!

7 Replies to “Arduino Christmas Ornament

  1. Hi friend! (geekraj) You are showing the following: fatal error: fonts.c: No such file or directory.
    I created a folder called “fonts” inside the arduino libraries folder and put the file “fonts.c” inside; is correct? I am using the arduino IDE 1.6.5 and 1.8.5; I would like your help,
    Thank you

  2. The error in fonts.c looks like it has been resolved; is now displaying the following: ‘PixelRGB’ was not declared in this scope;
    Can you help me? I’m using Arduino 1.8.5
    Thank you

  3. Hi Raj,

    I love this. I’m trying to make something similar with a colorduino that just flashes through some different symbols (like the asterik, but then other, non standard characters). I can change the asterik and turn off the scrolling text but I can’t figure out how to make symbols display on a loop.

  4. Hi Brid,

    Thanks for the note!
    If you want to make the symbols scroll, the message for scrolling is fed from the greetings[] array. All you have to do is to pack that array with symbols. You can use the ASCII code instead of the actual character for special non-standard characters.

    If you want other effects like appear/disapper, fade in/out of individual symbols, you need to modify the code. Should be fairly easy to do. I’m using the data from fonts.c to build the representation in the 8×8 buffer. Let me know if you need any more help in understanding the code.


Leave a Reply

Your email address will not be published. Required fields are marked *