What's this?

I have seen a video about the Creative Labs Prodikeys range of products - these are computer keyboards with a row of piano keys attached to them. I instantly wanted to have one. (More info on these weird things)

Unfortunately, when searching eBay I could only find a "Prodikeys DM" which is the PS/2 version - no USB, no DIN jacks... There is also some proprietary "driver magic" going on: The included Windows XP software sends some "magic" commands to the keyboard in order to activate its MIDI capabilities. After that, it sends MIDI data to the Windows MIDI subsystem. This, unfortunately, does NOT work with PS/2-to-USB dongles or any non-XP operating system :-(

So: We need a specialized PS/2-to-USB adaptor. That's what this is.

The Solution

Since PS/2 is a very simple protocol, it is easy to use an Arduino to "speak PS/2" without using any additional parts. This part is quite easy. What's left is the whole USB MIDI/HID keyboard stuff... LUFA for the rescue!

The trick is to split the problem up into two parts: a PS/2 part (talking to the Prodikeys) and an USB part (talking to the computer). This can both be done on one regular Arduino UNO R3.