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

ZX81 reversible internal 16k upgrade

T his post is an upvote for Tynemouth Software's  ZX81 reversible Internal 16K RAM upgrade . Their instructions are easy enough for even me to follow and don't involve cutting tracks. This is the ZX81 I've had out on display and used whenever I wanted to. It's an issue 1 and was probably a kit judging by some very untidy assembly. It has a ZX8-CCB  composite video mod and an external keyboard fitted. On board it has two 1k x 4-bit chips.  The ZX81 originally came with 1k on board. Thanks to a trick with compressing the display in ram, that was enough to type and run a small program but you soon felt the limitations. Back in the early 80s, the solution was a 16k ram pack which plugged into the back[1] and this is the way I've been using this particular machine. These ram packs are notorious for 'ram pack wobble'. Even if fastened into place, you can still randomly find your work disappearing. This is a very reliable solution using a more modern 32k chip (half

Driving NeoPixels with Z80

I 've long been thinking about a version two   RC2014 LED matrix module . I've had a matrix with a MAX 7219 on a module. It's a nice enhancement. But there's only so much you can do with a single-colour LED array right? Wouldn't it be cool to have RGB LEDs?  At Liverpool MakeFest I saw a wall-sized ping-pong ball NeoPixel display and picked up some NeoPixels with the intention of making one. Possibly driven by my RC2014.  I enjoy learning about protocols and have had some SPI devices working with the RC2014 - bit-banging SPI works really well because it doesn't care about timing. NeoPixels really do care about timing though. From Adafruit's web page about their 8x8  NeoPixel matrix: If there's one thing I want to get across in this blog post, it's don't just accept what you're told . Question everything. Learn about what's going on and find out why you're being told something isn't possible. Get creative with workarounds. I'

Making new ROMs for the Vic20 / Vicky Twenty

M y Vicky Twenty is very nearly complete.  As things stand, the board and every single component is new*. The processor and VIAs are newly-manufactured (W65C02 and W65C22).  Obviously the Vic1 chip isn't manufactured today, but there is 'new old' stock about. I have been able to buy a Vic 1, date code 1987 (which seems very late). It obviously hasn't been in a computer before, passes the acetone test and works. The same goes for two of the ROMs - character and BASIC. But I haven't been able to buy a new-old Kernal ROM (901486-07). I am able to borrow one - all of the boards I have, have this particular ROM socketed. I don't know whether all of this indicates that the Kernal has proved less reliable than the other two. I recently bought a TL866 for another project. Of all the retro-computing hardware things I've had to learn to do, making ROMs has been one of the simplest. So far, everything has been very easy and worked first time.  I'm not sure that it&