Skip to the content
PCBKitNew board
2 layers100 × 100 mmRamRomBoard, the printed circuit board in 3D

A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

Size
100 × 100 mm
Copper layers
2
Thickness
1.6 mm
Parts
97
Nets
191
Pads
720
Tracks, vias
2,399, 325
Pours
3
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
27 May 2024
Updated
13 Mar 2025

Overview

RamRomBoard is an open-source printed circuit board by roberto314, from the roberto314/Unicomp3 repository on GitHub, published under the BSD-2-Clause licence. It is a 2-layer board of 100 × 100 mm with 97 parts on 191 nets, routed with 2,399 tracks and 325 vias.

It is built around the SN74LVC245ANSR, 74LVC125AD and DS1314E+, with the 74HC590D, 74LVC595AD and 74AHC1G14GV among its other parts. Its parts include 20 ICs, 16 capacitors, 11 diodes, 10 resistors and 9 connectors. It belongs with the retro computing and games boards and the STM32 boards of this library.

Main components

12

README

README.md

UNICOMP

Version 3.00

A modular 8-bit Computer able to recreate (nearly) every microcomputer of the mid 70s to early 80s in Hardware without FPGAs (although an FPGA can be added). Can also be used as a teaching tool for:

  • VHDL or Verilog
  • C
  • RTOS (STM32F401 runs ChibiOS. Link: https://www.chibios.org)
  • Python
  • bash and linux in general (Olimex board runs linux with fbterm and tmux)
  • Harwaredesign
  • Timing of CPUs
  • maybe Assembler
  • SPI and I2C Interfaces
  • CPLDs and FPGAs

It is different from other designs because of these points:

  • it uses a 3.3V only Bus,
  • it uses fast RAM for 16 chipselect outputs with single address resolution over the whole 1MB range,
  • it uses one SRAM for RAM and ROM replacement (can be write writeprotected) with 1MB,
  • it uses a clock generator chip (DS1085) - no more crystals to change,
  • it is configureable via STM32 (RAM and ROM content, Clock frequency, chip select lines),
  • it can program the CPLDs (only XC9572 and XC9536 tested) from the STM32, no external programmer needed.
  • Board size is 100mm x 100mm - no backplane (like the PC/104 standard. Link: https://en.wikipedia.org/wiki/PC/104).
  • and maybe most convenient: it can change RAM and ROM content on the fly without crashing the CPU. For example starting the Apple I, going into Basic and uploading the program in about half a second is really nice.

Unicomp plus Logic Analyzer: Unicomp plus Logic analyzer

Unicomp modules

  • USB-Serial board:

    • a simple board with an universal 4x USB to UART module from ebay (FT4232).
  • CPU board:

    • can be any 8-bit CPU (6502, 6802, 6809, 68008, 6803, 8051,...)
    • a CPLD (XC9572) for clock generation and glue logic
  • Multi Serial boaŕd:

    • suggested chip select #0
    • can be used with the following serial interface chips: MC6850, MOS6551, MOS6552 or pin compatible
  • Multi Parallel boaŕd:

    • suggested chip select #1
    • can be used with the following parallel interface chips: MC6820, MC6821, MOS6520, MOS6521, MOS6522, MOS6526, MOS8520, MOS6532 in the first slot
    • the first slot can additionally mimic a MOS6530
    • the second slot can accommodate a MOS6522 or pin compatible
  • RAMROM board:

    • chip select fixed at #15 (for chipselect RAM or ROM) and #14 for Write Disable (High for ROM),
    • 1M of SRAM plus an extra 16-bit RAM for address decoding,
    • a STM32F401 'blackpill' board to fill the SRAMs with data over USB,
    • USB shell on the STM32 to change ROM content on the fly,
    • also configures the Address Range of all peripheral modules,
    • acts as a XSVF Player to program the CPLDs
  • Prototype board:

    • empty board for prototyping
    • no CPLD
  • MAX-II (EPM240) board:

    • CPLD plus Buffers
  • self made module:

    • chip select can be any non-used line in the Range from 0 to 13.
    • size is 100mm x 100mm
    • there is the prototype board in the repository for the position of the connectors and also the labels (pinout)

Configuration RAM

The configuration is done with 1Mx16 fast ram on the RAMROM board. It is configured from the STM32F401. The cs = 15 is for writing the main RAM, cs = 14 is the Write Disable. The rest is free.

Working Recreations of old computers (tested again with Unicomp3)

Nameprim. IOchips usedosweblink
Motorola MEK D2serialMC6802, MĆ6850newbug, xswtbug, mondebLink: https://www.retrotechnology.com/restore/smithbug.html
Motorola MEK D1serialMC6802, MĆ6821 (plus Arduino)MikbugLink: https://www.retrotechnology.com/restore/smithbug.html
SWTPC 6800serialMC6802, MĆ6821 (plus Arduino)MikbugLink: https://deramp.com/swtpc.com/
SWTPC 6800serialMC6802, MĆ6850SWTBUG, SWTBUGA, Mondeb, xSWTBUGLink: https://deramp.com/swtpc.com/
Heathkit ET3400serialMC6802, MĆ6850MITS BASIC, TSC MicroBASIC,...Link: https://github.com/jefftranter
HD6303 Board (Eric Klaus)serialHD6303 or MC6803Monitor +BASICLink: https://sites.google.com/site/ericmklaus/projects-1/hd6303cpuboard
MC3 ComputerserialHD6303 or MC6803MonitorLink: https://www.waveguide.se/?article=mc3-a-diy-8-bit-computer
Grant Searle 6809 boardserialMC6809E, MC6850MS BasicLink: http://searle.x10host.com/6809/Simple6809.html
Grant Searle 6502 boardserialMOS6502, MC6850OSI BasicLink: http://searle.x10host.com/6502/Simple6502.html
Daryl Rictor 6502 boardserialMOS6502, R6551SBC-2 (monitor only)Link: https://sbc.rictor.org/info2.html
Daryl Rictor 6502 boardserialMOS6502, MC6850SBC-2 (monitor only)Link: https://sbc.rictor.org/info2.html
SYM1serialMOS6502, UM6532SYM1 ( +BASIC +RAE)Link: http://retro.hansotten.nl/6502-sbc/synertek-sym-ktm/sym-1/
KIM1serialMOS6502, UM6532KIM1Link: http://retro.hansotten.nl/6502-sbc/kim-1-manuals-and-software/
Apple IserialMOS6502, MĆ6821 (plus Arduino)Wozmon + BASICLink: http://retro.hansotten.nl/6502-sbc/apple-1/
DREAM 6800BAS (Video)MC6802, MAX-IIDREAM operating System (Chip8)Link: http://www.mjbauer.biz/DREAM6800.htm
Psion Organizer ILCDHD6303Psion OSLink: https://www.jaapsch.net/psion/index.htm

python helper scripts

  • UC3_upload.py: multi-function script. up- or download RAM Content, write or read the clock chip, set the reset pin, upload configuration data from file, upload RAM data from file, gets version number,

  • UC3_make_uploadfile.py: creates an .ucb file for upload. It can have multiple RAM locations and lengths.

CPLD programming

Used Software and OS

Used Hardware

  • Oscilloscope: Rigol DS1054Z (4 channel)
  • Logic Analyzer: Hantek 4032L (32 channel)

History Lesson

The unicomp Project started a couple of years ago and is developed in my spare time. It is intended to be a module system to test out different hardware configurations or CPLD- or FPGA- extensions and to recreate old systems and test software and operating systems.

Differences Unicomp2 from Unicomp1:

  • chipselect not with CPLD but with RAM on every peripheral board - more flexible,
  • chipselect resolution improved to two,

Differences Unicomp3 from Unicomp2:

  • chipselect RAM is on RAMROM Board (16-bit wide) - that leads to:
  • simpler (and cheaper) peripheral modules,
  • no linux SBC needed,
  • CPLD programming from STM32 or with external programmer (JTAG Header on every CPU Module)
  • 3.3V Supply on RAMROM board,
  • RAM has now a backup battery (CR2032) battery,
  • improved documentation.

Parts

97
QtyValueFootprintReferences
13100nCapacitor_SMD:C_1206_3216MetricC1, C2, C3, C5, C6, C7, C8, C9, C10, C11, C13, C14, C16
10BAV70Package_TO_SOT_SMD:SOT-23D2, D3, D4, D5, D6, D7, D8, D9, D10, D11
9.Connector_PinHeader_1.00mm:PinHeader_1x01_P1.00mm_VerticalTP3, TP4, TP5, TP6, TP8, TP9, TP12, TP13, TP14
61kResistor_SMD:R_1206_3216MetricR1, R2, R3, R4, R7, R8
410kResistor_SMD:R_1206_3216MetricR5, R6, R9, R10
4MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
333u/16Capacitor_Tantalum_SMD:CP_EIA-7343-31_Kemet-DC4, C12, C15
374HC590Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU7, U8, U9
374LVC595Package_SO:SO-16_3.9x9.9mm_P1.27mmU13, U14, U17
3SN74LVC245ANSRPackage_SO:SO-20_5.3x12.6mm_P1.27mmU15, U16, U19
21kResistor_THT:R_Array_SIP9RN3, RN4
274AHC1G14Package_TO_SOT_SMD:SOT-23-5U6, U10
2BUSConnector_PinSocket_2.54mm:PinSocket_2x20_P2.54mm_VerticalJ1, J2
2SpareConnector_PinSocket_2.54mm:PinSocket_2x20_P2.54mm_VerticalTP1, TP2
1033TBVSAmy_own:ToggleSwitch_CTS_033TBVSSW1
174HC165Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU18
174LVC08ADPackage_SO:SOIC-14_3.9x8.7mm_P1.27mmU3
174LVC125Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU1
174LVC1G32Package_TO_SOT_SMD:SOT-23-5_HandSolderingU5
1AZ1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U2
1CPRConnector_PinHeader_1.00mm:PinHeader_1x01_P1.00mm_VerticalTP7
1CR2032my_own:Battery_CR2032_Horizontal_ThreeHolesBT1
1DS1085Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU4
1DS1314Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU20
1Dual LED SocketConnector_PinHeader_2.54mm:PinHeader_2x02_P2.54mm_VerticalJ8
1IS61WV102416FBLL1T2Package_SO:TSOP-II-54_22.2x10.16mm_P0.8mmU11
1IS61WV10248EDBLL-10TLPackage_SO:TSOP-II-44_10.16x18.41mm_P0.8mmU12
1JTAGConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_HorizontalJ9
1LOGOmy_own:Logo_100ProzentOffner_10x2.7mmG***
1Micro_SD_Card_Det2Connector_Card:microSD_HC_Hirose_DM3D-SFJ10
1PolyfuseFuse:Fuse_Littelfuse_395SeriesF1
1RD_OvrJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP5
1STM32F401Package_DIP:DIP-40_W15.24mm_Socket_LongPadsJ7
1SW_PushButton_Switch_THT:SW_Tactile_SPST_Angled_PTS645Vx31-2LFSSW2
1Screw_Terminal_01x02TerminalBlock_RND:TerminalBlock_RND_205-00012_1x02_P5.00mm_HorizontalJ5
1U3_OvrJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP6
1UM1SDiode_SMD:D_SMBD1
1USB_B_MicroConnector_USB:USB_Micro-B_Amphenol_10104110_HorizontalJ6
1VSELConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ3
1WR_OvrJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP7
1~{BW}Connector_PinHeader_1.00mm:PinHeader_1x01_P1.00mm_VerticalTP10
1~{CE_INT14} / ~{CE_EXT14}Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mmJP4
1~{CEin}Connector_PinHeader_1.00mm:PinHeader_1x01_P1.00mm_VerticalTP11
1~{CEi} or ~{BW}Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mmJP2
1~{CEi} to GNDJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP3

Questions

How big is the RamRomBoard PCB?

It measures 100 × 100 mm and has 2 copper layers, 1.6 mm thick.

What parts does the RamRomBoard use?

97 parts, built around the SN74LVC245ANSR, 74LVC125AD, DS1314E+ and 74HC590D. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the RamRomBoard KiCad files?

From the roberto314/Unicomp3 repository on GitHub, at the commit this page was made from: the board is RamRomBoard/schematics_v10/RamRomBoard.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the RamRomBoard design in my own project?

Its repository publishes it under the BSD-2-Clause licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from roberto314/Unicomp3

12
  • 2 layers100 × 100 mmWD1771 Board, the printed circuit board in 3D

    WD1771 Board

    roberto314/Unicomp3

    A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

    122 partsBSD-2-Clause
  • 2 layers100 × 100 mmRAMROM Board, the printed circuit board in 3D

    RAMROM Board

    roberto314/Unicomp3

    A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

    105 partsBSD-2-Clause
  • 2 layers100 × 100 mm6809 CPU, the printed circuit board in 3D

    6809 CPU

    roberto314/Unicomp3

    A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

    103 partsBSD-2-Clause
  • 2 layers100 × 100 mmSchematics v10, the printed circuit board in 3D

    Schematics v10

    roberto314/Unicomp3

    A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

    92 partsBSD-2-Clause
  • 2 layers100 × 100 mm6502 6800 CPU, the printed circuit board in 3D

    6502 6800 CPU

    roberto314/Unicomp3

    A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

    91 partsBSD-2-Clause
  • 2 layers100 × 100 mmMMU v1, the printed circuit board in 3D

    MMU v1

    roberto314/Unicomp3

    A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

    90 partsBSD-2-Clause
  • 2 layers100 × 100 mmVideoBoard v1, the printed circuit board in 3D

    VideoBoard v1

    roberto314/Unicomp3

    A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

    86 partsBSD-2-Clause
  • 2 layers100 × 100 mmMP Board, the printed circuit board in 3D

    MP Board

    roberto314/Unicomp3

    A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

    71 partsBSD-2-Clause
  • 2 layers100 × 100 mmMOT Serial v11, the printed circuit board in 3D

    MOT Serial v11

    roberto314/Unicomp3

    A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

    68 partsBSD-2-Clause
  • 2 layers66.5 × 50.5 mm6303X FP64, the printed circuit board in 3D

    6303X FP64

    roberto314/Unicomp3

    A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

    60 partsBSD-2-Clause
  • 2 layers100 × 100 mmCpu template with buffer, the printed circuit board in 3D

    Cpu template with buffer

    roberto314/Unicomp3

    A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

    58 partsBSD-2-Clause
  • 2 layers100 × 100 mmMOT Serial v10, the printed circuit board in 3D

    MOT Serial v10

    roberto314/Unicomp3

    A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

    56 partsBSD-2-Clause

Similar boards

  • 2 layers100 × 100 mmRAMROM 512k board, the printed circuit board in 3D

    RAMROM 512k board

    roberto314/Unicomp2

    A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

    58 parts1
  • 4 layers150 × 100 mmVersion current, the printed circuit board in 3D

    Version current

    oomlout/oomlout_oomp_project_src

    158 parts
  • 4 layers622.7 × 375.7 mmCft ctl, the printed circuit board in 3D

    Cft ctl

    alexiosc/cft

    The CFT homebrew minicomputer

    215 parts6GPL-3.0
  • 2 layers171.7 × 97.4 mmHhkb split right, the printed circuit board in 3D

    Hhkb split right

    ms0216/hhkb-split

    HHKB Professional HYBRID Type-S の使い勝手を再現する完全分割型キーボード(ZMK / XIAO nRF52840 / build123d による寸法駆動CAD)

    83 parts1
  • 4 layers52 × 46 mmRouted final, the printed circuit board in 3D

    Routed final

    MLeggiero/taxelscan

    TaxelScan reads a 16 × 32 pressure surface (512 taxels) at 80 frames per second by default and has been measured at 200 fps.

    27 partsMIT
  • 2 layers104.1 × 71.1 mmMinifp, the printed circuit board in 3D

    Minifp

    eigenco/frankenpi

    This is an experimental project to connect Raspberry Pi with the help of cheap Cyclone IV FPGA board to 8-bit ISA bus to act as multiple different devices.

    69 parts139
  • 4 layers70 × 78 mm2067-Z8S180, the printed circuit board in 3D

    2067-Z8S180

    johnwinans/2067-Z8S180

    Z8S180 Breakout Board

    13 parts7