
Every year around this time I feel the urge to write some low-level code. This year, in preparation for the HCI design studio class next quarter, I spent some days working on different ways to ease the connection between the Arduino hardware platform and Adobe Flash.
Based on Massimo Banzi's eth_Firmata code, I put
together a package to enable Firmata-over-TCP communication between Flash and an Arduino board with ethernet shield and Firmata 2 firmware.
Sources and installation instructions are available at
bitbucket.org/bjoern/firmata-eth/
On the Flash side, I also released the first public beta of the as3glue library for Firmata v2 at
code.google.com/p/as3glue/.
Here is my list of most-listened to albums for 2008. Most of these are new releases, although there are a few items that I just had not found before. As in previous years, most of these albums come from eMusic.
Crooked Still - Still Crooked (2008) & Shaken by a low sound (2006)
Rodriguez - Cold Fact (Re-release 2008, 60s)
Tunng - Good Arrows (2007) & back catalog
Tony Trischka - Territory (2008); Bela Fleck & Tony Trischka - Solo Banjo Works (1992)
Matthew Herbert Big Band - There's Me and There's You (2008)
Jazzanova - Of all the things (2008)
Sean Hayes - Flowering Spade (2007)
Balmorhea - Rivers Arms (2008)
Shearwater - Rook(2008)
DJ /rupture - Uproot (2008)
Horses Brawl - Horses Brawl (2006)
Ra Ra Riot - The Rhumb Line (2008)
Ursula Rucker - One Love (best of compilation - 2007)
Guilty pleasures:
Ladyhawke - Ladyhawke (2008)
Santogold - Santogold (2008)
I've had an ongoing conversation with several fellow hardware sketchers about good methods for prototyping interactive products with small screens and custom I/O. The hardware input side is taken care of by projects such as Arduino and Wiring; however, finding a suitable screen has been harder. For me, the ideal screen should be: high-resolution with pixel-perfect reproduction of source images, full-screen refresh at >10fps, able to display/mirror an arbitrary region of a desktop PC screen (so you can leverage any and all PC applications), wireless (for both communication and power), available in different form factors from 2"-8".
While the perfect match is still elusive, I've recently come across a useful solution that I wanted to share: DisplayLink screens.
DisplayLink uses USB to add multiple additional displays to a PC or Mac. These show up as regular additional monitors to the OS. Small screens can be USB-powered as well - so while they're not wireless, there's only a single cable. The first screens are just hitting (Japanese) streets now. I recently received a Century LCD-4300U - 4.3" diagonal, 800x480 resolution, bus-powered. These displays aren't cheap ($200) but very convenient. A larger 7" screen with resistive touch input (Mimo UM-740) is on order. Video playback is not a problem, screens a bright and crisp.
Other methods I've personally tried out that fall short(er):
Other approaches from friends:
Pictionaire, the team collaboration environment for large interactive tables I developed with Andy Wilson, Merrie Morris and Hrvoje Benko at Microsoft Research, is getting some press. John Brandon wrote a story for NetworkWorld which is syndicated and was covered on Slashdot.

I just finished rewriting OpenSoundControl firmwares for both Arduino and Wiring hardware. The firmware enables these hardware platforms to send and receive OpenSoundControl messages over a serial port. This can turn Arduino and Wiring boards into IO interfaces controlled by a PC. The main difference from prior implementations is that the source was written entirely using the standard libraries that ship with Arduino and Wiring, so users can easily compile and upload to their boards.
A set of Pd patches (pictured above) is available for testing and realtime control.
Currently, ARDUINO_OSC and WIRING_OSC offer the following functionality:
* Digital and analog input pin value changes are sent from the microcontroller to a PC
* Digital and PWM output pins can be controlled at runtime with messages from a PC
* Digital pins can be toggled between input and output at runtime with messages from a PC
* Reporting of digital and analog input messages can be controlled at runtime with messages from a PC
Many thanks to Hernando Barragan for sending a WiringMini board for testing.
Links: ARDUINO_OSC, WIRING_OSC, Pd patches