All The Good Ones Were Taken

Z1a - The Midplane

Since I'd decided to go with a modular design with subsystems on individual PCBs, the first thing to do was figure out how to connect them all together.

For plugging boards together, I went with 2×32-pin DIN-41612 connectors because I already had a bunch kicking around.

After sketching a few ideas, I went for a double-sided midplane, with three sockets on each side. This gave me room for six plug-in boards, while keeping the midplane itself within the 100mm × 100mm limit of super-cheap PCB fabrication, and small enough that I had the option of using the free version of Eagle EDA.

Speaking of which, the next step was to find some PCB design software. In the end I went with KiCad, which is free, open source, and suitably capable once you get your head round its library management.

With KiCad up and running, I laid out the board, and then headed off to the internet to compare costs and reviews of PCB fabrication. I ended up trying Elecrow, who I've stuck with ever since and not been disappointed yet.

With the bare board delivered a few days later, I set about the long and tedious task of soldering 384 pins to the board. I used good old-fashioned tin-lead solder, which is fine because I'm not going to throw it in a river or invite any children to lick it.

Little black PCB with 3 DIN-41612 connectors on each side

As you can see, I had not at this point given the slightest consideration to how the finished product would be enclosed, or where things like power supply connections would end up, which is why the whole thing is powered through that pair of header pins soldered to one end.

All I'd decided for sure was that the power connections went in the middle, but the pinout later ended up looking like this:

A1 C1
A0 A5 C5 A1
A2 A6 C6 A3
A4 A7 C7 A5
A6 A8 C8 A7
A8 A9 C9 A9
A10 A10 C10 A11
A12 A11 C11 A13
A14 A12 C12 A15
A16 A13 C13 A17
A18 A14 C14 A19
RA14 (ROM bank selector) A15 C15 RA15 (ROM bank selector)
+5v A16 C16 +5v
D0 A18 C18 D1
D2 A19 C19 D3
D4 A20 C20 D5
D6 A21 C21 D7
WR A23 C23 RD
(ROM) CS0 A24 C24 CS1 (Lower 512kB RAM)
(Upper 512kB RAM) CS2 A25 C25 CS3 (Video RAM)
A26 C26
A27 C27
A28 C28
A29 C29
A30 C30
A31 C31
A32 C32

Next, it needed something to plug into it...