Having seen a few things lately, including the Bluetooth Keyboard from Elite made to look like a Spectrum (wrongly called the Recreated Spectrum as it does nothing but act as a Bluetooth keyboard) and the Vega, a Joystick Spectrum with too few buttons, and some USB keyboards made from retro computers I decided to give it a go. I had a dead 48K Rubber Key Spectrum, so removed the mainboard for a possible later repair. I found the keyboard tails had been cut off too, so first I had to order a new keyboard membrane from Sell My Retro which took a couple of days to arrive.
While awaiting the membrane I looked up some stuff on how others had interfaced the keyboard to USB. It seemed the best bet was an Arduino, something I’d never used before so worth a go. So I found a simple looking explanation at Altoids Drone which had an in depth look at the keyboard matrix, and a little about Arduino. I ignored the Arduino stuff, ordered a couple from Ebay, and the appropriate stripboard and connectors and waited for all the bits to arrive. Once it was all in, I soldered the two keyboard connectors and some wires to a bit of stripboard and tried programming the Arduino UNO I had bought. It didn’t work. If I had read more about the Arduino I would have known that only certain models have the USB connectivity like the Leonardo used by the Altoids Drone project. Order another Arduino then.
Compatible apparently has different meanings on Ebay, as the “Leonardo Compatible” Arduino Nano I bought wasn’t compatible. Finally I bought an Arduino Leonardo from Amazon
This was the one I needed but required soldering the wires from my adaptors to the Arduino, no big deal but I can usually screw up this kind of thing in seconds. Luckily this time all went well. All that was left was programming the Arduino, using the pre-written program from Altoids Drone (or sketch as it’s called in the Arduino World, see I learned stuff) I installed the Arduino programming IDE onto my Debian computer and dived in. Only seven attempts later and it seemed to have done the programming. I tested the keyboard membrane on the desk plugged into Arduino and via USB into my PC. Another partial success, I had typing stuff on the screen but all the buttons gave the wrong letters. A look back at the matrix confirmed I had the 8 address lines round the wrong way. Turning the connector to the address lines put everything right.
I hot glued all the bits inside a Spectrum case with the new membrane and now have a USB Speccy keyboard which plugs into my Raspberry Pi like this