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.
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Noob - You don't need to reference a datasheet, but you will need to know basic power requirements.
See all skill levels
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
No reviews yet.
I don't understand, why wouldn't you just buy a Bus Pirate for the same price?
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...
what kind of connector should i put on my LED strip to use this?
I don't have any GPIO pins available on my BeagleBone Black because I'm using the Octoscroller cape. Can this be used to communicate between the BBB's USB port and an Arduino's I2C pins?
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" (http://www.sparkfun.com/products/9014). 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 linkm.thingm.com.
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!