Skip to the content
PCBKitNew board
4 layers209.5 × 108.5 mmControl, the printed circuit board in 3D

Replica of the Launch Vehicle Digital Computer using 74-series logic

Size
209.5 × 108.5 mm
Copper layers
4
Thickness
1.6 mm
Parts
81
Nets
228
Pads
789
Tracks, vias
0, 0
Pours
4
Routed
Not yet
KiCad
KiCad 9.0 (file 20241229)
Created
7 Mar 2025
Updated
29 Jan 2026

Overview

Control is an open-source printed circuit board by 89Mods, from the 89Mods/LVDC repository on GitHub, published under the MIT licence. It is a 4-layer board of 209.5 × 108.5 mm with 81 parts on 228 nets.

It is built around the 74HCT157D, 74HCT08D and 74HCT32D, with the 74HCT74D, 74HCT04D and 74HC574D among its other parts. Its parts include 41 ICs, 13 capacitors, 11 resistors, 8 diodes and 8 connectors.

Main components

12

README

README.md

LVDC

Replica of the Launch Vehicle Digital Computer using 74-series logic. This projects only aims to keep the CPU Architecture binary-compatible with the original. Implementation details, IO Peripherals and Software are all originally created by me. This is party due to the fact that detailed hardware descriptions (i.e. schematics) are not as abundant for the LVDC as for the AGC, but also because this project doubled as a challenge to myself to implement such an odd instruction set, but using every trick I’ve learned from my years of engineering integrated circuit layouts. It turns out that applying nanoscale engineering tricks to a macroscale discrete logic build can work out quite well. The clock speed of this computer is 2.5MHz, but it can probably go faster.

This LVDC is accurate to the original in the sense that it executes the same instructions that function the exact same, has the same memory layout (including special locations like HOP save and MQ) and can execute snippets of original LVDC code.

The differences are:

  • This computer is parallel and not bit-serial, and is also microcoded
  • It is implemented using 74-series logic and not discrete transistors (I wish to be able to take it with me to events, so it couldn’t get too big)
  • Everything hooked up to the PIO (IO read/write) instruction is my own invention, with the exception of the the interrupt latch clear IO location, which it shares with the original LVDC
  • Instruction cycles times are much faster, probably on an order of magnitude or more
  • The hardware multiply/divide circuitry (as designed so far) does NOT share the inacuracies in low-order bits as the original LVDC, instead always producing the 100% correct result

Infact, I took the most liberties with the IO Card, which contains various modern components hooked into the CPU’s IO Bus. Its mostly a random mashup of things I thought would be cool (there is even a Commodore SID replica in there) to demonstrate the computer with.

The most significant addition is that of a front panel (the original LVDC was an embedded device with no user interface) which is a bit like a DSKY, but stripped down and only capable of displaying in hexadecimal. The panel is optional. I can be safely removed and the computer used as a true embedded device.

Software wise, things are still WiP. Two ROMs provide just enough storage for a small bootloader to initialize the entire SRAM from a flash IC. Sadly, core memory is far too bulky and expensive, so this will have to do. I created a mini-OS for this system that allows a user to control the computer by typing in commands consisting of a Noun and Verb into the keypad.

Known Issues:

  • The HOP Save feature is bugged. The Instruction Pointer in the stored value is off by one. Trying to return with it will return execution to the transfer or HOP instruction that started the subroutine call, not the one following it, triggering an infinite loop. Fixed for now in software by modifying the saved value before return.
  • While all schematic files have been updated with fixes to additional problems discovered post-production, the schematic layout for the Control board still need to be redone.
  • The EXM instruction has only been minimally tested because I don’t understand how it is useful (thing takes up half a dozen ICs just to handle weird edge cases caused by it and I’m still left scratching my head on how I’m supposed to use it).
  • The hardware multiply/divide functionality has yet to be physically implemented. In LVDC.circ you can see that I have designed it, but I’ve yet to translate this to a PCB design because I couldn’t get it made yet anyways (its the most expensive part of the whole computer).
  • The interrupt logic sometimes does not reset properly and I don’t understand why

