BlinkM controller / programmer and general USB-to-I2C adapter
C HTML Processing Assembly C++ SourcePawn Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
docs added pics Apr 23, 2015

LinkM -- USB to I2C adapter for BlinkM Smart LEDs

LinkM datasheet:

README for LinkM

2010-2015 Tod E. Kurt, ThingM

Hosted on Github at


This project contains the following directories:

  • c_host -- C library for talking to LinkM

    • linkm-tool -- Command-line tool for exercising C library
  • java_host -- Java library for talking to LinkM

    • -- Command-line tool for exercising Java library
  • processing_apps -- Several applications using Java library and Processing

    • BlinkMSequencer2 -- Multi-channel light sequencer
    • BlinkMScriptTool -- Helps write text light scripts
    • TwitterBlinkM -- Turns BlinkMs colors from twitter stream mentions
    • OSCLinkM -- OSC gateway for LinkM
    • LinkMLibTest -- Simple tests of LinkM Processing/Java library
  • tools -- Misc tools

    • linkm_load -- mass bootloading tool
    • linux_usb_setup -- fixes USB permissions on Ubuntu & other udev Linux
  • schematic -- LinkM device schematics in Eagle format

  • firmware -- LinkM device firmware code

  • bootloadHID -- LinkM device bootloader firmware and commandline tool

    • firmware -- firmware for bootloader
    • commandline -- commandline host-side tool to upload new firmware


The build process for all LinkM software except the Processing apps is expected to be done entirely from the command-line using standard free Unix-like tools such as "make" and "gcc".

There is a script that will build the host-side code on all OS platforms.

Host code dependencies:

  • The Java library in "java_host" depends on the C library in "c_host"
  • The C library in "c_host" depends on library in "bootloadHID/commandline"

On Mac OS X you will need the following free tools:

On Windows you will need the following free tools:

On Ubuntu Linux you will need the following free tools:

  • build-essential - sudo apt-get install build-essential
  • libusb - sudo apt-get install libusb libusb-dev
  • Sun JDK - sudo add-apt-repository "deb lucid partner" && sudo apt-get update && sudo apt-get install sun-java6-jdk


In general you should have everything you have for the host code above, and:

On Mac OS X:

On Windows:

On Ubuntu Linux:

  • "sudo apt-get install avrdude avr-libc avr-gcc avr-binutils"

Bundling BlinkMSequencer2 for Multiple Architectures

A. Bundle for Mac OS X

  1. Open BlinkMSequencer2 in Processing
  2. Choose File -> Export Application, choose "Mac OS X"
  3. In Finder, open linkm/processing_apps/BlinkMSequencer2/application.macosx
  4. Add Icon: 4a. Right-click "", choose "Get Info" 4b. Open "linkm/tools/bundle_bits/thingm_log-10.png" in Preview. 4c. Select All, copy, then select icon in Info inspector, and paste
  5. Right-click "", choose "Compress ..."
  6. Rename resulting zip as ""
  7. Publish release

B. Bundle for Windows:

  1. Open BlinkMSequencer2 in Processing
  2. Choose File -> Export Application, choose your "Windows"
  3. Bundle with Java with these 5 command-line commands:
   cd linkm/processing_apps/BlinkMSequencer2/
   unzip ../../../tools/bundle_bits/    
   cd ..
   mv BlinkMSequencer2_windows
   zip -r BlinkMSequencer2_windows
  1. Publish release

C. Bundle for Linux:

  1. Open BlinkMSequencer2 in Processing
  2. Choose File -> Export Application, choose "Linux"
  3. Bundle with the following 3 command-line commands:
   cd linkm/processing_apps/BlinkMSequencer2
   mv application.linux BlinkMSequencer2_linux
   tar cvzf BlinkMSequencer2_linux.tar.gz BlinkMSequencer2_linux
  1. Publish release