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.
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.
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)