picoram-ultimate
A Raspberry Pi Pico (RP2040)-based SRAM Emulator and SD Card Interface for vintage Single Board Computers (SBCs).
About
PicoRAM Ultimate replaces some (or all) of the RAM chips of these
systems by emulating them in software with a Raspberry Pi Pico
(RP2040) microcontroller, slightly overclocked at 250 MHz. PicoRAM is
equipped with an SD card to store and load whole memory dumps to and
from SD card. These memory dump .RAM files are similar to Intel HEX
ASCII format and can be edited easily by hand on the PC. The utilized
FAT file system facilitates data / file exchange with the PC or Mac.
Currently supported SBCs / host machines are:
- Stock Heathkit ET-3400: MC6800 CPU, either 2x 2112 (512 Bytes) or 4x 2112 (1 KB)
- Stock Heathkit ET-3400A: MC6808 CPU, 2x 2114 (512 Bytes only!)
- Heathkit ET-3400 memory expansion mode: MC6800 CPU, 2 KBs via expansion header and additional GAL16V8 address decoder
- Multitech Microprofessor MPF-1, MPF-1B and MPF-1P: Z80 CPU, 1x 6116, 2 KBs
- Lab-Volt 6502: 6502 CPU, 2x 2114, 1 KB
- Philips MC6400 MasterLab: INS8070 SC/MP III CPU, 2x 2114, 1 KB
The development logs are on Hackaday.
This project is a follow-up to PicoRAM 2090 for the Busch Microtronic Computer System and PicoRAM 6116 for the Microprofessor MPF-1.
Video
This YouTube video shows most currently suported machines (with the exception of the MPF-1P):
Latest News
January 2026
The stock Heathkit ET-3400A is supported by now - firmware version 1.6 has been uploaded.
Here is a YT video.
October 2025
During my RetroChallenge 2025/10 contribution, I encountered a pretty nasty issue which took me quite a while to debug and resolve. Mostly chasing red herrings.
My rotating 3D Cube was glitching, and
it took me a long time to realize that this was caused by noisy ADC
button decoding and inappropriate ADC level thresholds. The problem
was that this happened without visual feedback in the UI, so I was
unware of it. Now, for each detected button press, the SRAM emulation
is halted; and also for spurious button presses that don't cause an UI
action (the CANCEL2 button was responsible). Now, halting the SRAM
emulation can only work properly if the Z80 WAIT signal is connected
to PicoRAM, which I had not in this case. Sometimes, I simply hold the
RESET button manually on the Microprofessor instead whilst operating
PicoRAM. Obviously, you can't just halt SRAM emulation and not halt
the CPU and expect it to run properly.
So, this problem was fixed by adjusting the ADC threshold levels in
the ULTIMATE.INI file. However, I didn't like that the spurious button
presses weren't reported and happened "silently", leaving me unaware
of what was happening. In the UI loop code, there was no switch case
that caught this case, and a default clause was missing as well. I
have now added such a default clause. It will show an error message
on the display informing the user about inadequate ADC button
threshold levels in the init file that may cause SRAM emulation
glitches.
Please install the new firmware (Version 1.5).
Overview
PicoRAM Ultimate is powered directly from the host machine; i.e., via the 5V and GND SRAM socket power pins.
To emulate SRAM, PicoRAM needs memory addresses, the 8bit data bus, as well as chip select and write enable signals. These are provided from either the 2112 sockets, the 2114 sockets, the 6116 socket, or the Heathkit expansion header.
The pinouts of these vintage SRAM chips can be found here:
The specs of these vintage SRAM chips are:
- 2112: 256 x 4 bits
- 2114: 1024 x 4 bits
- 6116: 2048 x 8 bits
Whereas the primary mode of operation is to simply use ribbon cables connecting PicoRAM to the host machine's SRAM sockets, there is also an extension header option on the PicoRAM PCB that allows to neatly and directly connect PicoRAM to the Heathkit ET-3400. In this case, the address and data bus as well as the control signals are not supplied via the SRAM chip sockets, but over...
Read more »
Michael Wessel





Plasmode
ptrav
Erik Piehl
My issue is time I dont have.. I still have a day job. This is still my passion though and love to work in my shop every chance I get. I have a really awesome project I am working on involving both arduino atmega 2560 and the NUCLEO-H723ZG for an In Circuit Tester for 8 bit arcade pcbs to help diagnose and repair more quickly. It has been in my list of to-do for a very long time but each time I get started on it some better technology comes along to make it better and add more features.