Sinclair ZX Spectrum PS2 Keyboard Buffer

My intention is to use an Arduino Duemilanove (and eventually my own homebrewed clone) to replace the keyboard matrix of a 48k ZX Spectrum using the internal keyboard header in order to utilise a cheap and readily available ps2 keyboard.

The Spectrum keyboard is a 5x8 matrix (40 keys) with more detailed info here

I've seen something like this done with a microcontroller training board that uses a C8051F343 MCu here. My guess (without properly researching it really) is that the ATMega328p doesn't have enough IO lines, I'd just like to stay with an environment that I'm comfortable with.


I've written some code for the chipkit uno32 (arduino clone) that uses the existing zx spectrum rubber keyboard matrix to output the keys to a hyperterminal window. An arudino duo which can be flashed to act as a HID would allow the spectrum keyboard to be seen as a standard usb one.