Handy Hijinks with HID

In the world of hardware... peripherals / devices can be roughly lumped into four groups along a continuum that represents the amount of difficultly you might experience when trying to communicate with them from Flash...

| ----- HID --+-- Emulation --+-- Tweakable --+-- Custom ----- |

HID devices, like a keyboard, are an easy case right? If your Flash app has focus - it gets a keystroke. This would be awesome... but not all HID devices subscribe to the generic keyboard/mouse methodology. Which means the more custom your HID device is the more likely you will need to push it to the next group (on the right) on the continuum. One fyi before we move on: HID/emulated device output can spill into applications where it isn't wanted. More on that in a bit.

This brings up an important point. Some manufacturers realized a long time ago that supporting the lowest common denominator for input would mean better adoption rates for their products... point and case would be the SureSwipe from MAGTEK. Devices that support keyboard emulation are a smart move - and they will probably be Flash friendly out of the box. Most manufacturers of RFID, barcode, and magstripe readers are down with keyboard emulation.

The sweeter and more delicious your devices get... the harder it will be to fit them into the first two categories. Yes... I'm talking about GPS. With some hardware tweaking and a purposeful design approach (i.e. sole application / kiosk with attached gps) even complex devices can still be within reach of a Flash plug-n-play solution. Easy candidates for the 'big tweak' include IR, game controllers, and GPS. I have an example GPS rig I'll share with in a couple weeks.

On the upper end of difficulty are devices that just don't belong any lower on the continuum. For this group - communications need to be routed to specialized handlers for processing. In essence, hiding them from everyone but valid consumers. As an example - tweaking a GPS for keyboard emulation is a handy trick... until the user pops open Word and gets a document full of NMEA sentences. If tweaking a device has the potential to interfere with the user experience... you should probably roll a custom solution so that you can properly insulate communication channels.

And now it's time for some candy... a rig for rolling your own keyboard emulation solution.

It doesn't look like much you say? Yeah... it's dirt simple but for what it lacks in sex appeal it makes up for in flexibility. There are enough digital / analog pins left over to raise some serious rukus... like:

Wii Controller + Arduino + EasyInput = Flashii Game Controller
IR Receiver + Arduino + EasyInput = AIR TV (Fit-PC2 anyone?)
GPS + Arduino + EasyInput = Flash Navigator (zero config / plug-n-play GPS)

Eh. I need to stop before I give up all my ideas to conquer the world! More in a bit.