RC2014 Pro Homebrew Z80 Computer Kit

posted in: Z80 Projects 0

The RC2014 Pro is a modular computer with a 12-slot enhanced backplane. It has a Z80 CPU running at 7.3728MHz, 64K RAM, Microsoft BASIC on ROM, or CP/M 2.2 on Compact Flash and communicates over serial at 115,200bps via a Zilog SIO/2 UART. The backplane allows expansion modules such as official RC2014 Modules or a selection of 3rd party “Designed for RC2014″ modules. The design is simple, and the standard 0.1” pitch headers encourages building your own add-ons. The seller’s store page can be found here. The RC2014 website has many useful guides and photos.

This kit came with the following modules:

I also ordered the Digital I/O Module and 5V USB Serial Adapter.

History

Even though I built many Z80 boards and systems and even owned a computer that supported CP/M (C=128), I never actually ran CP/M on any platform. So I decided to buy this kit so I could play around with CP/M and some of the applications written for it. I also wanted a platform that I could add peripherals to easily.

The package that I got was pretty small. At first I thought it was just the PC boards. But everything was in the one box!

The PC Boards are all bare, except the CP/M board, which does come with the Compact Flash socket pre-installed, since it’s a surface-mount socket.

Assembling the Backplane

I decided to assemble the backplane first and referred to this RC2014 Pro Assembly Tips document for assistance.

One of the tips is to use the headers to hold the sockets in place to make it easier to solder these sockets into the backplane. There were two minor issues I ran into while doing this. First, not all the sockets in the backplane are at 0.1″ spacing. Because of this, I was only able to use the headers on the sockets that were at this spacing. The second issue was that I put the sockets into the holes that were at this spacing, only to realize after I soldered them in place that the kit doesn’t come with enough sockets to fill all the slots.

Fortunately, I was able to order the additional sockets and headers from the seller, and the completed backplane is shown above. Testing for this board involved connecting a power adapter to the barrel jack and using a multimeter to check for 5VDC on the 5V lines. I also verified the LED worked and I did test the direct input as well as the USB to Barrel Plug.

Testing the Barrel Jack / 5V Regulator / Power Switch

When using a standard power adapter (> 6VDC, mine is 7.5VDC), you would use the on-board regulator. This means ensuring the jumper block is removed from the 5V Direct header next to the 5V Regulator. If the jumper block is installed, the voltage on the input will be passed to the 5V line, which you do not want! Do NOT use the jumper block if the 5V regulator is installed!

Using the USB to Barrel Plug / Power Switch

When using the USB to barrel plug cable that comes with the kit, you would not want the regulator installed. If you’re going to use the USB to barrel plug cable to power the RC2014, DO NOT install the regulator, but be sure the jumper block is installed on the 5V Direct header. If the regulator is installed and the jumper block is removed when using the USB to barrel plug cable, the voltage on the input will not be 5V. Instead it will be 5V minus the voltage drop across the regulator.

Note: When using the USB to barrel plug cable, the power switch controls power to the backplane. It is recommended to connect to a powered USB hub or a USB charger. Some standard USB ports on laptops (even some desktops) may not provide sufficient current to power the entire system.

Terminal Block Input / Output

When using the terminal block power input, the power switch position is irrelevant, because the terminal block is connected directly to the Gnd / 5V connections on the backplane. Be careful when using the terminal block as an input. On the other hand, when using the barrel jack input, the terminal block can be used to provide 5V power to a peripheral device.

Assembling the Z80 CPU Module

Since this module has the enhanced bus, I had to remove some pins from the dual-row header so that the second row only had the necessary pins. For this I used a small pair of needle-nose pliers to remove the extra pins. This was fairly easy. But if you’re having trouble pulling the pins out, try heating the strip up just a little using a hot-air gun. Be careful not to overheat.

Here’s the fully assembled Z80 CPU Module. There really isn’t an easy way to test this module, so I set it aside for the time being.

Assembling the ROM Module

This module also has an enhanced bus and so the header has to be modified.

