Skip to the content
2 layers100 × 100 mmWD1771 Board, 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
122
Nets
180
Pads
714
Tracks, vias
1,704, 121
Pours
1
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
27 May 2024
Updated
13 Mar 2025

Overview

WD1771 Board 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 122 parts on 180 nets, routed with 1,704 tracks and 121 vias.

It is built around the 74HCT7540D, 74HCT7541D and 74LS245SC, with the 74ACT139PC, 74AHC1G08GW and SN74LVCC4245ANSR among its other parts. Its parts include 35 connectors, 29 resistors, 14 capacitors, 14 diodes and 11 ICs. It belongs with the retro computing and games boards and the FPGA and CPLD boards of this library.

Main components

6

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

122
QtyValueFootprintReferences
271kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR1, R2, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23 +11
13REDLED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolderD2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14
12100nCapacitor_SMD:C_1206_3216MetricC1, C2, C3, C4, C5, C6, C7, C11, C12, C13, C14, C15
11Conn_01x01Connector_PinHeader_1.27mm:PinHeader_1x01_P1.27mm_VerticalJ17, J18, J19, J20, J22, J23, J24, J25, J27, J28, J29
4M3MountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
210kPotentiometer_THT:Potentiometer_Vishay_T73XW_HorizontalRV1, RV2
210kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR4, R5
2BUSConnector_PinSocket_2.54mm:PinSocket_2x20_P2.54mm_VerticalJ1, J2
2Conn_01x08Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ7, J16
2Conn_01x09Connector_PinHeader_2.54mm:PinHeader_1x09_P2.54mm_VerticalJ6, J15
2Conn_02x02_Odd_EvenConnector_PinSocket_2.54mm:PinSocket_2x02_P2.54mm_VerticalJ30, J31
2DR/DENSELConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJP1, JP3
2SpareConnector_PinSocket_2.54mm:PinSocket_2x20_P2.54mm_VerticalJ3, J4
11N4148Diode_SMD:D_1206_3216Metric_Pad1.42x1.75mm_HandSolderD1
1220nCapacitor_SMD:C_1206_3216MetricC8
174ACT139Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU6
174AHC1G08Package_TO_SOT_SMD:SOT-23-5_HandSolderingU5
174HCT7540Package_SO:SO-20_5.3x12.6mm_P1.27mmU1
174HCT7540Package_SO:SO-20_12.8x7.5mm_P1.27mmU11
174HCT7541Package_SO:SO-20_12.8x7.5mm_P1.27mmU10
174HCT7541Package_SO:SO-20_5.3x12.6mm_P1.27mmU2
174LS245Package_SO:SOIC-20W_7.5x12.8mm_P1.27mmU8
18"Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP6
18-70pmy_own:Capacitor_TrimC9
18MOscillator:Oscillator_DIP-8X1
1CE_OverrideJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP4
1Conn_01x02Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_VerticalJ26
1Conn_01x14Connector_PinSocket_2.54mm:PinSocket_1x14_P2.54mm_VerticalJ11
1EConnector_PinHeader_2.00mm:PinHeader_1x01_P2.00mm_VerticalJ8
1EXTConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_HorizontalJ32
1FloppyConnector_PinHeader_2.54mm:PinHeader_2x17_P2.54mm_HorizontalJ12
1JTAGConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_HorizontalJ14
1LOGOmy_own:Logo_100ProzentOffner_10x2.7mmG***
1Logo Open Source HardwareSymbol:OSHW-Logo2_7.3x6mm_SilkScreenH6
1Logo kicadSymbol:KiCad-Logo2_6mm_SilkScreenH5
1MOTJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP2
1PH2Jumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP9
1R/WJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP8
1R/~{W}_eConnector_PinHeader_2.00mm:PinHeader_1x01_P2.00mm_VerticalJ5
1READYConnector_PinHeader_1.27mm:PinHeader_1x01_P1.27mm_VerticalJ34
1RWConnector_PinHeader_2.00mm:PinHeader_1x01_P2.00mm_VerticalJ9
1SIDEConnector_PinHeader_1.27mm:PinHeader_1x01_P1.27mm_VerticalJ35
1SIDEJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP7
1SN74LVCC4245ANSRPackage_SO:SO-24_5.3x15mm_P1.27mmU9
1TESTJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP5
1TG43Connector_PinHeader_1.27mm:PinHeader_1x01_P1.27mm_VerticalJ33
1TestConnector_PinSocket_2.54mm:PinSocket_1x17_P2.54mm_VerticalJ13
1WD1770Package_DIP:DIP-28_W15.24mm_SocketU3
1WD2791Package_DIP:DIP-40_W15.24mmU7
1XC9572VQ44Package_QFP:TQFP-44_10x10mm_P0.8mmU4
1~{DOE}Connector_PinHeader_2.00mm:PinHeader_1x01_P2.00mm_VerticalJ10
1~{EN}Connector_PinHeader_1.27mm:PinHeader_1x01_P1.27mm_VerticalJ21

More from roberto314/Unicomp3

12
  • 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 mmRamRomBoard, the printed circuit board in 3D

    RamRomBoard

    roberto314/Unicomp3

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

    97 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 mmMOS MultiParallel 2, the printed circuit board in 3D

    MOS MultiParallel 2

    roberto314/Unicomp2

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

    65 parts1
  • 4 layers127.6 × 98 mmHomebrew6502Project, the printed circuit board in 3D

    Homebrew6502Project

    snorklerjoe/useful6502

    A homebrew 65c02s-based computer and custom operating system, with a handful of modern features.

    275 parts1MIT
  • 2 layers100 × 150 mmMusic2xxx, the printed circuit board in 3D

    Music2xxx

    fordp2002/music2xxx

    A clone of the Hybrid Music2000 Midi interface for the Acorn BBC Microcomputer

    57 parts1
  • 4 layers200 × 50 mmMemory, the printed circuit board in 3D

    Memory

    pottsali/cpu-pub

    Homebrew CPU project

    77 parts3
  • 2 layers60.6 × 44.9 mmA500-2Meg Chip RAM PinHeaders, the printed circuit board in 3D

    A500-2Meg Chip RAM PinHeaders

    LIV2/A500-2Meg-Chip-ram

    An Adapter to retrofit a 2MB agnus into a 1MB Amiga 500/2000

    18 parts91
  • 2 layersDiffuino selector, the printed circuit board in 3D

    Diffuino selector

    elixpo/elixpo_chapter

    Elixpo’s canonical collection for public build-and-release Chapters, bringing open-source software, reproducible research, hardware, and community contributions into one attributable record.

    46 parts85
  • 2 layers90 × 109 mmInterface 303, the printed circuit board in 3D

    Interface 303

    jeanpri/303

    303 eurorack interface for x0x-heart

    169 parts23

Questions

How big is the WD1771 Board PCB?

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

What parts does the WD1771 Board use?

122 parts, built around the 74HCT7540D, 74HCT7541D, 74LS245SC and 74ACT139PC. 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 WD1771 Board KiCad files?

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

Can I use the WD1771 Board 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).