
FrontPanel
89Mods/LVDC
Replica of the Launch Vehicle Digital Computer using 74-series logic

Replica of the Launch Vehicle Digital Computer using 74-series logic
GPIO 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.6 × 108.5 mm with 113 parts on 273 nets, routed with 2,097 tracks and 402 vias.
It is built around the EPM240T100C3, SN74LV1T34DCK and 74HCT244D, with the DAC7611P, LM358 and W25Q32FVSSIG among its other parts. Its parts include 40 resistors, 35 ICs, 18 capacitors, 16 connectors and 2 diodes. It belongs with the FPGA and CPLD boards of this library.
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:
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:
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).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.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 34 | 10K | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R1, R2, R10, R11, R13, R14, R16, R17, R20, R21, R22, R23, R24, R25, R26, R27 +18 |
| 17 | 1µF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C2, C3, C4, C5, C6, C7, C8, C10, C11, C12, C13, C14, C15, C16, C17, C18 +1 |
| 15 | SN74LV1T34DCK | Package_TO_SOT_SMD:SOT-23-5 | U8, U9, U11, U12, U13, U14, U20, U21, U22, U24, U27, U28, U33, U34, U35 |
| 4 | Conn_01x01 | Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical | J3, J4, J5, J10 |
| 4 | Conn_01x04 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J7, J8, J12, J16 |
| 3 | 74HCT244 | Package_SO:SO-20_12.8x7.5mm_P1.27mm | U6, U25, U26 |
| 2 | 1K | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R15, R18 |
| 2 | 74HC574 | Package_SO:SO-20_12.8x7.5mm_P1.27mm | U5, U30 |
| 2 | Conn_01x08 | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J13, J14 |
| 2 | DAC7611 | Package_DIP:DIP-8_W7.62mm | U17, U18 |
| 2 | LED | LED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolder | D1, D2 |
| 2 | RADIO_MODULE | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J9, J15 |
| 1 | 10K | Potentiometer_THT:Potentiometer_ACP_CA9-V10_Vertical | RV1 |
| 1 | 10µF | Capacitor_THT:CP_Radial_D4.0mm_P2.00mm | C1 |
| 1 | 1M | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R40 |
| 1 | 2K | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R38 |
| 1 | 330 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R12 |
| 1 | 33K | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R19 |
| 1 | 74AHC1G86 | Package_TO_SOT_SMD:SOT-23-5_HandSoldering | U31 |
| 1 | 74HC32 | Package_SO:SO-14_3.9x8.65mm_P1.27mm | U29 |
| 1 | 74HC74 | Package_SO:SO-14_3.9x8.65mm_P1.27mm | U15 |
| 1 | 74HCT74 | Package_SO:SO-14_3.9x8.65mm_P1.27mm | U7 |
| 1 | AMS1117-3.3 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U4 |
| 1 | AUDIO_OUT | TerminalBlock:TerminalBlock_bornier-2_P5.08mm | J6 |
| 1 | CXO_DIP8 | Oscillator:Oscillator_DIP-8 | X1 |
| 1 | EPM240T100 | Package_QFP:LQFP-100_14x14mm_P0.5mm | U1 |
| 1 | HT12D | Package_DIP:DIP-18_W7.62mm | U23 |
| 1 | HT12E | Package_DIP:DIP-18_W7.62mm | U32 |
| 1 | JTAG | Connector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_Vertical | J1 |
| 1 | LM358 | Package_DIP:DIP-8_W7.62mm | U19 |
| 1 | MCP1319MT-29LE-OT | Package_TO_SOT_SMD:SOT-23-5_HandSoldering | U2 |
| 1 | SN74ALVC164245DGG | Package_SO:TSSOP-48_6.1x12.5mm_P0.5mm | U10 |
| 1 | TO_BACKPLANE | Connector_PinHeader_2.54mm:PinHeader_2x22_P2.54mm_Vertical | J2 |
| 1 | TO_FP | Connector_PinHeader_2.54mm:PinHeader_2x25_P2.54mm_Vertical | J11 |
| 1 | W25Q32FVSS | Package_DIP:DIP-8_W7.62mm_Socket | U3 |
| 1 | gfmpw1-multi | Package_DIP:DIP-40_W15.24mm_Socket | U16 |
It measures 209.6 × 108.5 mm and has 4 copper layers, 1.6 mm thick.
113 parts, built around the EPM240T100C3, SN74LV1T34DCK, 74HCT244D and DAC7611P. 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.
From the 89Mods/LVDC repository on GitHub, at the commit this page was made from: the board is KiCad/GPIO/GPIO.kicad_pcb and its schematic KiCad/ALU/ALU.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
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).

89Mods/LVDC
Replica of the Launch Vehicle Digital Computer using 74-series logic

89Mods/LVDC
Replica of the Launch Vehicle Digital Computer using 74-series logic




89Mods/LVDC
Replica of the Launch Vehicle Digital Computer using 74-series logic

89Mods/LVDC
Replica of the Launch Vehicle Digital Computer using 74-series logic

89Mods/LVDC
Replica of the Launch Vehicle Digital Computer using 74-series logic
AvalonSemiconductors/AS2650-bring-up
Hardware and Software used during bring-up of the GFMPW-0 AS2650.

n1vaan/caelusencoderpcb
This is a custom PCB we designed to streamline the control system for our liquid-fueled rocket tests. It combines signal encoding, ignition control, and ESP32-based automation into one board, letting us send multiple…


efabless/caravel_board
This repo provides firmware examples, flash programming and diagnostic tools for testing Open MPW and chipIgnite projects using Caravel.


AvalonSemiconductors/gfmpw1-multi-bringup
Bring-up of GFMPW-1 multi-project submission.

ErickCampos/At-Switch
This repo describes the construction of non-conventional AT switches: - Proximity-based, through IR LEDs and IR Sensors - Puff-based, through piezoelectric disc sensors