Ok, bit of explanation first. We have an iMac set up as a 'democratic
jukebox' at Hackspace Manchester. The idea being
that anyone can put music on it, and it plays the entire library on
shuffle during our hack sessions for a bit of background music.
The problem is, of course, some people have an... odd taste in music, so
sometimes the jukebox ends up flipping between Aqua and Cannibal Corpse
for ten minutes, and the horror of this was just too much!
Enter the PANIC button.
The button uses a minimus board.
The minimus is a carrier for the AT90USB162, an AVR microcontroller with
onboard USB hardware, which means it can be programmed to show up as any
USB device. Before getting the button I modified one of the pieces of
LUFA demo software, a media keyboard, and stripped it down to just read
the one button on the minimus. When the button is pressed, it sends the
keycode for next track.
The button's housing is a joke
that played an alarm and flashed when pressed, I ripped its guts out to
get to the switch. After finding the switch contacts on the original
board, i soldered on two wires to connecto to the AVR.
Next, I stripped off the USB connector from the minimus, and added a
1m USB lead directly to the pads, to make it fit in the old speaker
housing section of the button. I connected the leads from the button to
PD7 and GND on the minimus, the same as the onboard button. This has
the handy side effect that if the button is pressed while being plugged
in, it boots into DFU mode, allowing me to upgrade the firmware easily.
I cut a slot in the casing for the wire to escape, and added a couple of
cable ties for strain relief.
Press Button, Song Skips, Panic averted!