For British kids of a certain age, their first experience of a computer was very likely to have been in front of a Sinclair ZX81. The lesser-known predecessor to the wildly-successful ZX Spectrum, it came in at under £100 and sported a Z80 processor and a whopping 1k of memory. In the long tradition of Sinclair products it had a few compromises to achieve that price point, the most obvious of which was a 40-key membrane keyboard. Those who learned to code on its frustrating lack of tactile feedback may be surprised to see an Arduino project presenting it as the perfect way to easily hook up a keyboard to an Arduino.
Like many retrocomputing parts, the ZX81 ‘board has been re-manufactured, to the joy of many a Sinclair enthusiast. It’s thus readily available and relatively cheap (we think they can be found for less than the stated 20 euros!), so surprisingly it’s a reasonable choice for an Arduino project. The task of trying to define by touch the imperceptible difference in thickness of a ZX81 key will bring a true retrocomputing experience to a new generation. Perhaps if it can be done on an Mbed then someone might even make a ZX81 emulator on the Arduino.
We’re great fans of the ZX81 here at Hackaday, for some of us it was that first computer. Long may it continue to delight its fans!
Folks from the US of a similar age may remember this as from the Timex Sinclair 1000. I’ve never been entirely clear on why Timex wanted their own home computer, or why they thought a rebadged ZX81 (with double the RAM and an NTSC RF modulator swapped for the PAL one) was the way to go, but they sold for $99.99 stateside.
(I actually am of that age but only got to play with one years later; my grandfather, an inveterate gadget hound, bought one and then forgot about it, and I found it on a visit in the late 1980s.)
It was because the British ZX81s (and subsequently the ZX Spectrums) were made by Timex in Scotland. So, my guess is that Timex had a deal with Sinclair to market the computers in the US.
This, too, was my very first computer. I was in foster homes, and my social worker brought this to me. This was the first foray into my long career as a programmer. (Before that, I was teaching myself BASIC from books and writing “code” in spiral notebook — NERD!)
I respect a man like you. Your comment is the best example of how you have become what everybody dreamed of being. These days being a nerd is the cool thing to do… again.
I really appreciate that you got that education despite your circumstances. My wife was foster and didn’t get the best treatment in several ways. I always wanted a ZX81 but bought a TI-99/4A with my paper route money and later a C64 and now I’m an industrial controls engineer some PLC and robot programming. I like your spiral notebook software, something I did for a while, and continue to this day by working it certain algorithms on paper. :)
I used to copy Basic programs out of a magazine onto my Timex Sinclair 1000. I want to say it was called Basic Month or something. The longest of which was a three alien version of space invaders. It didn’t work and I was debugging it. I left my Timex on all night on the deep pile carpet and the next morning it had melted.
Either the ZX-80 or the MicroAce (can’t remember which–I had both) was my second computer, after an S-100 machine I built from scratch. The S-100 had a control panel (no keyboard) so you would think the Sinclair’s keyboard would be a step up but, no, even as I kid I knew it sucked. My next computer was a Color Computer so my poor taste in keyboards continued.
Re: “Timex Sinclair 1000”
Worked all summer when I was 14 to buy one.
Within a hour after getting it I knew what a huge waste of money it was! :(
Typing 50 lines of Basic was almost impossible.
Could not bring myself to trash it, so gave it away within months.
I loved my zx81, still have it. Bought the 16k ram extender, the modem, and the thermal printer for it. Learned all about stochastic processes as they applied to 3 digit lottery systems with it. King of the futile gestures, but Greene County, Pa, represents on Compuserve, in 1980!
The keyboard is actually not so bad. The worst part of the keyboard is that the scanning rate of the ZX81 is just too low for any fast typing. Of course, the keys are too small to do any fast typing anyway. ;)
It’s true, the keyboard isn’t so bad – better than the ZX80 keyboard! Also, the Single-keyword entry and syntax-checking editor worked well to enable an effective programming speed.
However, I’m not sure it’s quite true that the scanning rate is too slow. The scanning rate is 50Hz in the UK, and although 2 identical scans are needed for a given keypress, this still gives a maximum typing rate of 50cps with keyboard rollover. I don’t think even I can manage that and I touch type quickly.
However, the ZX81 key scanning algorithm doesn’t support rollover: you need to lift the one key you’re pressing (apart from shift) before pressing another; so this limits the theoretical key rate.
I don’t think the issue is the amount of times per second that you press the keys, but you need to keep them pressed for a relatively long time, otherwise they don’t register.
I recently built a ZX81plus38, and used ‘digitast’ keys to build a keyboard. I thought that the foil keyboard was the problem. But these digitast keys are excellent keys, but register just as badly.
I didn’t know that each key needs to be scanned twice (for debouncing, I presume). But that then is where the problem is. It would mean that you need to keep a key pressed down for a minimum of 1/25th of a second for it to register. I’m sure that when I type at fast speed, the time that I press and release a key is much faster than 1/25th of a second.
The hole where my ‘L’ key used to be (from loading programs off tape) says otherwise!
I’m glad to know there are replacements now.
I just don’t want to spend 20 £ for a TS1000 that only cost me $6!
There were better haptics on the ZX80 as every key press turned off the RF modulator, with concomitant screen fuzz and change in the scan noise.
So that’s what was happening! I just blamed my cheap TV for changing its 15.575 whistle with keypresses causing different smudges of phosphor to glow. :-)
We weren’t “dirt poor” but we were one paycheck from it – later I found out some other relatives chipped in for the Timex Sinclair. I used it for a few years and learned Z80 machine language on it. Nothing but good memories of it.
My ZX Spectrum disappeared during a house move, but the ZX-81 survived. A visitor once thought it was was some kind of address book.
You’d think the smaller zx-81 was easier to lose.
Atari 400 was a respectably miserable keyboard too.
There used to be replacement keyboard “industry” for the ZX81. These keyboards also came with a chassis, sometimes. ;)
No seriously, the most sought after peripheral for the ZX80/81 maybe were these combined chassis/keyboard kits.
Many of them had mechanical keyboards.
The tiny ZX mainboard was moved over to the new chassis, which also had room to house the power supply and the memory expansion. That way, the overheat problems went away, too.
Does anybody remember the times when the memory module “fell off” the ZX81, while working with the little guy?
PS: Greetings from Germany. The ZX81 wasn’t unheard of over here. My father used to have a ZX81 in the ’80s, too. I myself got one a few years ago, to experience “3D Monster Maze” in an authentic way. Even hooked up a real b/w TV set from the ’70s. Didn’t look too bad on a real monochrome CRT!
I killed my first TS1000 trying to put a “real” keyboard on it.
And yes, I remember that flaky expansion connector.
Ah, the infamous RAM pack wobble. Spend a couple of hours filling those 16kb with code, give it a nudge, and watch the whole thing reset.
It has occasionally amused me to convert a newly-purchased Micro-SD into ZX Ram Packs, in terms of cost, volume and power consumption.
A 512Gb SD-card is 32 million RAM packs. Or a cube 300x300x300 packs. That’s at least an order of magnitude more than all of them. I found something online saying that the DRAM chips dissipate 1W of power, but I don’t know how many were in the pack. But that’s at least 32 MW of power.
Blue tac was my friend, stuck the ZX81 to a small sheet of plywood and sat the RAM pack on a great big lump of blue tac, worked brilliantly. Who remembers the book on programming the ZX81. Peek, Poke, Byte and Ram my mum went loopy thinking it was some dodgy ‘Adult Literature’ when she found a receipt in my jeans when doing laundry.
Have you ever considered the possibility that she was hoping her little boy was normal, and was disappointed to find it was just yet more geekiness?
Similar goal using $4 pico and KMK firmware
https://www.youtube.com/watch?v=a0VU5mklIbk
Another fun ZX81 ‘design compromise’: The video output was generated in software, so the only time actually available for computation was in the vertical blanking period.
You could enable ‘fast mode’ for full-time computation at the expense of borking the display.
Just to answer the question about running on Mbed. Of course it works. The library is so simple, it just needs 13 GPIOs and nothing else. Thanks to hackaday for featuring my project.
The keyboard wasn’t great for touch-typing, but that wasn’t what you did, as all programme entry was done by key combinations that produced entire tokens. So it was inherently a hunt-and-peck process anyway.
In some ways this was inspired, as it meant that all the commands that you _could_ give to the machine were right there on the keyboard, and curious teenagers like myself would eventually wonder just what _that_ keyword did, and go look in the manual.
Nowadays we have a pretty good idea what computers can do, and are likely to go looking for a command that does what we want. Back then it was the other way round, we had the commands and went looking to see what they did.
The manuals were a definite strength of the Sinclair computers, and were an area where penny-pinching seems to have been suspended.
Ahh I remember this little beast well.
The ZX81 was my first computer, I built it from a kit, then bashed out programs from magazines on its horrible little membrane ‘keyboard’.
Later I added a 16K ram pack to further add to my frustrations as it wobbled loose while I was bashing at the membrane keys to get a response, the fuzzy B&W TV signal hummed and flickered and then the whole thing rebooted. Out comes the casette tape deck again and (hopefully) you could reload some of what you had just started and lost. Oh the fun we all had!
Oh yes, I survived (endured?) that for maybe 2 or 3 years before the frustration got the better of me and I went out and bought an Atari 800 :)
Still, I learned a LOT from the little Sinclair frustration machine, but not sure I am keen to go bashing that little membrane keyboard one more time just for nostalgia’s sake :)
Visit the site: loadzx.com and find the Sinclair products (radios, calculators, DIY kits, ZX80, 81, Spectrum, Timex variants, Amstrad, brazilian, russian clones, etc) and be surprised. The Timex variants were manufactred at Dundee (Scotland) and Sobreda da Caparica (Portugal). RFM
I too had a ZX-71.81. First thing I did was to map the traces on the keyboard printed circuit and wire up a bunch of pushbuttons to make a keyboard. It worked! But not great. Second thing was to find a real keyboard and modify the circuit
My first home computer, many warm memories.
My parents generously bought one of these monstrosities from an acquaintance for me and it was absolute hell to code on with double- and triple key bounces.
Eventually this thing was spirited away and replaced with an Atari 800 XL which I’m pleased to report still works to this day (unless it’s Amiga successor that quietly died an electrolyte death)
Yeah… that was a bad keyboard. I actually replaced mine with an after-market unit… big square mechanical switch kind of thing. Much improved… wonder if that would work with an Arduino? Still sitting in the box, along with the printer, RAM packs, and Wildonics EPROM I/O module. I wonder if any of that stuff still works? Well, I’ve already spent way too much of my life typing on that keyboard. Maybe let it sit for another decade along with the boxes of Squad Leader. WHY CAN I NOT THROW ANYTHING OUT?????
The real problem with keyboards on Arduino is that there are very few. Most keyboards today are USB, some still PS2. I was looking for (plain) mechanical keyboards for a while and found none, except the good old ZX81 keypad.
My code could scan any keyboard as long as the Arduino has enough pins for the rows and columns.
Where did you get this keyboard? It is shown in the photographs as having actual solid ribbon wires coming straight out of the keyboard. No ZX81 keyboard or reproduction is made like that–the conductors are extensions of the membrane itself, and would not accept a crimp connector. Was this fake news posted on April Fools? The overall concept is a nice idea, but the execution has been deceptively fudged.
Bought it here https://www.ebay.de/itm/194605478404
They have the solid ribbon wires. The keys are mounted on a plastic base and covered with the membrane. They seem to be little microswitches.
The ZX-81 keyboard was bad, but IMHO the Oric-1 keyboard is worse. As bad as old school flat membrane keyboards are, chicklet keys are even worse IMHO. The IBM PC Jr. Keyboard is a VERY close second.