in Arduino

My Internet (and MIDI) controlled Necktie

Pinoccio Nexopixel Necktie 1

A necktie with NeoPixels sewed into it with conductive thread. Powered by Pinoccio

Internet connected wearable devices are getting more and more common these days. There are many devices available off-the-shelf right now, but there is something special about being able to imagine and create your own. To accomplish this, I truly think the best platform right now is to use a Pinoccio.

Pinoccio is a tiny little Arduino compatible board with Internet and connectivity built right into its DNA. I recently picked a kit up and I’ve been impressed by its ease of use. If you have Arduino experience, you can most definitely program a Pinoccio. It even has a scripting language (bitlash) baked right in, so only if you really need to, you need to go to the Arduino IDE. Moreover, the guys at Pinoccio provide a pretty intuitive web-interface and a Rest API to access your boards remotely from anywhere with Internet access.

Back of the tie, showing the brains. Only 1 digital pin used.

The next ingredient on this specific recipe is a handful of Adafruit’s awesome Flora NeoPixels. NeoPixels are chainable, individually addressable RGB LED’s with a built-in current driver. Conveniently, the NeoPixel chain only uses 1 digital pin on the Pinoccio, leaving a lot of free room for interacting with other sensors or devices on your project.

To drive the NeoPixel chain with the Pinoccio, I wrote a library that extends the Pinoccio scripting language environment with functions to interact with the pixels right from the web or the API. I’ve made the library available at https://github.com/urtubia/NeoPixelStripAnimator

Internet Controlled Necktie

After the library and sketch are loaded into the Pinoccio Scout controlling the NeoPixels, the sky is the limit!
Some silly ideas:

  • For Software builders, light up your tie when builds start failing.
  • For executives at the office, light up your tie 5 minutes before your next meeting.
  • For dancers (count me out), put it on disco mode and be the center of the party!!
  • For bikers, increase your visibility at night by putting the tie on your head.
  • Have your tie stream the news in morse code.

I know these ideas are a bit crazy. What’s crazier though, is that by combining different API’s, these ideas are definitely doable without much effort.

As a proof of concept, here is a demo of the tie responding to scripting commands through the Pinoccio web interface.

MIDI controlled Tie

Being the musical being that I am, I had to connect this Necktie to MIDI events. I did this using Ableton and Max4Live, which allows to easily capture and react to MIDI Events. The patch I created in Max forwards MIDI note-on messages to a Pinoccio Scout connected to the serial port, which would then forward this message through its native Mesh Networking to the Pinoccio on the Necktie. The topology looks a bit like this:

midi2tieroute

The Max4Live patch used to send serial messages on “note-on” to the Pinoccios is this one:

https://dl.dropboxusercontent.com/u/12500564/MaxPatches/PinoccioNoteToSerialMessage.amxd

Screen Shot 2014-05-24 at 12.41.51 PM

Although I haven’t measured the exact latency, it is definitely good enough for a nice visual effect. A demo of this setup can be seen in here:

A more complete project would be to have several Pinoccio/Neopixel devices listen to the signals from the one on the serial port. This could be easily accomplished thanks to message broadcasting mechanisms built right into the Pinoccio mesh networking commands.

Summary

Pinoccio opens the possibilities for Internet connected wearable devices (or Things, in general). Here I’m showing my first project using this platform; an Internet/MIDI connected Necktie with NeoPixels.

Working with this platform is a breeze thanks to its Arduino compatibility, baked-in communication facilities and its helpful community. I’m pretty happy with the results and definitely anxious to see what other projects people on the community can imagine with this platform in the near future.