I was thinking about restarting experiments with vintage computing hardware. Thus, I decided to start working on an 8 slot, 16-bit ISA backplane that will fit either AT or ATX computer cases and will accept power from a modern ATX supply. Well, I would've preferred to design it so that it could accept either AT or ATX power supplies. But I just couldn't find an on-line parts supplier for P8 and P9 male connectors to fit on the printed circuit board. Thus, ATX it is.
I always wanted to experiment with option and boot ROMs. Back in the very early 1990s when I was routinely using an 80386SX / 25 MHz machine, 27C series UV EPROMs were expensive and difficult to find. These days, I have access to a lot of ROM integrated circuits at low prices from the local and online electronics stores. Needless to say that, over time, I have recovered quite a few ROM ICs from vintage computer boards. I can erase and reprogram them for my experiments. Thus, this backplane implements support for one 64 Kbit option ROM of type 27C64 or 28C64. Address range decoding for the ROM is implemented as well.
Adjacent circuitry is also carried on this backplane. Think reset and ATX power control circuits, and indicator LEDs. I have even made provisions for the case LEDs and cooling fans. If you don't like the noise of a 12 V cooling fan, then just plug it into the 5 V fan header. I decided not to include a 5-pin DIN keyboard connector because this backplane will mostly be used with ATX cases. These don't align the back bracket with the keyboard connector that well. I know there are metal brackets already milled for an AT-style keyboard. But then again, this system backplane will most certainly use the keyboard socket on the CPU ISA card. Thus, I omitted it from this design.
This ISA system backplane should handle 8088, 80286, 80386, 80486, and Pentium CPU boards as well as any 8-bit or 16-bit ISA expansion card. So a complete computer can be easily built.
The design of such a backplane is no secret and despite all the many apparently complicated connection points, overall, the circuitry is fairly simple to understand and implement. Regarding the printed circuit board layout, I have manually routed all tracks in order to fulfill the best digital design constraints and -- why not -- looks.
A historical fun fact: Back in the 1990s I was spending hours looking at computer printed circuit boards, observing the wire routing design, the choice of electronic parts, and the overall layout. I was seeing this as some kind of abstract art. In fact, I was mesmerized by computer PCBs. I remember a few notable ones: an Adaptec AHA-1542CF SCSI ISA controller, ATI VGA WONDER-16 ISA video controller, an old 1989 CHIPS & TECHNOLOGIES 256K VGA controller, an unknown model NCR MFM ISA controller, a beautiful Western Digital WD-1004A-27X MFM ISA controller, a UNiSYS 80286-10 mainboard, and countless other that forgot the model numbers. Looking at those PCBs, I dreamed about creating my own one day. So here I am, designing my own ISA backplane. I am planning other ISA designs in the upcoming couple of years.
Disclaimer: I reserve the right to change the schematic diagram, the PCB layout, or the implementation without further notice. This is an entirely hobby do-it-yourself design and I am not responsible for any damage made by any possible mistake in any version or revision of the schematic diagrams or PCB layouts. Since it is an advanced microelectronics project, it requires very good assembly and debugging skills. In addition, I cannot offer any further technical support other than the contents of this article.
This project is in its final stage.
Current iteration of ASSY. 2486-SBP-001 is VER. 1.6 REV. B
* * *
Laudatur ab his, culpatur ab illis. This project is provided as-is and is not for commercial purposes. It reflects my experimental work in microcomputer system design and should be treated as such. I release the schematic diagram and circuit board layouts to the public for educational purposes. I did all this at my own expense and in my free time. If you like my work, please consider making a donation. It helps me continue these kind of projects.
Fig. 1: Electrical Schematic Diagram
Fig. 2: Top Silkscreen
Fig. 3: Top Layer Printed Circuit Board
Fig. 4: Bottom Layer Printed Circuit Board
Fig. 5: Top Layer Printed Circuit Board - Simulation
Fig. 6: Bottom Layer Printed Circuit Board - Simulation
Here are the Gerber files compressed in a .ZIP archive.
Please note that the file naming convention that I used is what OSHPark normally expects.
You can also order the printed circuit board directly from OSHPark by following the link in the bill of materials below.
Compressed Gerber Files: isa-backplane.zip
The following list contains the parts that are required to assemble this ISA backplane.
16-BIT ATX ISA BACKPLANE | ||||
---|---|---|---|---|
Identifier | Value | Qty | Notes | Mouser Number |
Printed Circuit Board | ASSY. 2486-SBP-001 | 1 | VER. 1.6 REV. B | Order from OSHPark |
IC1 | 74LS688 | 1 | Magnitude Comparer | 595-SN74LS688N |
IC2 | 28C64 | 1 | 64 Kbit ROM | 556-AT28C64B15PU |
IC3 | 74LS14 | 1 | Hex Inverter (ST) | 595-SN74LS14N |
IC4 | 74LS74 | 1 | Dual D Flip-Flop | 595-SN74LS74AN |
IC5 | LM555 | 1 | Timer | 926-LM555CN/NOPB |
IC6 | UA7905 | 1 | Negative Regulator | 595-UA7905CKCS |
T1 | 2N2222 | 1 | Small Signal Transistor | 610-2N2222 |
D1-D4 | 1N4148 | 4 | Small Signal Diode | 78-1N4148 |
C1-C48, C64 | 10 uF / 25 V | 49 | Tantalum Capacitor | 80-T350E106M025AT |
C55-C58 | 47 uF / 25 V | 4 | Tantalum Capacitor | 80-T350K476M025AT |
C62, C65 | 100 uF / 10 V | 2 | Tantalum Capacitor | 80-T350J107M010 |
C63 | 1 uF / 35 V | 1 | Tantalum Capacitor | 80-T350A105K035AT |
C49-C54, C59-C61 | 100nF / 50 V | 9 | MLCC | 80-C322C104M5R-TR |
R1-R3, R6-R8, R12 | 470 Ω | 7 | Carbon Resistor | 291-470-RC |
R4, R5 | 1.2 kΩ | 2 | Carbon Resistor | 291-1.2K-RC |
R9, R11, R13 | 10 kΩ | 3 | Carbon Resistor | 291-10K-RC |
R10, R14 | 1 kΩ | 2 | Carbon Resistor | 291-1K-RC |
RN1 | 8 x 10 kΩ | 1 | Bussed Resistor Network | 652-4609X-1LF-10K |
SW1 | 7-position | 1 | DIP Switch | 774-2067 |
LED1 | 5 mm Orange LED | 1 | Standby Indicator | 755-SLR-56DC3F |
LED2 | 5 mm Red LED | 1 | +5 V Indicator | 755-SLR-56VC3F |
LED3 | 5 mm Red LED | 1 | -5 V Indicator | 755-SLR-56VC3F |
LED4 | 5 mm Red LED | 1 | +12 V Indicator | 755-SLR-56VC3F |
LED5 | 5 mm Red LED | 1 | -12 V Indicator | 755-SLR-56VC3F |
LED6 | 5 mm Green LED | 1 | CPU Activity Indicator | 755-SLR-56MC3F |
IC Socket | 20-pin | 1 | IC1 | 575-11044320 |
IC Socket | 28-pin | 1 | IC2 | 575-11044628 |
IC Socket | 14-pin | 2 | IC3, IC4 | 575-199314 |
IC Socket | 8-pin | 1 | IC5 | 575-144308 |
J1 | 20-pin Connector | 1 | ATX Power Connector | 538-46015-2006 |
J2 | 3-pin Header | 1 | Header | 649-68001-203HLF |
J3-J5 | 2-pin Header | 3 | Header | 649-68001-202HLF |
J6, J7 | 22-23-2031 | 2 | Fan Connector | 538-22-23-2031 |
JP1 | 3-pin Header | 1 | Jumper | 649-68001-203HLF |
ISA0-ISA7 | Card Edge Connectors | 8 | ISA Slot | 587-395-098-520-350 |
Alternatively you can use the following link to the Mouser project that I created for this backplane. It should make ordering of parts and removing typing faults pretty easy.
Mouser Project: 16-BIT ATX ISA BACKPLANE
Lately I have observed that Mouser discontinued some of the parts in the list above. If you decide to build this project, then you need to find alternatives. It is out of my scope to maintain the correctness of the parts list above.
Here is a list of things you need to pay attention to should you decide to build such ISA system backplane.
The following section describes all the interface connectors and their respective pinouts.
INTERFACE CONNECTORS DESCRIPTION | |||
---|---|---|---|
Identifier | Value | Notes | Pinout |
J1 | ATX POWER | ATX Power Connector | 1 - NC 2 - NC 3 - Ground 4 - +5 V 5 - Ground 6 - +5 V 7 - Ground 8 - NC 9 - +5 V StandBy 10 - +12 V 11 - NC 12 - -12 V 13 - Ground 14 - Power Supply ON 15 - Ground 16 - Ground 17 - Ground 18 - -5 V 19 - +5 V 20 - +5 V |
J2 | PWR/STB-L | Power/StandBy LED | 1 - Power LED Anode 2 - LED Cathode 3 - StandBy LED Anode |
J3 | PWR-L | Power LED | 1 - LED Anode 2 - LED Cathode |
J4 | STB-L | StandBy LED | 1 - LED Anode 2 - LED Cathode |
J5 | PWR | Power Switch | 1 - Power Signal 2 - Ground |
J6 | 5V FAN | 5 V Cooling Fan | 1 - Ground 2 - +5 V 3 - NC |
J7 | 12V FAN | 12 V Cooling Fan | 1 - Ground 2 - +12 V 3 - NC |
JP1 | -5 V Selector | 1 - -5 V Rail (local) 2 - -5 V Rail (board) 3 - -5 V Rail (PSU) |
ATX power supplies are turned on and off through a momentary push button. This circuit does exactly that: sends a /PS_ON
signal to the power supply to turn it either on (active low) or off (active high). This circuit is designed by Sergey Kiselev.
This circuit section will provide some visual feedback through the STDBY LED once the system is powered off. A repetitive breathing-like fade in and out effect will signal that the system is standing by. Once you press the power button to turn the system on, the STDBY LED will remain off.
Once the CPU will start putting addresses on the address bus, A7
signal will provide a visual feedback through the CPUACT LED. This is a spartan indication that the CPU is actively working on something.
This circuit is, again, based on Sergey Kiselev's idea of a CPU activity indicator. I have further adapted it in a way that it is only active when the system is powered on. In the original circuit, there was a big chance that the LED will remain lit once power is removed from the system. This is because 74LS74 is powered through +5VSB
rail which is always on. Section A of 74LS74 will store and reflect the previous state of A7
signal. And if this signal was high upon powering the system off, the LED will remain lit indicating false CPU activity.
In order for the microcode in the option ROM to be actually reachable, a valid start address needs to be supplied to the ROM decoder circuit. This is done by configuring the SW1 switch array. First of all, to enable the option ROM, SW1.1 needs to be set to ON. The 74LS688 magnitude comparator will be active once the CPU has control of the address and data bus. In other words /G
signal will be active when AEN
is not asserted (low). Then SW1.2 needs to be set to OFF. That means ROM /WE
signal is not active. Which is normal since we don't want to provide writing capabilities to a non-writable memory. However, this switch is useful for programming empty ROMs directly in-place.
A combination of SW1.3, SW1.4, SW1.5, SW1.6, and SW1.7 will dictate the start address for the option ROM. Some combinations will generate conflicts with System BIOS or other option ROMs that might be present in the system. So double check their actual address range before configuring the on-board option ROM start address.
OPTION ROM CONFIGURATION | ||||||||
---|---|---|---|---|---|---|---|---|
Combination | SW1.3 | SW1.4 | SW1.5 | SW1.6 | SW1.7 | Start Address | End Address | Conflict |
1 | ON | ON | ON | ON | ON | 0xC0000 | 0xC1FFF | EGA/VGA BIOS |
2 | ON | ON | ON | ON | OFF | 0xC2000 | 0xC3FFF | EGA/VGA BIOS |
3 | ON | ON | ON | OFF | ON | 0xC4000 | 0xC5FFF | EGA/VGA BIOS |
4 | ON | ON | ON | OFF | OFF | 0xC6000 | 0xC7FFF | EGA/VGA BIOS |
5 | ON | ON | OFF | ON | ON | 0xC8000 | 0xC9FFF | |
6 | ON | ON | OFF | ON | OFF | 0xCA000 | 0xCBFFF | |
7 | ON | ON | OFF | OFF | ON | 0xCC000 | 0xCDFFF | |
8 | ON | ON | OFF | OFF | OFF | 0xCE000 | 0xCFFFF | |
9 | ON | OFF | ON | ON | ON | 0xD0000 | 0xD1FFF | |
10 | ON | OFF | ON | ON | OFF | 0xD2000 | 0xD3FFF | |
11 | ON | OFF | ON | OFF | ON | 0xD4000 | 0xD5FFF | |
12 | ON | OFF | ON | OFF | OFF | 0xD6000 | 0xD7FFF | |
13 | ON | OFF | OFF | ON | ON | 0xD8000 | 0xD9FFF | |
14 | ON | OFF | OFF | ON | OFF | 0xDA000 | 0xDBFFF | |
15 | ON | OFF | OFF | OFF | ON | 0xDC000 | 0xDDFFF | |
16 | ON | OFF | OFF | OFF | OFF | 0xDE000 | 0xDFFFF | |
17 | OFF | ON | ON | ON | ON | 0xE0000 | 0xE1FFF | |
18 | OFF | ON | ON | ON | OFF | 0xE2000 | 0xE3FFF | |
19 | OFF | ON | ON | OFF | ON | 0xE4000 | 0xE5FFF | |
20 | OFF | ON | ON | OFF | OFF | 0xE6000 | 0xE7FFF | |
21 | OFF | ON | OFF | ON | ON | 0xE8000 | 0xE9FFF | |
22 | OFF | ON | OFF | ON | OFF | 0xEA000 | 0xEBFFF | |
23 | OFF | ON | OFF | OFF | ON | 0xEC000 | 0xEDFFF | |
24 | OFF | ON | OFF | OFF | OFF | 0xEE000 | 0xEFFFF | |
25 | OFF | OFF | ON | ON | ON | 0xF0000 | 0xF1FFF | |
26 | OFF | OFF | ON | ON | OFF | 0xF2000 | 0xF3FFF | |
27 | OFF | OFF | ON | OFF | ON | 0xF4000 | 0xF5FFF | |
28 | OFF | OFF | ON | OFF | OFF | 0xF6000 | 0xF7FFF | |
29 | OFF | OFF | OFF | ON | ON | 0xF8000 | 0xF9FFF | |
30 | OFF | OFF | OFF | ON | OFF | 0xFA000 | 0xFBFFF | |
31 | OFF | OFF | OFF | OFF | ON | 0xFC000 | 0xFDFFF | |
32 | OFF | OFF | OFF | OFF | OFF | 0xFE000 | 0xFFFFF |
Let's proceed to the actual construction then.
This is the bare 2-layer printed circuit board (PCB), component side.
And a view of the solder side.
Here are some detailed pictures of the PCB. I really like the evenness of the soldermask.
The quality of execution is very good, but those dents have to be filled away.
I kept all pin headers on the edge of the PCB for convenient cable management. Now that I better think about it, I should've provided two additional fan headers for a total of four.
I also think it would've been a good idea to provide support for 27C256 EEPROMs.
I began by soldering the smallest components first.
Followed by the MLCCs and the tantalum capacitors.
All these tantalum capacitors are largely unnecessary and can be easily substituted by standard electrolytic capacitors. Or even better, aluminum organic polymer capacitors. For this initial implementation, I just went crazy with an all-tantalum approach.
It surely does look retro.
Next, I soldered the eight card edge connectors, followed by some other components such as the LEDs, IC sockets, small-signal transistor, switch array, and ATX power connector.
In my opinion, retro computer-class PCBs must have shiny indicator LEDs.
And metal can transistors, wherever possible.
As I previously said, additional fan headers would've been good to have. While it's true that old hardware doesn't generate that much heat, it's also true that such a system backplane could also accommodate a dual Pentium III SBC. Thus, additional case fans can improve airflow for sure. Point taken for a future revision.
The silkscreen is of very good quality. As a side note, the machine screw holes are of M3 type. I think these are a bit smaller in diameter than standard mainboard fixing holes. While most of the small computer case machine screws do fit, neither of the plastic clamps used in some computer cases will fit.
The Molex connector that I used for the ATX power interface does not have additional side plastic tabs. While of less importance, I should update the board layout accordingly.
Here is the printed circuit board assembly (PCBA) with all the components soldered.
There are a few minor updates that I'd like to implement in future revisions, but overall I like the end result.
Again, the flashing stand-by indicator LED reservoir capacitors can easily be replaced by standard electrolytic capacitors. But the tantalum parts give that classic industrial look of the '80s.
Solder side. It was fun to solder all these many terminals but it was not so fun at all to clean the flux residues.
Eventually, the flux cleaned up really well with IPA, but it took a lot of time.
The bench testing phase followed up next. I am using a modern Corsair power supply rated at 450 W. It is absolutely overkill for my project, but it is all I could find around with a fair price-tag and from a reputable manufacturer.
All good now, so the PCBA is mounted in the PC case that I prepared for this project.
Can you spot the mismatched machine screws that I used to fix the backplane in the case? I will order some screws.
The first ISA card is installed; a Tseng Labs ET4000/W32i equipped with 2 Mb RAM.
I got this video card from Ted Allen, owner and designer at Micro-Labs, Inc. He is a very nice person and, at least as of 2019, he still has some of these fine cards for sale. Ted has other ISA video graphics cards as well, so please take a look since it is worth if you're into 1990s PCs.
Idling...
Next, comes the testing phase with real hardware. I used the following ISA cards.
And some standard storage hardware.
The classic problem with tall cases: cable management.
Now I think that the side panel could very well be made of glass so that all these LEDs could be seen. However, I won't be modifying a retro computer case anytime soon. But since I have three backplane PCBs, maybe I will build one in a modern case equipped with glass panels.
This case offers some kind of cable management support as it has some conveniently placed holes next to the left backplane edge.
Detailed view of the Intel Pentium 100 MHz CPU. It has a small fan, but I am pretty sure it can even work without one, if a bigger heat sink is used. TDP is about 8 W.
Games run smoothly. If you are too young -- good news for you, you have an entire life ahead -- to recognize the games below, here are their titles.
I played Doom a lot throughout the years. Somehow, I find the atmosphere in the original Doom more gloomy. But Doom II was more refined.
On the other hand, Duke Nukem 3D was pretty relaxed. Compared to Doom, there were very few moments where I was scared, or taken by surprise by a monster ambush. But it had its own charm.
Quake was revolutionary by all means. But I felt it was predictible. At least, if I compare it with the map complexity of the Heretic or Hexen games (which were based on the Doom engine).
I had a lot of fun designing and building this project. I fulfilled a small part of my dream from 26 years ago. This backplane laid the foundation for my x86 experiments, so I'd say it's time to move on to the next project.
Here I am in June 2020, already thinking into the future about my next project. So, still having some bare PCBs left from the initial order, I decided to build a second backplane. I will use this one with a new 80386 CPU-based server. More on this at a later point in time. (2023-edit) After experimenting for some time, I scrapped the server idea, and build another retro system instead.
For now, let's concentrate on the construction of this second backplane.
Again, the bare 2-layer printed circuit board.
This PCB has a minor scratch on the solder side between ISA Slot 4 and 5. Only the purple soldermask is scratched. The copper traces are not affected.
Soldering the components. Since Mouser was out of stock on 10 uF tantalum capacitors, I went with solid aluminum polymer capacitors instead. Which is how this project should be constructed, after all.
Capacitor array.
More capacitors.
I am missing a resistor array since it was not in stock at Mouser. Overall, with the polymer capacitors, the PCB assembly looks way more modern than the initial all-tantalum construction.
These LEDs are eye-catchy.
This design is already two years old. I can't believe how fast time flies by.
The solder side looks nice. This time I had fun both while soldering all these THD terminals and while cleaning the PCB, because I used pure acetone -- sic.
The backplane PCB assembly is mounted in an old AT case which I easily converted to ATX by slightly altering the internal mechanism of the power button. Then I soldered wires directly to the button terminals and made a small cable that connects to the backplane Power Switch header.
This old case has some weird looking plastic clamps for securing the mainboard (or backplane in my case) to the metal chassis. These posts don't fit the diameter of the holes that I designed. So, I had to improvise and make my own binding posts from some longer M3 machine screws, some washers, and a couple of nuts. This binding system looks good, is sturdy, and future-proof.
Testing with some random ISA cards that I have around.
I still have one bare PCB left waiting around. Maybe one day I will build another backplane.
This section lists the project version and revision history.
Copyright © 2004- Alexandru Groza
All rights reserved.
VER. 1.0 | REV. A