In June - a series of posts about Retro Computing - in particular the venerable Z80.First Impressions. The contents of the "Full Monty" RC2014 Z80 Retro Computer Kit
This is a neat little kit from Spencer Owen, which allows you to build up a complete Z80 Microcomputer, from scratch, in 2 to 3 hours.
Spencer sells this kit through Tindie, and the service was exceptional - I ordered the kit on Thursday morning and it arrived in the post on Friday morning. Fortunately Spencer had what I needed in stock, and it caught the early post.
There are several variants of the kit, tailored to suit your time, expertise and budget. I chose the comprehensive "Full Monty" kit - mainly for expedience.
1. Bare Bones - just the 5 pcbs - to be used with stripboard backplane. You need to source all the components, ICs, sockets, connectors and be able to obtain a suitable ROM image. An economical approach - if you have plenty of time. Cricklewood Electronics is a good source of the rarer ICs."Bare Bones" Photo: Spencer Owen
2. Starter Kit - pcbs, connectors, BASIC ROM, stripboard for backpane. Contains the harder to find connectors and the BASIC ROM."Starter Kit" Photo: Spencer Owen
3. Full Monty - all components, ICs, 5 pcbs + backplane. The easiest and quickest option. You can be up and running with a full Z80 BASIC computer in 2- 3 hours."The Full Monty" Photo: Spencer Owen
For more information - have a look atSpencer's RC2014 site
- which describes the development of the product, offers useful information and blogs some of the high and low points of the project.
There is also a recently formedGoogleGroup devoted to the RC2014. The Design
The Z80 microcomputer is based around 5 modules: CPU, ROM, RAM, Clock/Reset and Serial I/O.
With these 5 modules you are able to build up a fully functioning computer that runs Microsoft BASIC and communicates wit a terminal program on your PC via a serial UART and FTDI lead.
The modules are 100% through hole components, and all ICs are socketed. Provided that you can identify pin 1 of an IC socket and be able to solder approaching 600 soldered joints - reliably - then this kit provides suitable distraction/entertainment for a wet June afternoon or evening.CPU Note the 4 jump straps on left. Your CPU will not be an old 4MHz Zilog Z80A from 1984!
This is a socketed 40 pin Z80 (10MHz) on a slender board, with a 34 way right angle header and a 3K3 resistor. The whole of the design of this machine and the backplane are based on the efficient means of getting the Z80 memory bus (address lines, data, control) down onto the backplane. The arrangement is not only logical but closely follows the pin-out of the Z80 40 pin DIL package.ROM Note the position of the jumper links on the left - all connected between A and 0
This module provides address decoding, and segment selection for up to a 64Kx8 EPROM or FLASH equivalent, in a 28 pin socket, with address and data lines broken out to the standard 34 way bus conector.
A single 74HC32 quad OR gate, provides an output enable signal for the ROM chip by OR-ing /MREQ and /RD and a /ROM_CS chip select signal by OR-ing together A13, A14 and A15. This forces the ROM selection to the part of the address map where these three address signals are all low, which is essentially addresses 0000 to 8192 - which is the bottom 8K of the memory map.
Three additional jumper inks allow selection of the Address line or logic 1 to force even more constraint on the ROM selection. This caters for alternative ROM sizes.RAM 62256 32K RAM Module with Read/Write selection logic
This board is similar to the ROM module but allows a RAM device to be fitted into the 28 pin socket and provides chip read and write controls by decoding /RD, /WR ORed with /MREQ. Again this is done in a 74HC32 quad OR gate, and a single 74HC04 inverter is used to negate address line A15, and use it to enable the /RAM_CE. This makes the RAM active whenever A15 is high - thus forcing it into the upper 32K of the address space.
There are many ways to approach address ROM and RAM decoding, and if the ROM and RAM were on the same pcb, some savings could be made.Clock / Reset. Component placement on clock - reset module
This is the smallest board of the set and contains the clock and reset circuit. The clock is generated using the standard method using a hex inverter to for an oscillator with a 7.3728MHz crystal, and an inverter as the clock driver.
Three resistors (1M, 1K and 2K2) and 2 x 22pF capacitors need to be fitted. A conventional power up reset switch circuit using a 2K2 pull-up resistor is also implemented.
The board only requires to pick up +5V, 0V CLK and /RESET from the bus - so is only fitted with a 5 way bus pin-header. Users should be careful to get this located properly in the right position.Serial I/O Note the 5V strap in the centre next to "FTDI" and the 3 x 2K2 resistors. Other components not fitted.
This module uses the 68B50 UART IC - my example was produced by Hitachi - but there used to be several manufacturers including Motorola and ST.
It requires a single inverter (74HC04) to invert the /IORQ signal - as this IC was originally intended for 6800 systems - not Z80.
It is supplied with the 7.3728MHz clock, which it divides down by 64 to produce serial at 115200 baud. The kit supplies a 6 pin header to allow direct connection of a 5V FTDI lead - A jumper link allows the 5V supply from the FTDI cable to be used to power the computer.
Don't forget to fit the three 2K2 resistors, which link the 68B50 Rx, Tx and CTS lines to the FTDI header!
There is provision to fit a traditional MAX232 RS232 level converter IC, 4 x 1uF capacitors and a 9 pin D-type connector (cleverly fitted to the edge and picking signals up from each side of the pcb), if standard RS232 com port is needed. These RS232 option parts are not supplied in the Full Monty Kit, but may easily be purchased elsewhere.Backplane Fit the 8 blue 100nF decoupling capacitors first - before soldering the 40 way headers into the 5 central positions.
I have addedd an extra 7805 regulator and 10uF filter/decoupling capacitors which are not included in the "Full Monty" kit.Building the Kit
The build process was fairly straight forwards and quick, but I did have to consult other online documentation in order to clarify some points. That documentation has been included here.
The first stage was to fit all the IC sockets. First identify the mark on the socket that signifies the "Pin 1 " end and make sure that is aligned with the "notch" on the screen print legend.
I always tack the socket in place by soldering two or four diagonal pins - ensuring that the socket is flat and level, correctly orientated and has no bent or damaged pins. Once tacked in place, the remainder of the pins can be soldered quickly and reliably with the full confidence that the socket is correctly placed.The 5 boards with most of the sockets soldered in. Time 15 minutes.
Next we begin to fit the through hole components - consisting of resistors, capacitors and jumpers. It was at this stage that I had to refer to other documentation to ensure that I had the correct values of resistors - fitted to the right boards. The graphic below from Spencer helped greatly in this respect.Component Placement Guide (Spencer Owen)
The three resistors, two 22pF capacitors and 7.3728MHz crystal were fitted to the clock module. The reset switch was not quite the correct fit for the holes in the pcb - but easily stretched to fit. The 8 pin right angle header will not fit if the crystal is fitted too close to the board, but can be truncated to a 5 pin header if necessary.
The wire ended components supplied in the kit
All modules soldered, 34/26 right angled pin headers fitted and ready for IC insertion.
One slight area of confusion was which side do I fit the right angled header - on the component side or on the reverse side? I opted to fit them all from the component side and solder on the underside. However the CPU board may be an exception to this rule - it does not really matter.
This photo from Spencer's Tindie site provides some clarification of the order of the boards and direction of pin headers.This photo from Spencer Owen indicates the intended order of the pcb modules in the backplane.
As the pin header strips are long - and have a tendency to move - make sure they are correctly tacked in position before committing to soldering a long run of pins.
Only 200 joints to solder on the backplane!
At one hour into the build I started to solder the female connectors into the backplane.
Note - it is best to solder the 8, blue 100nF decoupling capacitors in place before fitting the 40 way female header strips! Just a lot less fiddly.
Make sure that the female headers are tacked in place so that they lie flat, level and perpendicular to the backplane. There are 200 soldered joints to do here - so a little extra time spent here could save you a lot of time looking for unsoldered or defective joints later.
Again there was some question to as which of the eight backplane slots should have the five connectors fitted. I looked at an image on Spencer's Tindie site - and this suggested that I should be soldering the central 5 blackplane connectors.
The outside backplane connectors are separated in both the address and data lines - so that series termination resistors could be fitted. Again - a webpage or a Wiki with this information on, step by step - would have been useful - perhaps that guide is what I am writing here now?Stop the Clock - We have a completed computer!
The UART board was the last to be completed. There were no notes on what resistors to fit - so I had to refer back to the schematic on the modules section of the RC2014 site. From here I was able to confirm that they were 2K2 and also note the orientation. it's easy to get the one on the left of the FTDI header in the wrong orientation.This schematic shows the 3 series 2K2 resistors and the 5V jumper link needed on the UART board
I learned some years ago with this type of soldered through hole kit is that it is best to use entirely horizontally inserted components, and to put the value in ohms, nF or uF directly on the pcb screenprint. R1,R2,R3 is fairly meaningless unless you have the schematic at hand.
Note also that you have to fit a jumper link on the UART board to allow the FTDI cable to supply the 5V to the computer.
First Breath of LifeFirst test of the Micro$oft BASIC - which is supplied on ROM
My machine did not work first time. It produced a garbled start up message, which led me to think that there might be a baud rate problem. I tried a few options but with no avail.
So I then individually inspected the 600 soldered joints using a x10 mangnifying lens - and traced my problems down to a badly soldered address line on the underside of the backplane.
Stuff like this can easily happen with systems that have high numbers of signal connections like this. Check you work before final assembly - particularly the larger ICs and connectors. It took me 90 minutes to solder this kit - and a further 90 minutes to find the one badly soldered joint that was the cause of it not working.A great little project for a wet Friday evening in June!
Even 30 years on from the British Home Computer Revolution of the early 1980's - there is still considerable interest in these mid-1970's microprocessors.
Z80 Enthusiast, Grant Searle has done a lot to maintain interest, and has recreated several simple microprocessor systems - including Z80, 6502 and 6809. Recently he has moved across to emulation of these three classic microprocessors on a low cost FPGA board.
It was Grant's 7 chip, minimum Z80 system of 2007 that appears to have provided the inspiration for the RC2014. Here is the complete schematic which makes it easier to understand how the read/write control signals are generated.The minimal Z80 circuit that provided the inspiration for the RC2014 If you like the minimalist Z80 design, have a look at the "Z80 Membership Card" - a minimal Z80 handheld "Terminal" packaged into an Altoids tin. The neat thing about the Membership Card is that it has a useful serial monitor program - allowing file saving and loading, hex dumping and other editing features, which make low level operations a lot easier. The Membership Card uses a "bit banged" I/O pin to provide a serial terminal interface - something that could easily be added to the RC2014 - as a 2nd UART or a replacement for the 68B50 serial output card if the full 115200 baud UART features were not needed. In the next part I look at extending the system, with digital I/O, serial interface by bit-banging pins and hopefully a vintage 7-segment LED numerical display.