Converting the BlinkM into the world’s tiniest Arduino

blinkm_arduino

The BlinkM “Smart LED” is a great little device on its own accord. It allows for complete control of its RGB LED using a built-in microcontroller, enabling the user to do a wide array of things that normally require PWM to accomplish. At just over half an inch square, this little device might also be the smallest Arduino on the market.

The BlinkM packs an ATiny85 micro controller, which allows it to be flashed with the Arduino bootloader thanks to the people over at the [High-Low Tech group at MIT]. They did some tweaking of the Arduino IDE configuration files and incorporated some core library code created by [Alessandro Saporetti] to get the job done – all of which is available on their site.

Once the code is uploaded to the BlinkM, you essentially have a micro Arduino running at 8MHz with a built in LED and 2 I/O lines (5 if you snip off the LED). It’s a great device to have on hand if you feel like a full-fledged Arduino would be overkill in your project.

Stick around to see a video tutorial of the reflashing process.

18 thoughts on “Converting the BlinkM into the world’s tiniest Arduino

  1. Wow, what is with the lack of proficiency nowadays? Is noone on this site capable of programming an atmel microcontroller without “arduino” crap on it? Geez.

  2. @kyle: Trash the arduino all you want, but it allowed me to get into the whole micro controller deal. By actually getting results before i spend 100′s of euro’s and days of learning. Now if i ever feel the need to switch (or do more), al least i have some kind of knowlage to start it…

  3. The smallest Arduino ever? Not for long, I guess – their ATtiny packages still have pins! A TQFN package, when placed diagonally, will probably fit right under the LED. Wouldn’t that be nice?

  4. Sicki, BlinkMs originally had ATtiny45s. For over a year now they have ATtiny85s.

    Lincomatic, your article is great! I’ve been using something similar for doing ATmega development.

    Besides the low memory issues, one of the other reasons why there isn’t an Arduino bootloader for the ATtiny85 is there is way to write-protect a memory block, like there is on the ATmega. Otherwise, you run the risk of nuking your bootloader.

  5. is it coincidence that i RT’d this from @todbot on twitter yesterday?

    i was looking into the sproutboard stuff and saw a blinkM used as a visual indicator for a network monitoring device, did a quick google and and ran across this article. Hmmmmmmm

    i want one.

  6. that’s stupid !
    There is not and never will be an arduino.
    An arduino is an arduino thanks to two features:
    1) the bootloader, to re-program the AVR chip quickly using a minimum of pins and without having to plug/unplug lots of things.
    2) the easy-to-use UART (rx/tx) to monitor values and debug when nothing act as expected (with serial.print, etc..).
    … the ATtiny doesn’t support bootloader and doesn’t have UART.
    this post should be named “using part of arduino API in the BlinkM’s ATtiny”

  7. Smaller, bah. How about someone try to make the biggest Arduino? 0.5 square meters, say, with so many step-up and step-down power regulators on board that the thing consumes 50 watts. Built into a custom CNC-milled aluminum enclosure “for EMI protection”. With not one but two USB-RS232 converters piggybacked (so the external connection is… RS232), with 5W LEDs on fan-cooled heatsinks as power/rx/tx indicators… all telling the time in morse code on a 3mm blue LED.

    Sadly, someone’s probably already done that. “Why does my Arduino draw five amperes? Because it can, of course!”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s