Creative Commons images are CC BY-NC-SA 3.0


added to your
shopping cart

In stock 131 in stock
29.95 1+ units
26.96 10+ units
23.96 100+ units

Description: LinkM is a USB adapter that addresses two of the most frequently-requested BlinkM features. It enables you to program BlinkMs without setting up a separate I/O board, such as an Arduino. It also lets you program or control multiple BlinkMs simultaneously. Plug it in, plug in a BlinkM, fire up the BlinkM Multitrack Sequencer, and start programming BlinkMs. It requires no drivers (when used with most operating systems), additional software or hardware. BlinkM's sold separately.


  • Driverless. Identifies itself as a USB Human Interface (HID) class device, which nearly every operating system supports without requiring additional drivers.
  • Has no exposed components. Its hard plastic case makes it appropriate for long-term installation.
  • Synchronizes groups of BlinkMs with a metronome signal so that their patterns do not drift in time (this even works when the LinkM is only connected to a power supply, such as an iPod USB charger).
  • Works as a generic USB->I2C device, making it compatible with hundreds of standard I2C devices.
  • Contains an I2C buffer chip for driving longer I2C bus cables.
  • Open Source firmware, available from Google Code
  • Open Source libraries for C, Java and Processing that work on Mac OS X, Windows XP/7 and Ubuntu Linux, also available from Google Code.
  • Acts as an I2C master with built-in BlinkM metronome for synchronizing groups of BlinkMs so that their patterns do not drift with time
  • Additional I/O pins on the board. AVR hackers can crack open the case to get access to digital I/O pins and use LinkM as a standalone microcontroller platform.


Comments 15 comments

  • right when i headed for here from seeing this on ThingM’s site, this showed up.
    MY LIFE IS COMPLETE, well except for maybe HTC dying…

  • Does anyone know if you can change the I2C clock speed on this device from 100KHz to 10Khz?

  • Can this be used to read and write to I2C EEPROMs?
    How hard would it be? (I’m fluent in c++, and c#; proficient at c and can make my way through java if necessary)

  • If you feel like a little hacking, you can also try to get I2C from your PC/Laptop’s VGA connector:
    Interfacing I2C the easy way

  • (New to i2c…) But what if I would like to use this adapter with i2c devices requiring much more power than what this can provide? For example few servos with “Openservo” ( Can I just hook up beefier power supply to i2c vcc and gnd lines or will it fry something?

  • “Acts as an I2C master with built-in BlinkM metronome for synchronizing groups of BlinkMs so that their patterns do not drift with time"
    You have this twice

  • Nice turnkey solution to interface with BlinkM…with a decent Java library available…which could use more JavaDoc. ;)
    My only complaint is the hardware packaging. This module could have been far shorter…and trying to stuff it and a female-to-female USB adapter into a small-sized illuminating device (e.g., build status orb, Munny) is difficult. I find that arrangement preferable to leaving the dongle plugged into my PC and then remoting to the illuminating device with a ribbon cable. In my config, you can use a standard USB cable to connect the illuminating device and your PC…but this dongle is far too long for that arrangement for most f my applications.
    Sure, I could bust out a soldering iron and solve the problem, but seriously, if I was inclined to do that, I probably wouldn’t have bought this over and arduino mini in the first place. :)
    Wish that it was a third of it’s length…and was USB female by default.

  • Hey I have a question about this nifty litte usb key,
    A quick search of HID on sfe turned these up, and I don’t know much about I2c, Vusb, etc. But what I’m looking to do is emulate a keyboard in several win/mac machines… Such that I could send a serial string to something in the usb port of each computer and it would appear on the computer as if it had been typed.
    Possible with this? Love the form factor/price

  • Let me say this is a great device! I’m working on a project that needs I2C support (happens to also be a LED driver, the PCA9635PW) and I’m using the LinkM as a generic laptop to I2C interface.
    One issue I’m having however is speed. I’m using the linkm-tool from the SVN checkout to control my devices. I’ve altered the source code for that tool to repeatedly call ‘usbhidGetReport’ with 3 bytes of control data for my devices. Adding timing calls around 256 iterations of this I’m seeing about 4 Kbit/s throughput.
    I’m sure there’s some loss in translating the USB serial data into the I2C format, but given that the max speed for I2C is 3.4 Mbit/s and USB is at least 1.5 Mbit/s, that’s at least 3 orders of magnitude difference.
    Am I missing something? Have others gotten faster transfer rates through this device? Thanks!

    • With the factory firmware, LinkM shows up as a USB HID device with 16-byte report packet size. Since USB HID places a limit on the report update rate of 50Hz (I think), this puts an upper limit on the throughput.
      However, the LinkM firmware is completely open source, based on the V-USB project. And LinkM has a USB bootloader on-board, and corresponding host-side command-line tool based on V-USB’s BootloadHID. So updating the LinkM firmware with your own for higher throughput is very possible.

  • Is there a stable, complete build of a program I can use this with that doesn’t require much/any computer programming knowledge to use

    • You can use our Sequencer software to program up to 8 BlinkM device channels simultaneously through a LinkM. It doesn’t require any programming knowledge to use. You can download it from

  • Any one used this device with DOT.NET VB or C#?

    • pretty late on this one, but yes, you can use .NET MicroFramework to wrap the native calls. NETMF supports I2C out of the box. I wrote a wrapper in C# to run on a Fez Domino (also sold at SF). The code can be found here.

    • There are both Java/Processing and C APIs for it. If you can get VB or C# to talk to Java/C libraries, it should work. Also, the firmware is Open Source, so if you’d like to make a build that works with DOT.NET we’ll certainly point people to it in the future. Thanks!

Related Products