ZX Spectrum + USB Keyboard


I had an old Spectrum + 48k keyboard for years. When I say “for years” I mean more than 20 years. Someone gave it to me in case it is usefull for repairing my brother’s computer that, despite spending hours and hours searching for it in my porent’s house, I have never found.

Well I decided to leave it to fill with basic electronic parts and some cables to connect it to my PC..but time passes fast and the “projects” is never done.

What’s next? Technology advanced and when I find some time for the project (more than 20 years later), I find hundred of related web pages!

Many PS2, some complex schemas, but the easier is that implemented wit Arduino micro controller.

I decided to use Alistair MacDonald code for programming an Arduino Nano. He uses Pro Mini for Zx Spectrum (rubber keykaps) but I wanted to have my keyboard always conected in “developent” mode to reprogram it in real time “as needed”, based on my own user experience.

What I didn’t know jet was that it was the begginig of a kind of “keyboard fever”. The first one of many retrokeyboards!

What do I need?

One Arduino Nano or Arduino Pro Mini

Three resistor (2x2KΩ, 1×68Ω)

One ZX Spectrum +

FCB connecors (somehow difficult to find)

Some cables

How do I start?

The software

First, you better check your Arduino Genuino version. The one that I am using at this time is 1.8.5

Next, remmber to incude “UsbKeyboard.h” in your project. That files will alow you to use the HID (Human Interface Devices) for the Keyboard and use the mapped key codes. UsbKeyboard.h also includes usbdrv.h (the Virtual USb Port) that is responsible for sending the keys through the seril port.

You will find the vusb-for-arduino libraries in Gidhub repository.

You have to copy the USB Keyboard dirctory in the “libraries” directory that it is normaly located in your Documents\Arduino folder.

The hardware

Of course you need some cables,the FCB (flexible circuit board connectors), a tin solder, USB cable …

For me the FCB connector was the most difficult part to find. Write me if you need some directions.

Some photos:

The Circuit board
The Circuit board detail
Arduino soldered (front)
Arduino soldered (back)

What’s next

I really enjoyed my time with this ZX Spectrum + USB keyboard. But, despite being customized for my prefered Caps and Symbol Shift combination keys, the keyboard is not much confortable. In fact I am writing this post with it (it took me long time) and I still need the full version keyboard for those key combinations that I learned time ago and I am unable to change (like Ctrl+C, Ctrl+v).

Therefore I made my next proposal: to connec an Amstrad CPC-464 computer to my PC as a keyboard, that posseses better “mechanical” keycaps with springs!



  1. Hi, this is a comment.
    To get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.
    Commenter avatars come from Gravatar.

  2. I was recommended this website by means of my cousin. I’m not certain whether this submit is written by means of him as nobody else recognise such designated about my trouble. You’re amazing! Thanks!

Leave a Reply to A WordPress Commenter Cancel reply

Your email address will not be published. Required fields are marked *