Tuesday 1 December 2015

Day 1 - Original ZX81 USB keyboard

This is day 1 of the Advent Calendar of USB keyboards. To get started, I thought I'd go back right back to the start and review the first USB keyboard conversion. This is a ZX81. This is my ZX81. This is one of a few ZX81's I've had since the early 1980s. Once it's ULA had failed, it became a source of parts to keep the other ones going. All that was left at this point of this one was a board that had been partly stripped of parts, and a case with a damaged keyboard membrane.
I was after a small USB keyboard to drive a media centre PC under the TV, and I though this would be suitable for the job. I initially made a shield for an Arduino, with zener diode voltage droppers, in accordance with the VUSB library. I think that is my Arduino Duemilanove under there, maybe a UNO.
Once that was working with a few test buttons, I moved onto using one of the RWAP replacement membranes.
That all seemed to work fine, so I transferred to a handwired padboard version, using the ATmega328P from the Arduino, which fitted inside the ZX81 case.
After writing that up, several people contacted me and asked me to build boards for them. And so it began...
The design of that board hasn't really changed much since that first prototype.
Later versions of the board kept the same layout, now on a PCB with surface mount parts and an ATmega8U2 with custom firmware, rather than the VUSB library. I have kept this one as I assume someone will want to put it in a museum one day. Some of my keyboard will be going into a museum next month, but that's a different matter.
Various revisions of the board followed. The later ones have a speaker which makes 'tick' noises as you press a key, like the ZX Spectrum did. This feedback makes typing a bit easier.
You can order a ZX81 USB keyboard from my Etsy store, or buy a conversion kit below.


Tune in tomorrow to open another window on the Advent Calendar of USB keyboards.

2023 Update

USB Keyboard Controller Kits are available from my Sell My Retro store:

I have been through quite a few revsions of these boards since this post, and now have two versions available, one for a ZX81 case, and an alternative to use a ZX81 membrane in your own case. (the reason for the difference is the orientation of the controller to the membrane, in the ZX81 case, it is upside down)