Go Down

Topic: using SIMM RAM modules with Arduino for extra RAM (Read 8013 times) previous topic - next topic


 This is about a little library to interface 30-pin SIMM RAM modules using atmega328p on Arduino.
It gives to Arduino projects extra RAM to store and restore dynamic data in sketches.

It was inspired in the great hack of "Linux on 8bit ATMEGA168", by
Dmitry Grinberg. But, the work of Dmitry is not easy to use as it is. In fact, it does
not work with Arduino, for several reasons. atmega328p and atmega168 are different.
Arduino has several less pins than Dmitry's project, and Arduino UNO is slower
(just 16Mhz). Just to mention some of them.

So it was a nightmare to find the proper timings to initialize the
SIMM RAM properly, and refresh it. After reading the old RAM chip
datasheets and souce code everywhere, we were able to use SIMM RAM
modules with Arduinos.
The github code is the release code, so others can use it easily, and
it is free software (under GPL v2).

SIMM RAMs were used in AT (286), 386, 486, Macintosh Plus, Macintosh
II, Quadra, Atari STE and Wang VS systems, so It is still ok to find
spare 30-bit SIMM RAM around, so we find useful to have learnt how to
operate them with Arduino.  Maybe this could be useful for others, that
is why I am sharing here this little project.

I attach just few pics about how to connect the SIMM RAM pins with your Arduino.
And  you can get all the information at the beta githup repo code :

We also added a link for this code at : http://playground.arduino.cc/Main/InterfacingWithHardware#Storage

Have fun!,


I know it's an old thread but I'm new to the forum and RAMs interfacing. I found this video http://youtu.be/PrusYdAgc6c and I think you might like it! It uses shift registers to index all the address. I think you can even use multiplexers for this... nice project though!


is that 64 bytes of dynamic storage?  you could add some toggle switches for some more banks of memory
serial.println("Please insert disk 2.. I mean flip switch on Address bus line 6 and press any key to continue")


Jul 20, 2018, 08:04 pm Last Edit: Jul 20, 2018, 08:20 pm by jlsilicon
I tried it.

- Only Compile on 1.0.5 for me :

 * COMPILE: - Arduino 1.0.5  - OK

 * COMPILE: - Arduino 1.6.13 - __vector_13__ ERROR

 * COMPILE: - Arduino 1.8.2  - __vector_13__ ERROR

Go Up