
8-Bit CPU 32k
slu4coder/Minimal-64x4-Home-Computer
My DIY TTL home computer with VGA and PS/2 and 4x the processing power of a Commodore C64 or Apple II.

Version 3 of my educational DIY TTL computer built around a UART serial interface - now with blinkenlights!
8-Bit CPU 32k is an open-source printed circuit board by slu4coder, from the slu4coder/Minimal-UART-Computer-3 repository on GitHub. It is a 2-layer board of 208.9 × 170.8 mm with 207 parts on 300 nets, routed with 3,317 tracks and 0 vias.
It is built around the ATMEGA328-PU, 74HC245D and 74HC161S, with the 74HC377D, 74HC00D and 74HC283P-E among its other parts. Its parts include 98 diodes, 36 ICs, 32 resistors, 20 capacitors and 3 switches. It belongs with the interfaces and adapters and retro computing and games boards and the AVR (ATmega, ATtiny) boards of this library.
Here comes a big update of my DIY 'Minimal UART Computer', a machine built around a serial interface just from a handful of logic ICs, RAM and FLASH memory. For it's size, simplicity and self-imposed limitations, it's got double the processing power of a Commodore C64 or Apple II. It's mission is to be a fun learning platform for understanding computers on a fundamental level.
This is a free and non-commercial project. I am in no way associated with any activies selling the 'Minimal UART Computer' as a product. Any such activity represents a license violation. Individual licenses apply for hardware and software parts. Please refer to the applicable documentations for detailed licensing information.
● Manual: https://docs.google.com/document/d/1nIM-WRrVe7SzYY-DS1jcVHC4TCuIhlQ6LCHnZnEml7k/edit?usp=sharing
● The Minimal UART Computer has a dedicated hardware serial 'Minimal Terminal': https://github.com/slu4coder/Minimal-Terminal but can also be operated via a USB-to-serial breakout board and a terminal emulation (e. g. Tera Term) of cause.
OVERVIEW:
● Textbook 'Von-Neumann' architecture, 8-bit data bus, 16-bit address bus
● 64 instructions (conditional branching, subroutines, stack and word operations)
● 32KB RAM, 32KB SSD with file system (format, load, save, dir, delete, defrag, ...)
● Adjustable UART I/O (7 data bits, 2 stop bits, 9600bps – 500000bps)
● Adjustable CPU clock speed (single step – 8MHz)
● Processing power ~1.1Mips @ 8MHz comparable to 2x Commodore 64 or 2x Apple II
● Clear(est?) and simple(st? – you judge!) design
● ALU with 2 data registers A & B
● 3 flags (zero, negative, carry)
● 24 control signals
● Only 30(!) 74HCxx logic ICs, RAM and FLASH (an ATmega328p is used as a variable clock generator)
● NEW: Blinkenlights ;-)
● Operating system wiht native assembler and editor
● Games and demos (Tetris, Mandelbrot)
● Cycle-exact emulator, cross-assembler (Win64 and Linux)
I hope you find this information useful, educational or otherwise interesting. I'd love to hear about your build, so meet me on YouTube:
https://www.youtube.com/watch?v=wpls_rTcvJ8
https://www.youtube.com/channel/UCXYQcMpUBT3aaQKfmAVJNow
This is a free and non-commercial project. I am in no way associated with any activies selling this as a product. Any such activity represents a license violation. Individual licenses apply for hardware and software parts. Please refer to the appropriate documentations for detailed licensing information.
See https://github.com/slu4coder/Minimal-64x4-Home-Computer for a more feature-rich alternative with bitmap graphics, VGA and PS/2.
If you like this project and want to give something back, you can do so via PayPal. Thanks!
https://paypal.me/CarstenHerting
Have fun!
| Qty | Value | Footprint | References |
|---|---|---|---|
| 69 | LED_Small | LED_THT:LED_D5.0mm | D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25 +53 |
| 18 | 100n | Capacitor_THT:C_Disc_D3.0mm_W2.0mm_P2.50mm | C3, C4, C5, C6, C7, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20 +2 |
| 14 | 470 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1, R2, R7, R9, R12, R15, R17, R18, R19, R20, R22, R23, R24, R29 |
| 11 | 2k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R8, R10, R11, R13, R14, R16, R21, R25, R26, R27, R32 |
| 11 | 74HC161 | Package_DIP:DIP-16_W7.62mm | U3, U6, U10, U14, U16, U18, U19, U25, U26, U28, U29 |
| 10 | 3.3k | Resistor_THT:R_Array_SIP9 | RN2, RN3, RN4, RN5, RN6, RN7, RN8, RN9, RN10, RN11 |
| 5 | 3.3k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R4, R5, R6, R28, R33 |
| 5 | 74HC245 | Package_DIP:DIP-20_W7.62mm | U20, U22, U24, U27, U34 |
| 4 | M2 | MountingHole:MountingHole_2.2mm_M2 | H1, H2, H3, H4 |
| 3 | 74HC377 | Package_DIP:DIP-20_W7.62mm | U8, U21, U23 |
| 3 | LED_small | LED_THT:LED_D5.0mm | D1, D2, D3 |
| 2 | 22p | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm | C1, C2 |
| 2 | 74HC00 | Package_DIP:DIP-14_W7.62mm | U1, U35 |
| 2 | 74HC283 | Package_DIP:DIP-16_W7.62mm | U13, U33 |
| 2 | 74HC86 | Package_DIP:DIP-14_W7.62mm | U30, U31 |
| 1 | 10k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R3 |
| 1 | 16MHz | Crystal:Crystal_HC18-U_Vertical | Y1 |
| 1 | 1k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R30 |
| 1 | 470 | Resistor_THT:R_Array_SIP9 | RN1 |
| 1 | 74HC165 | Package_DIP:DIP-16_W7.62mm | U5 |
| 1 | 74HC193 | Package_DIP:DIP-16_W7.62mm | U2 |
| 1 | 74HC32 | Package_DIP:DIP-14_W7.62mm | U12 |
| 1 | 74HC4002 | Package_DIP:DIP-14_W7.62mm | U32 |
| 1 | 74HC595 | Package_DIP:DIP-16_W7.62mm | U4 |
| 1 | AI | LED_THT:LED_D5.0mm | D65 |
| 1 | AO | LED_THT:LED_D5.0mm | D66 |
| 1 | AS6C1008 RAM | Package_DIP:DIP-32_W15.24mm | U17 |
| 1 | ATmega328P | Package_DIP:DIP-28_W7.62mm | U36 |
| 1 | BI | LED_THT:LED_D5.0mm | D76 |
| 1 | BO | LED_THT:LED_D5.0mm | D77 |
| 1 | C | LED_THT:LED_D5.0mm | D95 |
| 1 | CE | LED_THT:LED_D5.0mm | D92 |
| 1 | CIH | LED_THT:LED_D5.0mm | D79 |
| 1 | CIL | LED_THT:LED_D5.0mm | D84 |
| 1 | CLK | LED_THT:LED_D5.0mm | D100 |
| 1 | COH | LED_THT:LED_D5.0mm | D81 |
| 1 | COL | LED_THT:LED_D5.0mm | D83 |
| 1 | EC | LED_THT:LED_D5.0mm | D93 |
| 1 | EO | LED_THT:LED_D5.0mm | D78 |
| 1 | ES | LED_THT:LED_D5.0mm | D94 |
| 1 | FI | LED_THT:LED_D5.0mm | D89 |
| 1 | IC | LED_THT:LED_D5.0mm | D91 |
| 1 | II | LED_THT:LED_D5.0mm | D90 |
| 1 | LOGO | logo:logo | G*** |
| 1 | ME | LED_THT:LED_D5.0mm | D88 |
| 1 | MIH | LED_THT:LED_D5.0mm | D86 |
| 1 | MIL | LED_THT:LED_D5.0mm | D85 |
| 1 | N | LED_THT:LED_D5.0mm | D59 |
| 1 | R | LED_THT:LED_D5.0mm | D97 |
| 1 | RESET | Button_Switch_THT:SW_PUSH_6mm | SW1 |
| 1 | RI | LED_THT:LED_D5.0mm | D82 |
| 1 | RO | LED_THT:LED_D5.0mm | D99 |
| 1 | SELECT | Button_Switch_THT:SW_PUSH_6mm | SW3 |
| 1 | SINGLE | Button_Switch_THT:SW_PUSH_6mm | SW2 |
| 1 | SST39SF010 HSB | Package_DIP:DIP-32_W15.24mm | U7 |
| 1 | SST39SF010 LSB | Package_DIP:DIP-32_W15.24mm | U11 |
| 1 | SST39SF010 MSB | Package_DIP:DIP-32_W15.24mm | U9 |
| 1 | SST39SF010 SSD | Package_DIP:DIP-32_W15.24mm | U15 |
| 1 | TI | LED_THT:LED_D5.0mm | D87 |
| 1 | TO | LED_THT:LED_D5.0mm | D80 |
| 1 | UART | Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical | J1 |
It measures 208.9 × 170.8 mm and has 2 copper layers, 1.6 mm thick.
207 parts, built around the ATMEGA328-PU, 74HC245D, 74HC161S and 74HC377D. 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 slu4coder/Minimal-UART-Computer-3 repository on GitHub, at the commit this page was made from: the board is KiCAD9/8-Bit CPU 32k.kicad_pcb and its schematic KiCAD9/8-Bit CPU 32k.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask slu4coder before reusing the design.

slu4coder/Minimal-64x4-Home-Computer
My DIY TTL home computer with VGA and PS/2 and 4x the processing power of a Commodore C64 or Apple II.

slu4coder/Minimal-UART-Computer-1-2
Legacy: Version 1 and 2 of my TTL-only CPU featuring UART I/O, an expansion port, 512KB SSD at up to 10MHz clock speed

slu4coder/Minimal-64-Home-Computer
Legacy: Full TTL-only home computer with VGA and PS/2 and twice the processing power of a Commodore 64





nailed-barnacle/Cisc-8-ttl-processor
A cut-down version of the 8080 processor using HCTTL and including a discrete ALU and instruction decoder