Repository Structure

LVDC.circ is where I prototyped the logic design using Logisim Evolution, but it is quite bugged and now far outdated.

microcode_gen.c is the C program that spits out the raw binary images for the microcode ROMs from a more high-level description.

KiCad is where the schematics and PCB layouts live. Related to this is CPLD, which holds the HDL code for the CPLD on the GPIO PCB.

Bench is the result of using KiCadVerilog to automatically extract Verilog netlists out of the KiCad schematic files and using them to build a simulation of the computer for verification purposes before starting physical production. This is quite a novel approach and I used it here for the first time.

behavioral contains a Behavioral Verilog model of the LVDC I used as a starting point. It is incredibly inaccurate as I have not updated it in same time.

Programs contains the software I’m writing for this computer. Currently just the Bootloader source and the WiP mini-OS mentioned earlier. My fork of the AS Macroassembler has support for the LVDC, and this is used to assemble all LVDC code in this directory.

Parts

81
QtyValueFootprintReferences
1074HCT157Package_SO:SO-16_3.9x9.9mm_P1.27mmU3, U4, U5, U6, U8, U20, U36, U37, U38, U39
8100nFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C7, C8, C9, C10, C11, C12, C13
8LEDLED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolderD1, D2, D3, D4, D5, D6, D7, D8
71KResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR1, R2, R6, R8, R9, R10, R11
774HCT08Package_SO:SO-14_3.9x8.65mm_P1.27mmU9, U11, U21, U24, U25, U28, U30
510µFCapacitor_THT:CP_Radial_D4.0mm_P2.00mmC2, C3, C4, C5, C6
474HCT32Package_SO:SO-14_3.9x8.65mm_P1.27mmU10, U16, U22, U29
474HCT74Package_SO:SO-14_3.9x8.65mm_P1.27mmU18, U19, U26, U27
315KResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR4, R5, R7
374HCT04Package_SO:SO-14_3.9x8.65mm_P1.27mmU2, U17, U23
3Conn_01x01Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalJ6, J7, J8
228C16Package_DIP:DIP-24_W15.24mm_SocketU12, U13
274HC574Package_SO:SO-20_12.8x7.5mm_P1.27mmU1, U7
274HC74Package_SO:SO-14_3.9x8.65mm_P1.27mmU33, U40
274HC85Package_DIP:DIP-16_W7.62mmU31, U32
14.7KResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR3
174HC00Package_SO:SO-14_3.9x8.65mm_P1.27mmU35
174HC02Package_SO:SO-14_3.9x8.65mm_P1.27mmU41
174HC688Package_SO:SO-20_12.8x7.5mm_P1.27mmU34
174HCT00Package_SO:SO-14_3.9x8.65mm_P1.27mmU15
174HCT163Package_DIP:DIP-16_W7.62mmU14
1TO_ALUConnector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ2
1TO_BACKPLANEConnector_PinHeader_2.54mm:PinHeader_2x22_P2.54mm_VerticalJ1
1TO_MEMORYConnector_PinHeader_2.54mm:PinHeader_2x06_P2.54mm_VerticalJ3
1TO_MULDIVConnector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ5
1TO_REGISTERSConnector_PinHeader_2.54mm:PinHeader_2x06_P2.54mm_VerticalJ4

Questions

How big is the Control PCB?

It measures 209.5 × 108.5 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Control use?

81 parts, built around the 74HCT157D, 74HCT08D, 74HCT32D and 74HCT74D. 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 Control KiCad files?

From the 89Mods/LVDC repository on GitHub, at the commit this page was made from: the board is KiCad/Control/Control.kicad_pcb and its schematic KiCad/ALU/ALU.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Control design in my own project?

Its repository publishes it under the MIT 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 89Mods/LVDC

