Skip to main content

Home-made real keyboard for ZX81

ZX81's keyboard is frustrating to use. Especially for games. One too many times, you find your finger isn't quite over the pad when you have to make that crucial jump...

It's easy to use an emulator, but personally I don't get the same buzz.

My first computer, probably in '82 was a secondhand ZX81 which had been screwed to a board along with some kind of aftermarket keyboard (which really wasn't very good).

So for that reason I feel perfectly OK about sorting myself out with something similar now.

After looking at many options (including the ZX-Key, which looks excellent and the Minstrel keyboard which has tactile switches) I noticed while recapping a Spectrum +2 that the keyboard connections are very similar to the 81's:
There are more lines because the later spectrums have many more keys. But some study of the matrix diagrams made me think that they were compatible* if you take the first five and the first eight lines from those ribbons.

I *really* like these keyboards. They're very usable. You can type on them easily, which I don't find with the 'plus' keyboards. This one is from a very dead black +2A which I have decided is now a donor.

This first experiment was a prototype or proof of concept. I used Dipsy here, who has an issue 3 board.
The first step was to 'break out' the ZX81 keyboard connections. I took the connectors off the PCB and used a ribbon cable to extend them outside the 81's case. The ribbon doubles back neatly under the PCB, out of the expansion slot at the back while still allowing the ram pack to fit.
I take a 'minimum damage' approach, so rather than trim the ends of the ribbons, I made slots in the connectors. These are easy to replace, and the +2A membrane isn't! Note that the connections don't exactly match the 81's*. I found that two half-rows were switched and had to reverse connections 3 & 4 on the 8-way connector**. I find this a little bizarre because otherwise the spectrum keyboards appear to be an extension of the 81's.
That worked well. I found that even the space bar and shift keys work as expected. The only odd thing is that the small symbol shift keys on the Spectrum keyboard make a '.' character and the '.' key doesn't work. I may look into that sometime but it's not a big deal.

The problem with this is that so many bits are flapping around on the desk. But this wasn't meant to be the finished solution.

For phase 2, I decided that I wanted the zeddy's own keyboard to remain usable, and for the cable to be unpluggable at both ends. And for the whole thing to be easily reversible.

The hardest part of this whole project was finding the right connectors. I wanted them to be easy to plug and unplug but to be robust when in place.  I found that these headers come in male and female and are spaced correctly.  This is Tinky Winky, who has an issue 1 board and more importantly already has a ZX-CCB fitted for a really great composite output.
 I don't suppose it matters whether you attach the male or female connector to the board. I settled on doing it this way and having the females on both ends of the ribbon. These were very secure when in place. There's no picture but I soldered the ribbon to the female connectors so that it was already 'doubled back' and sits very neatly under the PCB and goes out of the expansion port. I used a 14-way ribbon and didn't bother to remove the spare line in case it was useful later.
 This is t'other end (the underside of the real keyboard). The PCB edge connector solved a lot of problems. I glued it into place and I presume will prise off if necessary. This one doesn't have the locator so both ribbons slot in. I glued a piece of card to the non-contact side of each ribbon so that they pushed firmly into the edge connector (a cut-up business card was perfect). The edge connector's two rows meant that the ribbons (one up, one down) would fit neatly.

The reason for the additional header pins is because the pins on the edge connector aren't quite long enough to make a firm fit into the plugs. This also means that I can see easily where the plugs go (and the addition of a spot of tipp-ex will make sure they always go the right way round.)
 Here's the finished result looking very neat indeed and working very well. Some rubber feet finished the job off (high enough to give clearance for the connectors underneath). Those are pretty grippy and I am amazed at how solid and positive the keyboard feels now.

The next step is to look at some of those spare keys and see whether I might be able to hook them up. Particularly the cursor keys - for some games it'll be nice to have those doubling-up the 5,6,7,8 or possibly Q,A, O and P.

I had been planning to make stickers for the keytops (possibly by cutting up a membrane keyboard overlay). But I've abandoned that idea. This looks so neat as it is and It's easy to look at the zeddy's own keyboard for reference.

** edit. When I first wrote this post I said 2&3 on the 5-way connector which is wrong.

Comments

Popular posts from this blog

RC2024/10 - my entry

A while ago I made this MIDI module for RC2014: It works but a better design would have its own serial chip and port decoding.  As it is, it provides the MIDI interface and a clock signal for the second SIO2 serial port. This means that it requires a little setting up and will only work for RC2014s with an SIO2 (and port B not already used). I think people might reasonably expect it to be plug-and-play and self-contained, ie do all the serial itself. My challenge to myself is to:  learn how to connect a serial chip (probably 68B50 ACIA) to receive the incoming MIDI and to serialise outgoing MIDI design the module, including the port decoding write a library so that it can easily be used on any RC2014. Potential applications include a MIDI sequencer and using incoming MIDI to trigger notes on the AY or SID sound chips. Entering the Retro Challenge 2024 (aka RC2024/10)  has given me an incentive to get on with this! I'm happy to see several more entries in the RC2014 catego...

IM53 8080 birthday cake

 Each year I've been trying to get more creative with ideas for Spencer's birthday cake. The plan this year was to incorporate LEDs in place of candles. I eventually settled on an Altair / IMSAI / PDP -style computer since those are the type of computers that inspired his RC2014. The IMSAI 8080 has the most colourful switches as well as a name that I could twist. The thought that it could show randomly flashing lights (as if the computer were running) and that it could also play a game of 'kill the bit' was very appealing. A plan formed to use a capacitive touch pad on the cake itself. The first job is to bake the fruitcake. I often use a 7" square tin and one of those cut in half and rearranged makes a cake of suitable proportions.  Even after taking a slice off the faces to make them nice and square, there are still some rounded corners, so after putting on the marzipan, I used more marzipan as a filler to flatten the whole thing. Even though I wanted to end up w...

How to convert images for TMS9918A graphics on the RC2014

For me, graphics capability is essential for an 8-bit computer. My graphics chip of choice for the RC2014 is the very capable TMS9918A. It has 15 colours, sprites, several modes and a max resolution of 256x192. It makes arcade-style games possible, such as Tut-Tut above.  I enjoy simply displaying images and have a bunch on my CF card (my 'hard drive') and have written image viewer and slideshow apps to display them. Some useful links: Convert9918 Tutorial of Convert9918's settings Multipaint J B Langston's TMS9918A video module my own TMSEMU video module my respository of TMS9918A software, games and .s2/.sc3 images Image conversion I did dabble in writing my own utility to convert .png images but then settled on the Multipaint app which can open a png in a MSX 'screen 2', allow you to tidy it up with paint tools and save as a .sc2 file. (An sc2 file is little more than a video-memory dump and so it's easy to blast that back into vram to display the image....