Wednesday, 1 May 2013

ZX Spectrum USB Keyboard

Following on from the ZX81 USB keyboards I've been building, next comes the Spectrum. The Spectrum has a lot in common with it's predecessor, but there are a few differences to the keyboard. The main difference from a software point of view is that there are now two shift keys. What was the ZX81's shift key is now caps shift, and what was the . / , key is now symbol shift, and there are various symbols dotted around the keyboard in red.
From a hardware point of view, it uses the same 5x8 keyboard matrix giving 40 keys, but the two membrane tails are now at opposite ends of the keyboard, meaning it's not as neat as the ZX81 worked out. I've done a few of these in the past in a similar way to the original ZX81 keyboard, just with a long, thin board. Here I went for a thin strip to take the connections to the Arduino Leonardo.
Other than that, it was plain sailing, and I soon had a Sinclair ZX Spectrum USB Keyboard to add to the collection. Note that due to the internal layout, it doesn't look like there would be sufficient space for a Raspberry Pi, the Pi would be too tall. One option would be to remove the USB connector and the RJ45 Magjack, or alternatively, use a model A - even with 256MB, it's still 5,461 times more than the Spectrum originally had.
The ZX Spectrum USB keyboard (and the others) are now available to buy in the Tynemouth Software Etsy store, look out for more of these coming soon.

Note: I have stopped using Leonardo based boards and moved onto my own custom PCBs and firmware for ZX81ZX Spectrum and Commodore computers. There seem to be some issues using the Leonardo keyboard library with things like the Fuse emulator. If you plan to use an emulator, either see my Etsy store, or try the older V-USB based design.