Thursday, October 7, 2010

BlinkM Hello, Video Guides, Example Code

This is a BlinkM:
BlinkMs are “smart LEDs”, a type of smart interface component. A BlinkM consists of an ultrabirght RGB LED backed with a microcontroller with built-in knowledge about 24-bit color spaces, color fading, and color pattern generation. All in a package 0.6” wide. You talk to it over I2C, a serial protocol spoken by many different things. (Arduino speaks it, as do Basic Stamps, and your PC) And you can have over 100 BlinkMs on the same serial bus, each individually addressable. Here’s how they can hook up to an Arduino:

BlinkMs are available from SparkFun (US) and Little Bird Electronics (AU). It’s hard to show in just static pictures how fun and easy it is to play with BlinkMs, so here’s a few quick video guides.

Video Quick Start Guide

A video version of the BlinkM Quick Start Guide.

Playing with BlinkMTester

A demonstration of one of the example Arduino sketches “BlinkMTester”, which lets you exercise a BlinkM by typing simple commands to the Arduino.

Exampe Code

There are a couple of examples of how to talk to BlinkMs all zipped up in You can also peruse them unzipped if you like. The examples are predominately for Arduino currently, but any I2C master will work. Some of the examples so far:

  • A simple serial-to-i2c gateway for PC controlling of BlinkM (for instance via Processing or the BlinkM Sequencer)
  • A general tool to play with a single BlinkM
  • An example showing how to communicate with multiple BlinkMs
  • A demonstration of how to write BlinkM light scripts with Arduino
  • Control the hue & brightness of a BlinkM with a Wii Nunchuck

More examples will be added periodically.

For the Arduino examples, a convenience library called BlinkM_funcs.h has been created. Just drop this .h file into your sketch folder and call the functions to start playing with BlinkM.

The complete list of functions is below, though you’ll probably only use a few of them for a particular project.

BlinkM_beginWithPowerPins(byte pwrpin, byte gndpin);
byte* cmd, int cmdlen); BlinkM_setAddress(byte n
BlinkM_sendCmd(byte addr
,ewaddress); BlinkM_setFadeSpeed(byte addr, byte fadespeed);
byte addr, byte red, byte grn, byte blu); B
BlinkM_setTimeAdj(byte addr, byte timeadj); BlinkM_fadeToRGB
(linkM_fadeToHSB(byte addr, byte hue, byte saturation, byte brightness);
domRGB(byte addr, byte rrnd, byte grnd, byte brnd); Bli
BlinkM_setRGB(byte addr, byte red, byte grn, byte blu); BlinkM_fadeToRa
nnkM_fadeToRandomHSB(byte addr, byte hrnd, byte srnd, byte brnd); BlinkM_getRGBColor(byte addr, byte* r, byte* g, byte* b);
te addr, byte script_id, byte len, byte reps); BlinkM_writeScriptL
BlinkM_playScript(byte addr, byte script_id, byte reps, byte pos); BlinkM_stopScript(byte addr); BlinkM_setScriptLengthReps(b
yine(byte addr, byte script_id, byte pos, byte dur, byte cmd, byte arg1, byte arg2, byte arg3); BlinkM_writeScript(byte addr, byte script_id,

byte len, byte reps, blinkm_script_line* lines);

And More

For more information, including a datasheet, example code and sequencer application for Mac/Windows/Linux visit

If you want to talk about BlinkM, leave a comment or participate in discussions on ThingM’s Satisfaction page.

Related Posts Plugin for WordPress, Blogger...
Disclaimer: All the information in this blog is just gathered from different sites in the web and placed here and I am not the owner for these content

Popular Projects


My Blog List

Give Support

Give Support
Encourage me Through Comments & by Following