Hi my humble project implements button HID keyboard in fancy "emergency-button" casing, which you can reprogram to be any key or combination of keys you wish (open source hardware and software). It is made using Texas Instruments TIVA TM4C123 which is some kind of new incarnation of Stellaris micro as far as I know. The device was prototyped using Launchpad (
http://www.ti.com/tool/ek-tm4c123gxl) which is great and I really love it. Then the PCB was designed (the launchpad schematic was invaluable) and programmed with the same Launchpad it was tested on. PCB mounted inside the case looks like that (eagle files are in my SVN, links in original blog post):
The case is some (rather cheap like $8 here where I live) Chinese "emergency-button" which originally was meant to turn a machine off in case of accident or something:
Firmware implements two interface USB HID device. HID Keyboard Descriptors were found on the Internet and modified by myself. Then additional software was made (GTK+ & C++) which interacts with the button (which at this time is also visible to the OS as oridinary keyboard) and enables the user to store almost any combination of keys (8 control keys + 6 regular keys) in the device. Main window of the app looks like this, these buttons you see below can be toggled. The combination of buttons pressed in will be sent to the host:
Finally after user presses the button, the combination is sent. It may be Play/pause (original intention before the reprogramming idea), Power, or Ctrl-Alt-Del and so on. Like hardware inverted keyboard-shortcut. More info at
http://www.iwasz.pl/electronics/the-any-key/ (source code and PCB attached).