I have been twice at STEIM, both times to work on USB HID programming for Pd and Max/MSP. USB HID promises high performance and ease of use for custom built instruments, but working with it on the low level turns out to be brutal. I would have never gotten very far on the HID code I have written if it wasn’t for the quality time I spent at STEIM, working with STEIM people. The sad fact is that we were still not completely successful in completing everything that we wanted to get working, but there is some solidly working code that many people are using.
Any interesting project for me started at my first residency at STEIM. I wanted to do a quick demo of the Arduino so I started to write Arduino and Pd code to make them talk. Thru that experience I started developing the Firmata protocol and library for Arduino, Wiring, etc. Out of my frustrations with USB HID, I was able to make the Arduino much easier to use with programs like Pd, Max/MSP, Processing, Python, etc.