Sometimes you just want a little extra light in a room. With RGB LED tape, you can put light anywhere. But controlling its brightness and making it the color you want is a bit harder. A BlinkM MaxM can easily control LED tape, either as a stand-alone device, with an Arduino, or your computer via a LinkM. Stand-alone mode is great if you want a specific color or color pattern (the BlinkMSequencer makes this really easy) For this installation, I added a FreeM to the MaxM to let you control the light with a standard infrared TV remote control.
Another nice thing about the LED tape is that when it’s off, you can’t see where it’s installed.
Here’s a video showing how it all works.
First up is to wire up the RGB LED tape with extension wires to go from the tape to the MaxM. This is so you can hide the MaxM where ever you feel like. Cut the wires to the length you need and solder them to the LED tape and a 4-pin male header like in the photo below. Note because the LED tape switches the Red and Green lines you’ll need to switch them because MaxM’s lines go V+,R,G,B.
With that done, you should be able to hook everything up and have the MaxM drive the LED tape. The LED tape takes +12VDC. The amount of current it needs depends on the length of tape your driving. Chances are you have a 12VDC @ 1000 mA wall wart power supply from an old piece of computer gear. That should work fine.
If you want your accent light to play a constant color or color pattern, you’re now done and can place the LED tape where ever you like, like on top of a window sill. Peel off the sticker backing and stick the LED tape where it should go.
Adding FreeM
If you want to go the step further and add a FreeM to give your light a remote control, then follow the steps on the Using FreeM with BlinkM MaxM page.
But it’s really not much more than plugging the FreeM into the bottom of the MaxM.
For Maker Faire this year I made a second version of my BlinkM Cylon: BlinkM Cylon mkII. This is not a very cost-effective way of getting a Cylon effect. It however is a good way of showing how to wire up multiple BlinkMs with a long cable, using our new WireM cabling kit for BlinkM. And unlike normal Cylon circuits, this has full RGB color effects and gradual fading.
Here’s a quick video showing it in action.
BlinkM Cylon mkII consists of:
- 13 BlinkMs (one for each of the tribes of Kobol)
- one WireM cabling kit for BlinkM, consisting of IDC connectors and ribbon cable
- an Arduino
- two 4.7k resistors
- a single push-button
- 9VDC wall wart to power it all.
- laser cut acrylic enclosure
Below are all the files needed to recreate your own BlinkM Cylon. Click any of the images for larger versions.
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.
While FreeM is mostly designed to work with BlinkMs and MinMs, it can be made to work with MaxMs. FreeM cannot supply the power that MaxMs need (250mA and FreeM can only supply up to 100mA), but there are other ways. One way to do it is to power the FreeM from the MaxM’s built-in 5V power supply.
To do this, get a MaxM, a FreeM, a small scrap of wire, and a 12VDC power supply.
Remove the “pwrsel” jumper and wrap the small piece of wire around all three pins of the “pwrsel” jumper. Then plug the FreeM into the bottom of the MaxM and plug in the 12VDC power supply to the MaxM.
The MaxM will power the FreeM and the FreeM will control the MaxM.
You can also now control other LED clusters like flexible RGB LED tape.
Make a long-lasting, rechargeable battery pack for your BlinkM MaxM, BlinkM, or BlinkM MinM using just pliers, no soldering!
BlinkMs are perfect for portable, stand-alone uses. There are many ways to hook a BlinkM to battery sources. Here’s one way that works for all BlinkMs.
BlinkM Battery Pack: Step 1: Get all the parts together
All BlinkM-family devices can have their firmware updated. This makes them great for tiny development boards for ATtiny processors. ReflashBlinkM is an application that makes it easy to put back the original firmware or update a BlinkM to the latest firmware.
Previously you needed an AVR ISP programmer like the AVRISPmkII or the USBtinyISP. Thanks to the ArduinoISP sketch that ships with Arduino, if you have already have an Arduino, you can easily reflash your BlinkM with new firmware.
The ReflashBlinkM application is a tool for Mac OS X and Windows that uses ArduinoISP to help you reflash BlinkMs to their default firmware.
This is what it looks like:
Here’s one way of hooking up a BlinkM to an ArduinoISP:
And here’s a video of a BlinkM MinM being reflashed:
Ever wanted to use any pair of pins for I2C on Arduino, not just the dedicated pins on Analog 4 & 5? Me too, so I made a quick little Arduino library called “SoftI2CMaster”, available in the “blinkm-projects” Googlecode repository.
It’s still a work in progress, but it can write data pretty successfully and do it over longer cables than normal.
For the VIMBY/Scion Hackerspace Challenge, I created an array of BlinkM MaxM-powered accent lights for the device we made. Because the I2C cable was longer than a few feet, the normal Wire library that BlinkM_funcs.h uses to communicate with BlinkMs couldn’t be used. This is because the Wire library assumes a perfect bus. If there is any noise or other bus problems, the Wire library will currently lock up. For the SoftI2CMaster library, I wanted it to be very tolerant, even lazy, about bus problems and also have more tunable timing to let you slow the bus down. Of course, you still need pull-up resistors on the two lines. I’ve found using 2.2k resistors to be good.
The SoftI2CMaster API follows Wire’s API pretty closely:
SoftI2CMaster(sdaPin,sclPin) — create an new SoftI2CMaster for the two pins specified
There is a simple demo for BlinkMs that this library currently lives in. It’s called “BlinkMSoftI2CDemo” and shows off a simplified BlinkM_funcs called “BlinkM_funcs_soft.h“. The entirely of BlinkMSoftI2CDemo is shown below.
const byte sdaPin = 7; // digital pin 7 wired to 'd' on BlinkM
const byte sclPin = 6; // digital pin 6 wired to 'c' on BlinkM
#include "SoftI2CMaster.h"
SoftI2CMaster i2c = SoftI2CMaster( sdaPin,sclPin );
// must define "i2c" before including BlinkM_funcs_soft.h
#include "BlinkM_funcs_soft.h"
byte blinkm_addr = 9;
//
void setup()
{
Serial.begin( 19200 );
Serial.println("BlinkMSoftI2CDemo");
BlinkM_off(0);
for( int i=0; i< 100; i++ ) { // flash the blinkms
BlinkM_setRGB( blinkm_addr, 255,255,255 );
delay(10);
BlinkM_setRGB( blinkm_addr, 0,0,0 );
delay(10);
}
}
void loop()
{
byte r = random(255);
byte g = random(255);
byte b = random(255);
BlinkM_setRGB( blinkm_addr, r,g,b );
delay(10);
BlinkM_fadeToRGB( blinkm_addr, 0,0,0 );
delay(1000);
}
void BlinkM_off(byte addr)
{
BlinkM_stopScript( addr );
BlinkM_setFadeSpeed(addr,20);
BlinkM_setRGB(addr, 0,0,0 );
}
Random experiments, circuits, code, rapid prototyping examples, sometimes things to buy, and occasionally tunes by Tod E. Kurt.
Reach me at tod [at] todbot.com
Crash Space
Crash Space is a Los Angeles-based hackerspace. Come visit! Become a member! Learn Arduino or how to solder!
Yay BlinkMs!
BlinkM is a smart LED. Imagine an LED with a tiny computer inside, one that can be any color and have a life of its own. You can buy them now from one of our global distributors.
ThingM
A device studio that lives at the intersections of ubiquitous computing, ambient intelligence, industrial design, and materials science.
Recent Comments