ZX Spectrum was a very popular (well, at least in Great Britain and Spain) home computer released in 1982 by Sinclair Research Ltd. And while towards the end of 1980's its popularity declined in the West (due to availability of better computers), various ZX Spectrum clones became immensely popular in Soviet Union. They were manufactured by quite a few factories, as well as built by hobbyists. Several of my friends had one of these ZX Spectrum clones back then, and I was thinking about building my own (and even started to collect components for it). But somehow that didn't work out, and soon enough I've got an IBM PC/XT compatible, which shortly was upgraded to an AT-386 machine. As you might know I designed and built quite a few computers already, but every now and then I have a thought of building one of these 8-bit home computers from 80's (be that ZX Spectrum or MSX). Now might be the right time to build the ZX Specturm...
There is one particular roadblock to building ZX Spectrum compatible computer: It uses a proprietary chip, so called "ULA" (basically a programmable logic). To get around, ZX Spectrum clones normally implement ULA functionality using regular logic ICs, but none of them are 100% compatible with the original. Several years ago Chris Smith reverse engineered the ULA, implemented a ZX Spectrum clone (Harlequin), and wrote a book about it. And several other folks designed the board (in Spanish, use Google Translate) based on this work. I came across a fellow selling Harlequin PCBs on eBay for a reasonable price of $23 a piece, and bought one.
finish. It is also the latest Rev G. of the Harlequin. So I hope it will work nicely without mods.... Actually I do plan to modify the video output circuitry to have S-Video output using this mod. It also quite possible that my flat screen TVs only support NTSC format, so I might do some other modifications as well. Thankfully it seems that this revision of the board has some jumpers to enable NTSC support. We'll see how it works...
It took me several hours to build the BOM based on the schematic and the PCB layout. So here is the link to the project BOM on Mouser for your enjoyment.
What could be better than a 3D printer? Well, it turns out - a free 3D printer. Last week I've got access to several pretty nice Type A Machines Series 1 Pro 3D printers at TechShop San Francisco and took advantage of them by printing this ZX Spectrum case I found on the Thingiverse. After 10 or so hours of printing I had the case ready:
Now, it looks like the case is modeled very closely to the original injection molded ZX Spectrum case, and it is not quite optimized for 3D printers. To print it successfully I had to trim the standoffs on the top part, to reduce the amount of support material, and to make sure that the part lays flat on the 3D printer bed. If modifying the case model, I'd also reduce the wall thickness to 2-3 mm or so... Also it appears that mounting holes in the PCB do not quite align with the holes and standoffs in the printed case. It is not a huge problem. I'll enlarge the holes with a file.
I considered several possibilities for obtaining a keyboard:
It took me quite some time to solder all the components to the PCB (yeah, that's a lot of components). As usual I started with soldering SMD parts - the AD724JR, the LM2596, and the inductor. Next I soldered all the low profile components (resistors, diodes, quartz crystals). Next - ceramic capacitors, IC sockets, electrolytic capacitors, and connectors. The speaker was soldered the last, after I cleaned the flux with isopropyl alcohol (it is probably not a good idea to get the speaker wet... who knows). Unfortunately I ran out 20-pin sockets (reordered, should get any time now), so that is the only component missing for my build. I decided not to install diode bridge at the power input, and soldered two pieces of wire instead. Modern power bricks are regulated switching mode power supplies anyway, and they provide DC output.
Here is how the board and the keyboard look in the case (note that mounting holes are not quite aligned, and one 74HC245 IC is missing...):
To be continued... Read part 2 here