

Controller
Building a computer from scratch using 74xx logic chips
- Size
- 191.1 × 114.3 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 60
- Nets
- 235
- Pads
- 800
- Tracks, vias
- 3,539, 95
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 5 (file 20171130)
- Created
- 11 Apr 2018
- Updated
- 4 May 2020
Overview
Controller is an open-source printed circuit board by DutchMaker, from the DutchMaker/TTL-computer repository on GitHub. It is a 2-layer board of 191.1 × 114.3 mm with 60 parts on 235 nets, routed with 3,539 tracks and 95 vias.
Its parts include 26 ICs, 6 resistors, 3 connectors and 1 crystal.
README
README.md74xx Computer
My attempt at building a computer from scratch with 74xxx logic chips.
Project Shelved!
I have abandoned this project, but only to reboot it with a different approach.
Make sure to check The DM-02 Computer which is my second attempt at a computer from scratch!
Status as of September 4th, 2019:
General architecture has been worked out as high level schematic.
Worked on instruction set, micro code, module documentation & general notes from time to time (see: Documentation). Only thing missing right now is some documentation on each of the modules.
The entire computer has been built in Logisim to verify that the way I had everything in mind is actually going to work.
I've built a microcode compiler for the Controller's ROM image. This takes a source file which defines all the microcode and compiles it into a binary image that is loaded into the microcode ROM.
The 74xx Computer's instruction set has been implemented, its assembly language is fully documented and I've built an assembler to convert assembly programs to machine code.
Circuit diagrams and PCBs have all been designed in KiCad and have been or are currently being produced:
- Clock (built and tested)
- Registers (built and tested)
- ALU (built and tested)
- Program Counter (built and tested)
- Stack Pointer (built and tested)
- Flags register (built and tested)
- Memory (built and tested)
- Memory Access Register (built and tested)
- Controller (redesigned circuit to account for reset ciruitry - waiting for PCB production)
- Main Board ( built and tested)
TODO's / Plans:
- Build the computer in real life (IN PROGRESS)
- First revision is based on separate PCBs that are all connected together by one large main PCB.
- If all works out, there may be a second revision will be one large PCB that contains all modules as one circuit.
- Write additional/updated documentation on all modules.

Parts
60| Qty | Value | Footprint | References |
|---|---|---|---|
| 9 | 10K | Resistor_THT:R_Array_SIP9 | RN9, RN10, RN11, RN12, RN13, RN14, RN15, RN16, RN17 |
| 8 | 470 | Resistor_THT:R_Array_SIP9 | RN1, RN2, RN3, RN4, RN5, RN6, RN7, RN8 |
| 7 | HDSP-4830_2 | 74xx-Computer-Footprints:Bar-Graph-10 | BAR1, BAR2, BAR3, BAR4, BAR5, BAR6, BAR7 |
| 6 | 74x04 | Package_DIP:DIP-14_W7.62mm | U3, U18, U19, U21, U22, U25 |
| 6 | 74x273 | Package_DIP:DIP-20_W7.62mm | U12, U13, U14, U15, U16, U17 |
| 4 | 74x161 | Package_DIP:DIP-16_W7.62mm | U6, U7, U8, U27 |
| 4 | R | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1, R2, R4, R5 |
| 3 | 74x02 | Package_DIP:DIP-14_W7.62mm | U5, U23, U24 |
| 2 | 74x08 | Package_DIP:DIP-14_W7.62mm | U1, U2 |
| 2 | Conn_01x24_Male | Connector_PinHeader_2.54mm:PinHeader_1x24_P2.54mm_Vertical | J2, J3 |
| 1 | 10K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R6 |
| 1 | 470 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R3 |
| 1 | 74x138 | Package_DIP:DIP-16_W7.62mm | U11 |
| 1 | 74x27 | Package_DIP:DIP-14_W7.62mm | U4 |
| 1 | 74x32 | Package_DIP:DIP-14_W7.62mm | U20 |
| 1 | 74x74 | Package_DIP:DIP-14_W7.62mm | U9 |
| 1 | 8 MHz (max. 10 MHz) | 74xx-Computer-Footprints:Oscillator_DIP-8_v2 | Y1 |
| 1 | Conn_01x15_Male | Connector_PinHeader_2.54mm:PinHeader_1x15_P2.54mm_Vertical | J1 |
| 1 | W29C040 | 74xx-Computer-Footprints:ZIF-32_Socket | U10 |
Questions
How big is the Controller PCB?
It measures 191.1 × 114.3 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Controller use?
60 parts. 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 Controller KiCad files?
From the DutchMaker/TTL-computer repository on GitHub, at the commit this page was made from: the board is Circuits/KiCad/Controller/Controller.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Controller design in my own project?
Its repository states no licence, so its author keeps all rights: ask DutchMaker before reusing the design.
More from DutchMaker/TTL-computer
10- 2 layers286.4 × 484.5 mm

- 2 layers144.8 × 114.3 mm

Memory Access Register
DutchMaker/TTL-computer
Building a computer from scratch using 74xx logic chips
39 parts24 - 2 layers76.2 × 68.6 mm

- 2 layers132.1 × 86.4 mm

- 2 layers149.2 × 86.4 mm

- 2 layers76.2 × 55.9 mm

Flags Register
DutchMaker/TTL-computer
Building a computer from scratch using 74xx logic chips
16 parts24 - 2 layers81.3 × 82.6 mm

Program Counter
DutchMaker/TTL-computer
Building a computer from scratch using 74xx logic chips
15 parts24 - 2 layers81.3 × 50.8 mm

Stack Pointer
DutchMaker/TTL-computer
Building a computer from scratch using 74xx logic chips
9 parts24 - 2 layers55.9 × 52.1 mm

- 2 layers53.3 × 52.1 mm

Instruction Register
DutchMaker/TTL-computer
Building a computer from scratch using 74xx logic chips
6 parts24
Similar boards
- 2 layers35 × 50 mm

- 2 layers32.9 × 119.1 mm

- 2 layers35.9 × 62.7 mm

Rp2040-memcard
sd2psx/pcb
The PCB must be produced in 0.8mm thickness. Production files are provided under the "Releases" tab. These do not include the through-hole OLED module.
60 parts241 - 2 layers58 × 110 mm

- 2 layers52 × 90 mm

- 2 layers42.5 × 80 mm

- 2 layers57.4 × 12 mm

- 2 layers87.9 × 123.9 mm

Bitdoglab
BitDogLab/BitDogLab
Open-source educational hardware for embedded systems, programming, electronics, and physical computing.
60 parts203