This is so neat! A few years ago, the Oak Ridge National Lab created “Tiny Titan“, a demonstration of how supercomptuers work using a cluster of Raspberry Pis. It’s a scaled down model of the Titan supercomputer. To visualize what each note of the cluster is doing, blink(1) USB LEDs are plugged into each Raspberry Pi, indicating what its up to.
Now you can more easily add “Neopixel” WS2812 LED strips to your blink(1) mk2 with the “blink1 LED strip adapter”. This is a simple PCB that breaks out the tiny 3-pin socket on the blink(1) board to a standard 0.1″ spacing for LED strips.
The design is completely open source and you can get your own made for a few bucks by going to the blink1-ws2812-adapter page on OSHPark.
Below are some photos showing how you can solder one up to a blink(1) mk2 circuit board. It assumes you’ve already taken the board out of the enclosure as described in a previous post.
Blink1Control2 v2.0.4 has been released and it fixes several issues. Please update to take advantage of the fixes. Blink1Control2 is the official desktop application for controlling blink(1) USB LEDs and connecting them to the Internet.
You may not have known, but blink(1) USB notification LEDs have a secret: they can drive 16 extra LEDs in the form of “NeoPixel” WS2812 LEDs. This is what was behind the “blink(16)” project.
If you take apart a blink(1), you’ll see it has three tiny plated holes. These are the three needed by WS2812 LEDs: +5V, Gnd, and Data.
The website Electrkonik Kompendium has created a detailed set of articles on installing and using blink(1) on a Raspberry Pi. They go through compiling the tools, using them to play around, and then hooking blink(1) to display system services status or user login state via cron. Even though it’s in German, it’s pretty readable via automatic translation.
In November 2016, I (Tod) was fortunate enough to speak at the Hackaday Superconference. It was an incredible conference, one of the best I’ve been to. For ThingM, I’ve mostly been working on software lately, getting Blink1Control2 to a usable state, so speaking at a hardware conference was a bit daunting. But I do consider blink(1) to be an “Internet of Things” device, even though it’s tethered to a computer. ThingM was created as a ubiquitous computing design studio, essentially an IoT company before IoT. In my talk I propose using the much richer computer GUIs to configure IoT devices, and one way I’ve been liking making computer GUIs is what I’ve been using for Blink1Control2: Node.js and Electron.
Mike at Hackaday did a great writeup of my talk and the video of it is below. (I can tell I’m out of practice giving talks after having my head down in code for over a year now :-)
In late 2015, we started looking to update our Blink1Control GUI application for blink(1). The app has some strange UI choices, acts oddly on certain systems, and is hard to maintain. We started again looking for a solution to the problem we’ve tried to solve twice before: how to create a single cross-platform application that works well on every platform (including Linux). The app must integrate nicely with hardware and networking, have strong open-source backing, and can be maintained by a small staff (like one person, me).
It turns out there’s not a lot of solutions to this laundry list of desires. But we think Electron (the app framework created by GitHub and behind Atom and Slack) looks like a good choice. So for the last several months, Blink1Control2 has been in development and testing.
Redesigned “Event Sources” UI to more easily manage multiple ways to trigger blink(1)
Greatly improved File/URL/Script support
New “meta-patterns” for on-the-fly creation of color patterns
Redesigned UI that looks great on HighDPI/Retina systems
So many many bugfixes
New bugs we haven’t found yet
Features not yet in Blink1Control2
Battery / CPU / Network level checking
POP email support
Certain API server calls
Blink1Control2 is written in Node.js and Electron. Electron is an amazing open source system created by Github for using web technologies to write desktop apps. Its most famous example is the Atom text editor.
We’re very excited about the new Blink1Control2. One of the design changes was to make the “Event Sources” modular, so new event sources could be added easily. We’re not there yet, but we’re getting very close. If you have an idea of a neat event source we should add, let me know!
Twitter has a great API for searching through tweets. But it can also be a bit daunting if you’ve never interfaced with APIs before. In the Node.js universe, there’s a great package called “twit” that makes it really easy to use the Twitter API. And what better way to show off your Twitter API knowledge than to hook it up to a blink(1) light, which is just what @jbulava did with “twitter-streaming-blink1“. The code is a single well-commented file that needs only a few lines of code to do searches and acting on tweets.