The 32-bit 80386DX ISA Single Board Microcomputer uses memory under the form of SIMMs. While I do have some very nice IBM 1 Mb SIMMs, I thought about designing a 4 Mb SIMM board so that I could use the full 32 Mb that my 386 computer supports. This amount of memory would've been overkill back in the early 1990s. And for an 80386 class machine, it is even now. But I always wanted to have enough space for a nice and fast RAM drive and still be able to run Windows 95 and all of my MS-DOS games without fiddling with the settings in CONFIG.SYS
all the time.
Here are the hardware specifications.
Let's see what is the main motivation to design and build these memory modules. In 1996 or so, I wanted to play this game called Aladdin. My 80386SX / 25 MHz machine was equipped with 2 Mb of RAM. The game required 4 Mb split between XMS and EMS. If you started that game without an XMS driver (HIMEM.SYS
) installed, I bet you remember that annoying error message XMS allocation error... And it was the same case if you didn't have an EMS driver (EMM386.EXE
) loaded. But in that case, the message said: EMS allocation error... Annoying as crap. Then there was Windows 95, which required at least 4 Mb of RAM to install and even load. Thus, I managed to source two more 1 Mb 30-pin SIMMs. Since that computer had only four SIMM slots, I filled all of them. I don't have to remember that if I dared to use SmartDrive (SMARTDRV.SYS
), the available RAM would drop quickly. Occasionally used a RAM drive for my software development routines. It was drastically reducing compilation time but it was eating about 1 Mb of RAM. So it was only natural that I had multiple CONFIG.SYS
configurations. While it was (partly) fun, it was also (damn) annoying at times.
Needless to say that even with 4 Mb of RAM, Aladdin ran way too slow on a 25 MHz 80386SX processor. It was unplayable for sure.
Of course, these days I can buy any SIMM from eBay. But there is a catch. 4 Mb 30-pin SIMMs are incredibly scarce and expensive. But 72-pin SIMMs are very common. And this idea of robbing a 72-pin SIMM of valuable DRAM integrated circuits became a reality. Thus, I bought two 16 Mb 72-pin SIMMs and carefully removed the ICs. I studied their datasheets and decided that producing a working schematic would be straightforward.
It took me two whole days to design this SIMM from start to end. As always, I routed every circuit trace manually. Initially, I tried to use the autorouter. But it made a big mess. It's also true that I use a very old program to design the layouts of my printed circuit boards. I had a lot of fun designing this memory module and I felt like I was making some kind of technological breakthrough. Of course, this is a wrong perception, as there's nothing science-fiction in a three integrated circuit board. But the fact that I knew the prices of RAM back in the 1990s, and the scarcity of 4 Mb modules, enabled me to keep up my euphoric mood.
Let's get started.
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-SIMM-430 is VER. 1.2 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: Bottom Silkscreen
Fig. 4: Top Layer Printed Circuit Board
Fig. 5: Inner Bottom Layer Printed Circuit Board
Fig. 6: Inner Top Layer Printed Circuit Board
Fig. 7: Bottom Layer Printed Circuit Board
Fig. 8: Top Layer Printed Circuit Board - Simulation
Fig. 9: Bottom Layer Printed Circuit Board - Simulation
If you want to see or hide older schematic diagrams please use the following function: Show Older Schematic Diagrams
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.
Beware that OSHPark PCBs are too thick for standard SIMM sockets and won't fit correctly. Read the rest of the article for more details.
I added another .ZIP archive with the Gerber files using the naming scheme expected by JLCPCB.
Compressed Gerber Files: simm-4mb.zip or simm-4mb-jlcpcb.zip
The following list contains the parts that are required to assemble one SIMM.
4Mx9 FPM/EDO 30-pin SIMM | ||||
---|---|---|---|---|
Identifier | Value | Qty | Notes | Mouser Number |
Printed Circuit Board | ASSY. 2486-SIMM-430 | 1 | VER. 1.2 REV. B | Order from OSHPark [1] Order from JLCPCB [2] |
IC1 | M5117400A-70SJ | 2 | 4Mx4 DRAM | Order from 3rd Parties |
IC2 | M514100C-70SJ | 1 | 4Mx1 DRAM | Order from 3rd Parties |
C1-C4 | 220 nF / 16 V | 4 | MLCC | 80-C1206C224K4R |
Notes:
Here is a list of things you need to pay attention to should you decide to build such SIMM board.
Following is described the interface connector and its respective pinout.
INTERFACE CONNECTOR DESCRIPTION | |||
---|---|---|---|
Identifier | Value | Notes | Pinout |
CON1 | 30-pin SIMM Interface | 1 - VDD 2 - /CAS 3 - D0 4 - A0 5 - A1 6 - D1 7 - A2 8 - A3 9 - VSS 10 - D2 11 - A4 12 - A5 13 - D3 14 - A6 15 - A7 16 - D4 17 - A8 18 - A9 19 - A10 20 - D5 21 - /WE 22 - VSS 23 - D6 24 - A11 (NC) 25 - D7 26 - P (Data Parity Out) 27 - /RAS 28 - /CASP (Parity CAS) 29 - D (Data Parity In) 30 - VDD |
While I was waiting for the PCBs to arrive from the factory, I sourced the required DRAM chips from the two 72-pin SIMMs that I was talking about in the introduction to this project. Here are the two 72-pin PCB assemblies. They sure do look nice.
Well, not for long. Because they're taking a hot trip in the ... bread toaster. That's my preferred way of quickly and controlled removal of SMD parts. Timing needs to be perfect or else, the ICs turn themselves into toasted ICs.
One or two minutes later, I carefully removed the PCB assembly from the toaster and quickly gave each IC a push with a small screwdriver. They fall down just like autumn leaves.
Next comes the long and boring job of cleaning the pins of old solder. I'm using a solder wick and plenty of activated rosin. This leaves a very big brown mess. But the solder is all gone. To remove the rosin residues, I'm using non-diluted acetone and cotton swabs. Needless to say that acetone fumes can quickly cause dizziness. Thus, I'm doing this operation in the open air. In addition, these fumes are extremely flammable. So extra care should be taken. But anyway, all pins are clean now.
The ICs look brand new, just as if they were never soldered before. The ones with fewer pins on the right side are 4Mx1 while the other ones on the left side are 4Mx4. In total, 32 Mb of RAM. This amount of RAM would've cost a small fortune back in the 80386 days. Now they value as much as pocket money.
Needless to say that these ICs are very sensitive to electrostatic discharge (ESD). Thus, they require careful handling at any time.
The PCBs have finally arrived from the factory.
I have sufficient PCBs for 32 Mb and one spare.
Soldering was straightforward. This is my first time soldering SOJ packages. And I think I did well. I have already inserted one of the modules into a SIMM socket, just to see if it fits. The socket pins scratched the SIMM pads -- but this is as expected.
If only I had these back in the early 1990s...
These modules appear to be of an almost industrial quality.
I had to manually file down the sharp edges. And, well, hand tools are not perfect. The PCBs appear chipped where the sharp pads were initially placed.
I like the looks of the 4Mx9 70ns SIMM side text. The factory says tolerances for wire size are around 0.005 inches. This text is made of even smaller segment vector widths and it still looks crisp. Well, technically, this is not really a wire, but a combination of copper and soldermask.
I tested four SIMMs and the 80386-based machine detected 16384 KB of RAM. Great, it works! However, there is a catch. I wasn't aware that SIMM sockets expected a 1.2 mm PCB thickness. OSHPark produces PCBs of 1.6 mm thickness. That means they are stressing the SIMM sockets a little too much.
At this point I will not continue with the next batch of four SIMMs on these 1.6 mm PCBs.
I will search for a different manufacturer that can make 4-layer PCBs in 1.2 mm thickness and I will redo these SIMMs somewhere in the future. First, I will recover the ICs from the modules that I have already built and then I will assemble all eight modules using the new PCBs.
I decided to give JLCPCB a try as they offer a 1.2 mm PCB thickness option. The printed circuit boards have arrived pretty fast. At first glance, they appear to be of good quality. I thought that black PCBs would look good for these low profile SIMMs. And I was right, I like the end result.
However, the 1
and 30
pin numbers are pretty thick. Somehow the factory failed to maintain the dimensions specified in the Gerber files. The inflated (bold) font looks a bit ugly for my taste.
The silkscreen is of a lower quality compared to OSHPark. But that is as expected.
Let's move on with the assembly. Here are the parts that are soon going to be 4 x 4 Mb SIMMs.
I use Kapton tape to protect the contact pads from flux and solder.
The first SIMM using the new 1.2 mm thickness printed circuit board is finished.
I cleaned all flux remnants with high purity acetone. The Kapton tape did a good job protecting the pads.
Then again, the ugly silkscreen. JLCPCB should really do something to improve their silkscreening technique.
After assembling some more SIMMs, I also do have an opinion on the soldermask. It is not that resistant to heat and mechanical abrasion. By hazard I failed to correctly solder one of the small MLCC parts. So I quickly desoldered that capacitor and then used some desoldering wick to clean up the contact pad. I applied very little pressure with the soldering iron tip to the wick. But even so, the soldermask lifted easily near that pad. For reference, the temperature was 300 °C sharp, nothing out of the ordinary. I ditched that PCB and used a new spare instead.
All eight modules are completed.
Integrated circuits. Needless to say that my SOJ soldering skills have vastly improved.
The first batch of eight modules are installed in one of my 32-bit 80386DX ISA Single Board Microcomputers.
I am happy that my 4Mx9 SIMM design works as expected. Also, it's great that I managed to solder SOJ packages by hand with the same old solder-drag method.
This section lists the project version and revision history.
Copyright © 2004- Alexandru Groza
All rights reserved.
VER. 1.0 | REV. A