The ZX81+38 is a clone of the Sinclair ZX81 home computer that replaces the ULA found in the original with standard logic ICs. That means, it can be built with all parts still readily available today. It was created by Mahjongg, introduced on a forum dedicated to Sinclair computers, and document on the web with construction files available on Github.
I learned of this project a while ago, when I received the PCB as a gift from a friend who had ordered more than he needed. So, even though I never owned or even used a ZX81 to that day, I wasn’t left with much of a choice and had to build one myself. After all, one cannot just not assemble such a nice PCB!
As it turned out, I had most of the required components in stock already and had to source only a few additional ones like the resistor networks or a couple of logic ICs. And of course, the RCA- and audio connectors: no matter how many of those I keep around, the next project will always require a different footprint.
While I waited for those components to arrive, I passed my time thinking about what kind of keyboard I wanted to connect to the board when it would be finished. I know that replacements for the original membrane keyboards are still available from the UK and I wouldn’t hesitate to get one of those for an original ZX81. But for this project, I felt that something DIY would be more appropriate. Also, I would have needed to find matching sockets to connect the membrane to. Last but not least and as sad as it is: all the post-Brexit taxes, fees and the customs hassle often make it easier to order from China than from Great Britain.
Anyway, it was easy enough to find decent images of the original keyboard online, but I was still missing the exact dimensions. So I asked for help on Forum64 and received it very quickly, just as usual. My idea was to use cheap 6x6mm tactile switches and to create a custom PCB for the keyboard like Mahjongg had done before, but to improve the optics and ergonomics a little by adding a 3D-printed grid and a laminated cover.
Next, with all required parts having arrived, I assembled the PCB for the ZX81+38 — and then could not get it to function. Nothing but a black screen. After a short search, I noticed that the board did not properly generate the clock signal for some reason.
The crystal and its circuit should have produced a stable signal at 13MHz. But instead, I measured an unstable square wave around 40kHz. I replaced the crystal and tried different Schmitt trigger ICs without any success. Next, I even replicated the clock generator circuit on a breadboard where it worked just fine.
Finally, I noticed that I had taken the values of the two capacitors for the clock generation circuit from an earlier version of the project’s BOM and used 15pF for C1 and C2. The latest version however suggests a value of 4.7pF for those two, instead. With the two caps replaced, I finally got the correct clock signal on the board and the unspectacular but expected screen display!
Back to the keyboard part of the project. My PCBs had arrived in the meantime and I had only small reason to be frustrated because of the footprint for one of the pin headers that I had managed to place the wrong way around.
Oh well, nothing that couldn’t be worked-around for now by twisting a few Dupont cables.
With the keyboard generally working, it was time for the last phase of this replica project: a complete and new case for the ZX81+38 computer. It took a couple of iterations and half a spool of filament until I was satisfied with the result.
This looks and feels like a real home computer from the 80’s now. You’ll find more photos in the image gallery below.
Next, I would like to load and run some “real” software. I’ve read somewhere that this should be possible by connecting a modern laptop computer to the cassette input. Also, I will clean up my project files a little so that I can share them in case anyone else wants to build this beauty. In short, I might do a follow-up post on this one but it might take a while — keep an eye out.
I have now sorted and published all design files needed to build this replica:
- The PCB for the keyboard can be ordered directly on PCBWay.
- The KiCAD project files are available on Github.
- The STL files for the case and the external keyboard can be found on Prusa Printers and on Thingiverse.
- Of course you will still need to build the ZX81+38 PCB itself.
Thanks for this!! I built a zx81 back in 1981 and it did not work but I took it to Motorola, and they hooked it up to the oscilloscope and it had a problem in the clock timer circuit too. The engineer complimented me on my solder job. Apparently it wasn’t my fault… so I sent it back to Sinclair and they just sent me an assembled one (with not as good soldering I noticed Lol). So its a cool coincidence. I still have it in the box it was sent to me in. I want to build a pink one. I’m transgender and pink is my favorite and I can say that now: THANKS!! Stephanie Romer
Thank you so much for your work I had a ZX80 in the 80’s and I also had issues with the clock but what a load of fun.
Recently I purchased an original ZX Spectrum not working and built a modern ZX Spectrum Harlequin.
Both are working after a lot of effort, now I am building a ZX81+35 like you have and will modify my parts list for the clock modification, thanks for the tip.
After playing with the Spectrum’s I cant wait to build the ZX81, they are a real lot of fun and the software was fantastic considering the limitations programmers had back then.
In closing anyone who is a computer enthusiast should own one of these classic computer, they have a soul and will put a smile on your face.
I’m glad you liked my post and thank you very much for the kind feedback!
Hi. How did you make the keyboard Inlay? Laser printer?
Yes, I used a color laser printer and a cheap hot lamination machine to make the keyboard inlay.
The problem with the crystal oscillator is simple, I should not have used a 74HC14 hex inverter, as the schmitt trigger input makes oscillation of this circuit very unlikely due to the high input swing needed, a normal 74HC04 or even better a 74HCU04 works much better, and then the values of the other components becomes much less critical.
Yes, the mirrored connector for the 5-line keyboard data connector is another mistake, and finally I should not have used a mix of logic, all logic should have been HC logic, but as you have discovered it works with mixed logic families as well.
All there and other errors have been resolved in revision 1.8 that can be found on GitHub.