Ghetto Pixels - Building an open source BlinkM. Unless you've been living under a digital rock for the last few years, or just simply aren't interested in flashing lights, you'll already know about the awesomeness that is the BlinkM from ThingM.
It's a very small PCB featuring a high power LED that responds very easily and cleanly to commands you give it. Devices like BlinkM's are often referred to as LED Pixels, because they can be linked together in fairly long chains, but still remain individually addressable (you can set the colour of each one to be different). Right now, I'd like to give out mad props to ThingM and todbot, without whom there would be no BlinkM, and the world (or at least youtube) would be a much less colourful place.
The aim of this instructable is not to take business away from ThingM, in almost all cases I would encourage you to buy a blinkM or two if you need them in your project, but there are some reasons why it's good to have alternatives and these are the ones I'm thinking of: CyzRgb - codalyze - CYZ_RGB: An alternative firmware for [ BlinkM] - A software playground. Version Beta 1 BlinkM is a Smart LED produced by ThingM: BlinkM is a “Smart LED”, a networkable and programmable full-color RGB LED for hobbyists, industrial designers, prototypers, and experimenters.
Just connect it to an I2C bus and start sending commands like "Show RGB Color" or "Fade to HSV Value" and so on and so forth (it does much more; see the human-readable data sheet). The original BlinkM firmware from ThingM is closed source due to licensing issues, so CYZ_RGB was written to provide an open-source implementation which can be shared and extended to support additional features. The latest release implements all documented features of the original firmware with the exception of the built in light scripts which are sacrificed to make room for the extended features of CYZ_RGB. In addition to the stock features of the BlinkM firmware, CYZ_RGB implements a 16-bit PWM routine and a logarithmic dimming table to provide smoother fades and more accurate color mixing. Browse the source code.
Download. BlinkM Smart LED as the Smallest Arduino. Did you know you can run Arduino programs on tiny BlinkM Smart LEDs?
It might make BlinkM the smallest Arduino so far. To use a BlinkM as an Arduino, all you need is the free Arduino software, a low-cost AVR programmer, some wire, and a BlinkM. Here’s a quick video showing how it all works. BlinkM Capabilities as an Arduino The BlinkM board doesn’t have nearly the I/O pins and other features of a real Arduino board. And if you snip off the RGB LED, the three I/O lines used by it can be used as analog or digital inputs.
Most libraries will probably not work without some modifications. Software Setup To enable the Arduino software to program BlinkMs, you’ll need to teach Arduino about new “Boards”. The BlinkMuino.zip zip file contains everything you need. Unzip the BlinkMuino.zip file, and copy the resulting “hardware” folder into your Arduino sketchbook folder. Restart the Arduino software and the “Tools” -> “Board” menu should now have entries for BlinkMs. Hardware Setup Have Fun! New BlinkMSequencer Features. ThingM’s Multitrack BlinkMSequencer has been updated to work with both LinkM and with Arduino running the BlinkMCommunicator sketch.
Download: New Features and improvements include: LinkM and Arduino connectivity supportPreviously, you used the new Multitrack Sequencer if you had a LinkM and the older single-track sequencer if you had an Arduino. Now the Multitrack Sequencer has Arduino connectivity suppport. To use: Load the BlinkMCommunicator sketch onto your Arduino Unplug the Arduino, plug in your BlinkM, plug back in the Arduino Choose the “Connect to Arduino” item in the File menu Gradient creatorIt’s now easy to create smooth gradients between color cells. Fixed colorchooser same-color-twice bug One of the biggest pet peeves we’ve had with the standard Java ColorChooser we use in the sequencer is the fact you couldn’t select the same color twice in a row.
BlinkM controller / programmer and general USB-to-I2C adapter.