48k Spectrum as a USB keyboard

Had it not been for Sinclair's early machines, my life today would undoubtedly been very different. Chronic supply shortages meant that I had to wait a while before I got my first Spectrum but it only fuelled my youthful enthusiasm and I progressed from BASIC to Z80 assembly language (in those days, there was precious little middle ground) and played games. A lot of games.

I even had a replacement keyboard which did away with the rubber keys to provide more accurate input, which of course was critical when timing jumps in Jet Set Willy. And more comfortable when writing code, too.

dk'Tronics keyboard
dk'Tronics keyboard

I didn't throw the old rubber key case away though. It was squirrelled away in the loft for the next 30 years until I found an wonderful little project on the Internet that someone had undertaken; to turn it into a USB keyboard.

A perfect companion to a Spectrum emulator running on it's spiritual successor, the Raspberry Pi.

For this, I needed to order in a few parts:

  • A couple of ZIF connectors to connect into the existing keyboard membrane. Strangely, I could only find these for sale from the US.
  • A donor USB keyboard. I used the same one as the original project. This took a month to arrive from China. To my surprise, it's far worse to type on than the original Spectrum.
  • A soldering iron and some rusty soldering skills.

48k spectrum
As nature intended

The build itself was pretty straightforward, with the only wrinkle being figuring out from which direction to count when wiring up the pins.

And it works! Maybe due to its age, one of the ribbons needs to be bent just so, and it's actually usable enough to play some games. Alas, not all keys work. I found a small piece of paper underneath the membrane which I evidently placed there 30 years ago to try and apply a bit more force to the N and M keys - these were frequently used as the "fire" keys in the common QAOP Up/Down/Left/Right layout, and must have taken quite a hammering and they don't appear to work at all now.

Happily, you can buy new membranes from a small group of dedicated hobbyists and mine only took a couple of days to arrive - from exotic Stoke.

There's plenty more hacking to be done before I'm done with this. A joystick interface connecting to the GPIO pins should be simple enough. But ultimately it must be possible to cram the Pi into the Spectrum case itself...?