Skip to the content
2 layers94 × 88.9 mmEXP, the printed circuit board in 3D

Retrocomputer built from late-70's TTL logic chips

Size
94 × 88.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
23
Nets
69
Pads
196
Tracks, vias
522, 71
Pours
2
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
4 May 2019
Updated
13 Jul 2025

Overview

EXP is an open-source printed circuit board by ajhewitt, from the ajhewitt/novasaur repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 94 × 88.9 mm with 23 parts on 69 nets, routed with 522 tracks and 71 vias.

It is built around the 74F138D, 74F174SC and 74F244D, with the 74F574PC and MCP1702-5002E/MB among its other parts. Its parts include 8 connectors, 6 ICs, 4 diodes, 3 capacitors and 1 resistor.

Main components

5

README

README.md

Novasaur

Retrocomputer built from late‑70's TTL logic chips

text
                                                   ...
          |--------------->S->|------->F=}->video   ^
          |  H->|  +-+        |  +-+     ^         GPU
          |->V->|->|R|        |  |R|  |->G->audio   v
          |        |A|<>|->B->|->|O|->|            ...
          |->X->|->|M|  |     |  |M|  |             ^
          |->Y->|  +-+  | fn->|  +-+  |->C->[ECU]   :
          |--------->A->|     |{=HL<--|            CPU
          |     Rx->Ei->|     |<-PC<--|->Eo->Tx     :
          |          I->|     |<-Pg<--|->O          v
          |___________________________|            ...

The Novasaur is a full‑featured personal computer built from fewer than three dozen Advanced Schottky TTL chips (circa 1979). It supports an 80‑column SVGA text display, PS/2 keyboard, programmable sound generator, RS232 serial, and an Intel 8080 byte‑code interpreter. The machine can run early 80's computer games and CP/M using a built‑in 252k RAM disk.

Repository Overview

This repository contains the firmware, build tools and hardware designs for the Novasaur retro‑computer. At the root you'll find directories for build scripts, hardware CAD, documentation, fonts, libraries, sources and tests:

text
LICENSE     build/     cad/      docs/     lib/
README.md   burn_rom   fonts/    make_rom  src/
test/

Key Directories

  • build/ – Ruby and AWK utilities that convert source files into Intel HEX for ROM programming. Scripts such as asm_hex.rb form a small assembler for the project’s custom instruction set. make_rom assembles all firmware and prepares a ROM image.
  • src/ – The firmware itself. Subdirectories hold BASIC programs, demos, extended opcodes, hardware drivers and the operating system.
  • docs/ – Architecture and timing diagrams (open with Draw.io).
  • fonts/ – Text versions of the PC fonts used by the video subsystem.
  • cad/ – Hardware design files including CUPL logic equations and KiCad schematics.
  • test/ – Ruby scripts for experimenting with the CPU and video/audio timing.

Build & ROM Creation

Running make_rom invokes the assembler scripts on the firmware directories, combines prebuilt binaries from lib/, generates ALU and font data, and finally uses minipro to program a physical SST39SF020A chip.

Learning Path

  1. Review the assembler scripts in build/ to understand instruction encoding and macro expansion.
  2. Explore the OS sources in src/os/ to see how the system boots and handles messages.
  3. Examine the hardware schematics in cad/ alongside the CUPL logic to learn how the CPU and GPU are implemented.
  4. Read the documentation diagrams in docs/ for big‑picture architecture and memory layout.
  5. Try the simulation scripts in test/ to become familiar with instruction execution and video/audio timing.

License Info

License

  • Copyright 2024 © Solid State Machines LLC.

The font files (TTF and FON remakes and enhancements) come from The Ultimate Oldschool PC Font Pack, copyright 2016 VileR, and licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Parts

23
QtyValueFootprintReferences
21uCapacitor_THT:C_Disc_D7.5mm_W2.5mm_P5.00mmC1, C2
274F138Package_DIP:DIP-16_W7.62mm_LongPadsU1, U2
2D_Schottky_Small_ALTDiode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1, D2
2INConnector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_VerticalJ1, J2
2OUTConnector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_VerticalJ3, J4
10.1uCapacitor_THT:C_Disc_D7.5mm_W2.5mm_P5.00mmC3
11KResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR1
1680Resistor_THT:R_Array_SIP9RN1
174F174Package_DIP:DIP-16_W7.62mm_LongPadsU4
174F244Package_DIP:DIP-20_W7.62mm_LongPadsU5
174F574Package_DIP:DIP-20_W7.62mm_Socket_LongPadsU3
1INTRConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ8
1InConnector_PinHeader_2.54mm:PinHeader_2x08_P2.54mm_VerticalJ6
1KEYPADConnector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_VerticalJ7
1MCP1702-5002EPackage_TO_SOT_THT:TO-92_Inline_WideU6
1OnConnector_PinHeader_2.54mm:PinHeader_2x08_P2.54mm_VerticalJ5
1~O7.4LED_THT:LED_D5.0mmD3
1~O7.5LED_THT:LED_D5.0mmD4

Similar boards

  • 4 layers184.9 × 243.8 mmProject NuXT, the printed circuit board in 3D

    Project NuXT

    monotech/NuXT

    MicroATX Turbo XT Motherboard, with VGA, Floppy, CF, Serial

    223 parts121GPL-3.0
  • 2 layersTT Clone AY AT, the printed circuit board in 3D

    TT Clone AY AT

    Upcycle-Electronics/AVR-Transistor-Tester

    60 parts47
  • 4 layers106.7 × 83.8 mmOctoCom, the printed circuit board in 3D

    OctoCom

    techav-homebrew/Wrap030

    Homebrew 68030 computer

    138 parts5
  • 4 layers254 × 134.6 mmZ280-S100, the printed circuit board in 3D

    Z280-S100

    cm68/Z280-S100

    16-bit Zilog Z280 CPU card for the IEEE-696 S-100 backplane; glue logic in two ATF1508AS CPLDs

    61 parts1CERN-OHL-P-2.0
  • 6 layers304.8 × 243.8 mmHydra-16, the printed circuit board in 3D

    Hydra-16

    danstruthers/hydra-16

    6502-based multi-tasking hardware and software project

    210 parts1
  • 2 layers152.4 × 101.6 mm8088-FE2010A SBC, the printed circuit board in 3D

    8088-FE2010A SBC

    skiselev/micro_8088

    Micro 8088 - IBM XT Compatible Processor Board based on Faraday FE2010 chipset

    72 parts412GPL-3.0
  • 2 layers416.8 × 346.1 mmAmiga 2000R6, the printed circuit board in 3D

    Amiga 2000R6

    iansbremner/Amiga-2000-KiCAD

    Schemtics and PCB Layout for the Amiga 2000 Rev6

    553 parts20
  • 2 layers110.1 × 101.6 mmNano8088, the printed circuit board in 3D

    Nano8088

    monotech/Nano8088

    Smaller SMD version of Sergey Kiselev's Micro 8088 SBC, with XT-CF added

    78 parts17GPL-3.0

Questions

How big is the EXP PCB?

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

What parts does the EXP use?

23 parts, built around the 74F138D, 74F174SC, 74F244D and 74F574PC. 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 EXP KiCad files?

From the ajhewitt/novasaur repository on GitHub, at the commit this page was made from: the board is cad/kicad/exp-proto/EXP.kicad_pcb and its schematic cad/kicad/exp-proto/EXP.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the EXP design in my own project?

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