8
  • 2 layers258.1 × 122.9 mmFrontPanel, the printed circuit board in 3D

    FrontPanel

    89Mods/LVDC

    Replica of the Launch Vehicle Digital Computer using 74-series logic

    124 parts2MIT
  • 4 layers209.6 × 108.5 mmGPIO, the printed circuit board in 3D

    GPIO

    89Mods/LVDC

    Replica of the Launch Vehicle Digital Computer using 74-series logic

    113 parts2MIT
  • 4 layers209.5 × 108.5 mmRegisters, the printed circuit board in 3D

    Registers

    89Mods/LVDC

    Replica of the Launch Vehicle Digital Computer using 74-series logic

    98 parts2MIT
  • 4 layers209.5 × 108 mmALU, the printed circuit board in 3D

    ALU

    89Mods/LVDC

    Replica of the Launch Vehicle Digital Computer using 74-series logic

    83 parts2MIT
  • 4 layers209.5 × 108.5 mmMemory, the printed circuit board in 3D

    Memory

    89Mods/LVDC

    Replica of the Launch Vehicle Digital Computer using 74-series logic

    58 parts2MIT
  • 2 layers105.2 × 70.6 mmBusMonitor, the printed circuit board in 3D

    BusMonitor

    89Mods/LVDC

    Replica of the Launch Vehicle Digital Computer using 74-series logic

    53 parts2MIT
  • 4 layers153.9 × 60.5 mmBackplane, the printed circuit board in 3D

    Backplane

    89Mods/LVDC

    Replica of the Launch Vehicle Digital Computer using 74-series logic

    29 parts2MIT
  • 2 layers25.9 × 11.2 mmTemperatureMonitor, the printed circuit board in 3D

    TemperatureMonitor

    89Mods/LVDC

    Replica of the Launch Vehicle Digital Computer using 74-series logic

    10 parts2MIT

Similar boards

  • 2 layers69.9 × 96.1 mmZxsd, the printed circuit board in 3D

    Zxsd

    sittner/tinyfs

    TinyFS is a minimalist filesystem designed for extremely constrained embedded systems. The initial reason to create this project was the attempt to build a filesystem that can run on a ZX81 without any additional…

    37 parts3GPL-3.0
  • 2 layers200 × 150 mmMSX ONE, the printed circuit board in 3D

    MSX ONE

    jdgabbard/MSX-ONE-Computer

    MSX 1 Computer from discrete parts

    114 parts28GPL-3.0
  • 4 layers280 × 140 mmP8x alu card, the printed circuit board in 3D

    P8x alu card

    ksr/p8x

    Generated by generators/genkicad.py from the canonical geneagle netlist (CARDS["peripheral-card"]), same standard as the memory card: 4-layer (F/B signals, In1=GND, In2=VCC planes), a bypass cap above each IC, a…

    77 parts
  • 2 layers177.8 × 130.8 mmDurango, the printed circuit board in 3D

    Durango

    zuiko21/minimOS

    Scalable OS for 6502/65816

    159 parts23MIT
  • 2 layers297.2 × 180.3 mm8bit computer, the printed circuit board in 3D

    8bit computer

    vascofazza/8bit-cpu

    Schematics & code for my 74LS-based 8-bit MK1 CPU

    377 parts317MIT
  • 4 layers244.5 × 393.4 mm8-bit cpu, the printed circuit board in 3D

    8-bit cpu

    nurk/8-bit-cpu

    8-bit CPU

    458 parts
  • 4 layers304.8 × 330.2 mm2000ATX, the printed circuit board in 3D

    2000ATX

    jasonsbeer/Amiga-2000-EATX

    An Amiga 2000 PCB in the EATX form factor.

    614 parts200GPL-3.0
  • 2 layers368.3 × 215.9 mmTTL 6510 Computer fab, the printed circuit board in 3D

    TTL 6510 Computer fab

    StefansAI/TTL-6510-Computer

    Yet another CPU made from TTL chips

    330 parts1