Here’s the fully assembled ROM Module. There’s no easy test for this module either, so I set it aside for the time being. You might notice one of the jumper blocks is missing. I didn’t quite have enough to place them everywhere they were shown in the various photos on the assembly guides, however I got more of those at the same time I got the extra sockets and headers.

ROM Module Addressing

There are two sets of jumpers on this board. The ones on the left specify the page size. The silkscreen shows the jumper positions for each page size; 1K, 2K, 4K, 8K, 16K and 32K.

The jumpers on the right specify the page address. These jumpers need to be in the correct positions to access the various ROM images that come on the included ROM chip. You can find the settings for each set of jumpers here.

If you look at the silk-screen on the module PCB, you can see that it is designed for a ZIF socket. One didn’t come with the kit, however I did have some on hand. Since I plan on making custom ROM images, I wanted to make it easier to swap out chips by installing a ZIF socket.

Adding a ZIF Socket to the ROM Module

By removing the ROM IC and installing a ZIF socket, we can make it easier to swap ROM chips on this module.

Assembling the Dual Output Clock Module

The clock module has two outputs that can each operate at different frequencies, set by a jumper block for each output.

Here’s the fully assembled module. You can select the frequency for each clock output by moving the jumper block to the position for the frequency you want. You can also select Slow, Man (manual) and Ext (external) for each output.

To test this module, we simply plug it into the backplane, apply power and measure the outputs on the backplane at the Clock and Clk2 lines on the backplane. I used an oscilloscope to see the signals, as well as check the frequency. You could also use a frequency counter, if you have one, or even a logic analyzer. The screenshots from my scope show the measurements. The frequency is shown in the top right of each screenshot.

Clock 1 was set to 7.3728MHz and measured 7.37342MHz, which is close enough (within tolerance).

Clock 2 was set to 2.4567MHz and measured 2.45780MHz, which is also close enough. The disparity can be explained by referring to the +/- ppm rating of the crystal. You may also notice that the clock signals are a bit noisy.

If you set the jumper to Slow, you’ll get an output of ~5kHz. I say approximately because, on my unit it wasn’t very stable, jumping around in frequency a bit, but giving you a slow clock that makes it easier to see code running.

Manual / External Clock Input

The manual input allows you to use an SPST switch to toggle the clock manually, effectively letting you step your code. There’s a 3-pin header on the module where you would connect this switch. Of course, you can use an external clock, which could be anything from a 555 timer to an Arduino with a programmable output.

Assembling the Compact Flash Module

As mentioned earlier, the Compact Flash socket comes pre-installed on the PCB. This means you need only install a few components. There’s no easy test for this module either, so I set it aside for the time being.

Assembling the SIO/2 Dual Serial Module

As with the previous modules I started with the lower-profile components and then added the taller components.

Here’s the fully assembled module. The two 5V headers determine whether you’re getting power from the USB Serial Adapter. This provides yet another way to power the board. You should not use this option if you’re already powering the board through the barrel connector or the terminal block. You’re also not going to want both 5V jumper blocks installed at the same time, if you’re powering the board through the serial module. The Port B Clock header determines whether Port B is connected to the Port A clock. Effectively, you’re connecting Clock to Clk 2. I wouldn’t recommend installing this jumper block if you’re using the dual clock module.

Assembling the 64K RAM Module

Once again, I started with the lower-profile components and then added the taller components.

Here’s the fully assembled module. There’s no simple test for this module, however the jumper settings are important.

The silkscreen shows the jumper positions that specify the start address using the upper three jumper blocks, however you can refer to this page to get more details. The lowest jumper is for /CE override, to allow the lower RAM to be paged out.

THIS ARTICLE IS STILL BEING RECOVERED AND RESTORED. PLEASE CHECK BACK LATER! Why is the article being recovered?

Resources

Discuss this project on Savage///Chats

PLEASE FEEL FREE TO LEAVE YOUR COMMENTS, QUESTIONS, SUGGESTIONS OR FEEDBACK ON THIS POST.

Leave a Reply