Simple Rainbowduino Firmware

Hi everyone!

Since Seeedstudio’s “sample sketch” for the Rainbowduino is super confusing and too complicated for…most…every possible usage, i wrote this very basic and simple firmware: simple-rainbowduino-jmr.
Right now it can be used to drive a RGB-Matrix of LEDs. But since a lot of people, including myself, use the rainbowduino to drive individual leds, i also wrote a function to address single unicolor leds. however, this fun is right now buggy. actually it’s working in another project of mine, dunno why it doesnt work here…
so have a look at

v1 is the current version. feel free to add issues, to change the code, use it any way u want. also, i’d really appreciate help!

“Since Seeedstudio’s “sample sketch” for the Rainbowduino is super confusing and too complicated for…most…every possible usage”
:open_mouth: I am sorry for this.
Thanks for share your project, :smiley:

I’m sorry but i really think this is the opinion of most people with an Rainbowduino!
The sample sketch is simply strange. A communication protocol is implemented but the sketch lacks basic features like addressing a single led!! It’s bloated with stuff only useful for few people and not commented!! I heard this from other users of this forum and other ones as well…

hej jmr,
this looks just like the thing i am looking for.
unfortunately i can’t get it working – which rainbowduino firmware is this written for? i am running ver. 3 from

this is not written for any rainbowduino firmware…this is a rainbowduino replacement firmware…

ah… haha… i see
great thanks
this works :mrgreen:


I saw you post and looked at your firmware. Thank you for sharing. Actually I am working on a LED Matrix “Sign Board” for a low budget theater project.

They need a long text scroller. I soldered a prototype 24x8 (192) single color LED matrix ( same as the rainbowduino extenstion board 0.9b".
We want to cascade 10 matrices. Do you have any suggestions on how to implement a text scroller that cascades over multiple rainbowduino matrices?

Thank you for any suggestions.


i think i would make one rainbowduino the master and all the other slaves. the master should have one large buffer (if it fits the tight space) containing the data for all the rainbowduinos and transmits the buffer parts to the according slave which displays the buffer. however, i’m not quite sure an atmel 168/328 is big enough for the pretty large buffer and if serial or twi is fast enough for ten rainbowduinos…think that depends on your desired refresh rate.
i encourage you to make some calculations and to write some sample code! if it works out you may want to create a fork from my little project… :slight_smile: