RC2014 Module Template

One of the things I am keen to promote about the RC2014 is that designing your own modules is very simple and straightforward.  The standard bus layout gives access to all of the basic signals that you are likely to need and the enhanced, or v2.0 layout builds on this with access to extra lines.  PCBs can, of course, be whatever shape and size you want, but you may have noticed that since around April 2016 I have settled on a standard shape for all new modules.

In this post, I want to discuss the past, present and future of the RC2014 bus, the physical modules, and what you might want to bare in mind when designing your own modules.



Mechanical Layout

Firstly, to dispel a few myths about the shape of this; It was not designed to mimic an SD Card, a New Document icon or even an Apple II expansion card.  The shape was actually inspired by the Hollerith, or IBM punched cards with the cut off corner being an easy way to identify which end Pin 1 is.

The default size, 99.1mm x 49.9mm was chosen to fit within a standard 10cm x 5cm PCB manufacturing size, whilst also being within the 100mm limit of the free Eagle licence.  (Personally, I use and recommend KiCad, which does not have such limitations).

A drawback of the length is that there is only room for a 39 pin header.  To comfortable fit a standard 40 pin header it would need to be 104mm.  Therefore, the length is nominal and can be adjusted, either longer to accommodate the extra pin, or shorter to reduce PCB cost if necessary.

Height is also nominal – although a suggested ‘low profile’ height of 38.1mm could be used, which will allow for a small angled cut off to indicate pin 1 and also leave room for the mounting hole.

The 45° corner cut off not only signifies the orientation of the module, but would allow for a case to be designed to take advantage of this.

The mounting hole can also be used in case design to anchor all modules in place if necessary.

A KiCad template can be downloaded here (delete the .txt extension and rename it according to your KiCad project)


Bus layout

When the idea of the RC2014 was conceived, the goal was to get a Z80 based computer running on a backplane as simply as possible.  Some signals that were not required in the basic design, such as BUSRQ, were not bought out on to the backplane and were simply terminated on the CPU module.  As the RC2014 has developed, however, some of these signals are needed to support more advanced modules such as the SD Memory Dump Module.

The challenge has been to expand the bus to allow for this, whilst keeping things compatible with older modules and backplanes.  The solution is to add an ‘enhanced bus’ – a partial secondary line of pins above the original (on the module) and to the left of the original (on the backplane).  Standard right-angle header pins can be used for the original parts and double right-angle header pins used where the enhanced bus is needed.

Standard Bus

The original RC2014 only needed 34 pins to operate, with an extra 2 if the serial module is to talk to other modules.  This leaves 4 pins of the 40 pin header which users are free to use for whatever they want – however, be aware that using pin 40 will take the module over 100mm (see mechanical layout above)

Pin  Label Description   Note
 1-16  A15 – A0  Address lines for up to 64k of addressable memory
 17 Gnd 0v power supply
18 5v 5v power supply
19 M1 M1 control line from CPU Active Low
20 Reset Reset line for CPU and optionally other modules Active Low
21 Clock Main CPU clock signal and optionally other modules
22 INT Interupt Active Low
23 MREQ Memory Request Active Low
24 WR Write Active Low
25 Rd Read Active Low
26 IORQ I/O Request Active Low
27 – 34 D0 -D7 8 data lines
35 Tx Serial transmit
36 Rx Serial receive
37 – 39 USR1-3 3 spare pins for user functions
40 USR4 4th spare pin. Suggest it is not used Avoid


Enhanced Bus

The enhanced, or v2.0 bus, adds to the standard bus to allow for backwards compatibility whilst giving access to other control lines not available on the original bus.  This is intended to be an optional bus, only used if it is required.  However, if it is used, the 10 pins in the center should be the minimum.  Having additional clock, reset, Tx and Rx lines opens the RC2014 up to more advanced peripherals and the extra 8 data lines would be required if a 16 bit CPU was used.

Pin  Label Description   Note
 1-16  Not used
 17 Gnd 0v power supply
18 5v 5v power supply
19 RFSH M1 control line from CPU Active Low
20 Reset2/Page Secondary reset or page line for other modules Active Low
21 Clock2 Secondary clock line for other modules
22 BUSACK Bus Acknowledge Active Low
23 HALT Halt Active Low
24 BUSRQ Bus Request Active Low
25 WAIT Wait Active Low
26 NMI Non-maskable Interupt Active Low
27 – 34 D8 -D15 Additional 8 data lines (for 16bit CPU)
35 Tx2 Secondary serial transmit
36 Rx2 Secondary serial receive
37 – 39 USR5-7 3 spare pins for user functions
40 USR8 4th spare pin. Suggest it is not used Avoid


Making your own modules – Designed for RC2014

If you wish to design your own modules, you are, of course, free to use whatever shape, size or pin arrangement you wish.  However, keeping to the above guidelines should give your modules compatibility with other RC2014 modules.  If your module may be of use to other RC2014 owners, please consider sharing your design or selling them yourself.  I’m happy to help you with this and to spread the word.  Note that “RC2014” is a registered trademark, so you are not allowed to call your module “RC2014 [thingy] Module” or use the RC2014 logo.  However, feel free to mark your modules as “Designed for RC2014”

If you need clarification on anything here, please feel free to contact me directly using the Contact Me link or start a thread on the RC2014-Z80 Google Group.

Comments are closed