After my recent experiments with the Logos RGB backpack I stumbled upon the Colorduino (a cousin if not a descendant of the Rainbowduino), which is a very interesting little device! It not only controls the individual colors, but can vary their brightness (something the Logos backpack doesn’t offer).
The two devices cover different use cases: the Logos backpack is really more of an I2C raw display leveraging the memory-limited ATtiny2313V, while the Colorduino with the Atmel ATMega 328P can do much more heavy lifting on its own in terms of direct processing.
Ordering the Colorduino: I looked around and found a “version 2.0” Colorduino board from a place called HobbyKing at a decent price (about $23 USD shipped from Hong Kong after a small discount).
A word about HobbyKing: I read MANY scathing reviews about them (quality and shipping times being big issues), but decided to take a chance ordering this since it doesn’t have a lot of moving parts, it was at a very good price and I was paying with PayPal which offered some modicum of reassurance.
The Colorduino arrives: The verdict on the purchase itself? A bit of a mixed bag but generally positive. First, it arrived surprisingly quickly! I took the slightly more expensive “registered” airmail route ($1 more than basic, which is still way cheaper than “EMS” or whatever). I ordered it early 6/1, it claimed to be shipped out on 6/4 (took a couple more days for HK Post to show tracking info), left HK on the 8th, arrived in New York (?!) on the 10th, and arrived at my post office here in the San Francisco Bay area on the 12th! Not bad at all… I was fully expecting to see this no earlier than the end of the month if not sometime in mid-July.
The fit and finish on the board? Eh… it’s not quite as clean and precise as the pictures. The LED connectors were tilted off-center making it tricky to plug the display in, and NOBODY tells you what pin 1 on the LED matrix itself corresponds to (see the video). However, as soon as I gave it 5 volts it lit right up and displayed a little demo it shipped with!
Programming the Colorduino: There’s lots of info in Lincomatic’s post, particularly in the comments. Though I found versions elsewhere, I ended up grabbing the plasma demo directly from Lincomatic’s GitHub repo for the Colorduino.
Update: I’ve created my own repo (in part a fork of Lincomatic’s repo) in order to update it, add the original demo my board came with, and add other things I happen to come up with in the future. You can check it out on Github!
I also want to add a note of appreciation to the owner of the tinkering-arduino repo on GitHub. It got me un-stuck as I tried to get the original demo working with the Arduino IDE. I may pull elements of that into the combined demo as well.
I also stumbled upon the schematic for the “2.0”, as well
as different demo the demo the board shipped with (see above) that will probably require some work to convert now works exactly as it did when I received it (there’s not a whole lot of info out there actually, but I did manage to track down the originals at least). I’m not really sure what makes it a v2.0 other than a slightly different connector or two, and the scarcity of info makes me think this board is otherwise identical to the v1.3 (and judging by some of what I found, some entities were doing little more than slapping their name on the files – yeah it’s LGPL but at least give the original authors and editors credit if you’re just making a copy of the file! Ugh.)
Anyway, I realized I had no easy way to program this thing, so I ordered SparkFun’s Basic FTDI board (from CanaKit by way of Amazon) to do the job. It’s a keeper! Note that I Ieft it on the default 3.3V setting and it worked perfectly fine – it’s 5V-tolerant and the 5V Arduinos seem to do fine with 3.3V serial signalling – but as noted below do NOT connect the 3.3V line to anything! Just make sure the ground is properly connected to the same ground as the LED display. (The usual disclaimer of liability applies – know what you’re doing before you do it!)
I then decided to try uploading the ColorduinoPlasma demo. I opened the project file with the Arduino IDE (the 1.5.x version worked fine for me) and imported the libraries by select “Sketch -> Import Library… -> Add Library…”, then selecting the Colorduino folder within the libraries folder (e.g.: …..\Colorduino-from-git\libraries\Colorduino) That this will copy the folder with those library files into your workspace’s library folder (personally I’d like to learn how to keep them local to the rest of the project but… not today).
Connecting the Colorduino: For convenience I used an Uno as a power source and tapped the 5V and ground from there for the VCC and GND on the Colorduino, then connected my FTDI board to the same common ground (but you DO NOT need or want to connect the 3v3 line from the FTDI board to anything!) I connected DTR to DTR, RX to TX and TX to RX (crossover), selected Arduino Nano as the board and the serial port for the FTDI board. I then clicked the compile/upload button and after a few seconds of loading the demo started right up! **
Here’s a quick video of the ColorduinoPlasma demo in action on my board (sorry – no video of the demo it originally shipped with – wish I had that source code as well!):
** Well, it worked like a charm once I finally figured out the right board type, the right way to write the serial lines, the right COM port, and how to coerce the library into the right place! I had some help from the Arduino forums where I verified my wiring and found the board type to use. Think of my post here as saving you a whole lot of time! 😀