using SIMM RAM modules with Arduino for extra RAM

Hi, 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 :

Have fun!, Rafa

I know it’s an old thread but I’m new to the forum and RAMs interfacing. I found this video 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")

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