

Simple output
A simple 8 Bit computer based on the Z80 CPU
- Size
- 127 × 121.9 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 37
- Nets
- 75
- Pads
- 292
- Tracks, vias
- 1,501, 344
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 5 (file 20171130)
- Created
- 1 Jan 2021
- Updated
- 5 Aug 2025
Overview
Simple output is an open-source printed circuit board by soster, from the soster/dtZ80 repository on GitHub. It is a 2-layer board of 127 × 121.9 mm with 37 parts on 75 nets, routed with 1,501 tracks and 344 vias.
It is built around the 74HC245D, 74LS04PC and 74LS573PC. Its parts include 14 resistors, 8 ICs, 6 capacitors, 6 connectors and 2 transistors. It belongs with the retro computing and games boards of this library.
Main components
374HC245D
SO-20-300mil-40℃~+125℃ 1 160uA 2V~6V 7.8mA 7.8mA 74HC 8 9ns@4.5V,50pF Bidirectional Tri-State SOIC-20-300mil Buffers, Drivers, Receivers, Transceivers ROHSNexperiaBuffers, Drivers, Receivers, Transceivers74LS04PC
PDIP-140℃~+70℃ 4.75V~5.25V 6 6.6mA 74LS PDIP-14 InvertersonsemiInverters74LS573PC
DIP-200℃~+70℃ 10ns 3ns 4.75V~5.25V 74LS 8 D Latch Tri-State DIP-20 Latches ROHSTexas InstrumentsLatches
README
README.mddtZ80 - A simple 8 Bit Computer based on the Z80 CPU
This started as a project during the second Corona lockdown, where I had to much free time. I wanted to design my own 8 Bit computer and decided to use the Z80 CPU. The first idea was to use a MOS 6502 because a variant of that powers the C64, a computer I used much in my childhood. The Z80 is easier to source where I live so I used that instead.
I started on breadboards but quickly discovered the limits of that so I soldered some prototypes and finally designed some PCBs with kicad.
The bus is compatible to the Bus of the RC2014 Z80 computer, so I can exchange expansion cards.
This documentation now covers the new "Black Edition" of the dtZ80 (Rev 1), a larger board without the need to use extension cards. Previous prototypes had a common bus board and extension cards for the CPU, RAM etc. All software for the previous prototypes can be found at asm/prototype for historical reasons.
The dtZ80 uses a Z80 CPU with clocked with 7.3728 Mhz (which doubles as a clock for serial communication), a Z80 SIO for serial communication, a CTC counter timer, 32kb of RAM and 32kb of ROM and a AY-3-8910A sound chip. It uses a single seven segment display for debugging purposes and a 4 line, 20 characters per line LCD for text output.
Tools
- rasm is used as the assembler.
- Visual Studio Code is used as an editor and enviroment for assembler
- Minipro is used to flash the EEPROMs, the hardware is a TL866 II PLUS
- ticks from the z88dk project is used as an emulator / simulator
- A usb to ttl converter for serial communication (can be switched to 5V levels, only needs TX and RX)
Images

Address Space
Address lines are assigned by a 74LS138 IC (U6) which activates or deactivates the correct ICs.
$00: I/O port 7 segment (A0-A7=0)
$04: LCD command I/O port (A5=1)
$05: LCD data I/O port (A5=1,A0=1)
$40: SIO Data Channel A
$42: SIO Control Channel A
$60: CTC Channel 0
$61: CTC Channel 1
$62: CTC Channel 2
$63: CTC Channel 3
$80: Sound Register
$81: Sound DataLCD
The black edition uses a 4 line, 20 column LCD Display (2004A V1.1) probably based on the HD44780 Chip (Datasheet). It behaves strangely if we send character by character to it, it uses line 3 after line 1 and the lines 2 and 4 are not usable. We have to manually set the DDRAM address holding the character position according to the current line:
Line 1: $00 - $13
Line 2: $40 - $53
Line 3: $14 - $27
Line 4: $54 - $67I assume this is due to backwarts compatibility to 2 line displays.
Parallel Interface
The 8 Bit parallel Interface is used to connect a lcd screen mainly. Due to an error while designing the pcb, it has the following pins (GND=Pin 1):

Serial Interface
The serial interface is provided by the Z80 SIO chip (SI0/0). It has two channels, A (J1) and B (J6). The clock is provided by the CTC chip for channel A. If you want to use channel B, you have to connect the clock from the pin CTS from J1 to CTS on J6. Please note that RX and TX are labeled from the point of view of the external device, RX is connected to TX on the SIO and vice versa (this maybe was a stupid decistion).
If you are working with linux and you have a usb to serial converter connected to /dev/ttyUSB0 you can use screen to enter serial terminal mode:
screen /dev/ttyUSB0 19200To enter serial mode of the dtZ80 simply press enter now.
Screen commands consist of "C-a" or ctrl+a (holding down the control key, and then pressing the 'a' key, then releasing both), to enter the command input mode, then commands may be entered with another key stroke. To disconnect from the session: Ctrl+a, Ctrl+d, you can then use this to reattach to the session:
screen -rTo quit screen and close connection: ctrl+a, k.
CTC Clock Timer Chip
TODO
PS/2 Keyboard module
For ps/2 keyboard to serial conversion I use a "PS2 Keyboard Driver Serial Port Transmission Module".
- connect TX from the module to TX from J1. The module communicates via serial in 19.200 Baud, 1 Stop bit, no parity.
Sound
TODO
Simulator / Emulator
The simulator ticks from https://github.com/z88dk/z88dk can be used as a simulator. It provides character output for debugging purposes. Use it like this on assembled binary files:
z88dk.z88dk-ticks -iochar 5 bios.bin-iochar 5 puts out characters just like for the LCD of the dtz80.
Next steps / TODOs
- Further develop the bios
- Tiny Basic example code: http://cpuville.com/Code/tinybasic2dms_asm.txt
- Document all features
Graphics
Graphics is not finished yet. These are some ideas: Based on: TMS9918A Problem: Works only with DRAM for SRAM Looks like you will need to latch the address bits 8-15 when RAS goes low Connect (/CAS0 AND /CAS1) to /OE on the SRAM and use one of them for A16 also Important: Clock 10.738635 Mhz, Type MP107-E for video timing Use schematics from: https://github.com/jblang/TMS9918A
Links
- Bread 80 A Z80 on breadboards
- RC2014 Another Z80 project
- LM80C Color Computer Another Z80 Computer, interesting because of graphics output
- Z80 Assembler for dummies Z80 Assembler Guide
More images

Parts
37| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 100n | Capacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mm | C1, C2, C4, C5 |
| 4 | 5K | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R11, R12, R13, R14 |
| 3 | 2K | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R6, R8, R9 |
| 2 | 10K | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R5, R7 |
| 2 | 1k | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R1, R10 |
| 2 | 22pF | Capacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mm | C3, C6 |
| 2 | 74HC245 | Package_DIP:DIP-20_W7.62mm_Socket | U4, U8 |
| 2 | NPN | Package_TO_SOT_THT:TO-92_HandSolder | Q1, Q2 |
| 1 | 1K | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R4 |
| 1 | 1M | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R3 |
| 1 | 220 | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R2 |
| 1 | 5161AS | 7seg:7SegmentLED_LTS6760_LTS6780 | U5 |
| 1 | 74LS04 | Package_DIP:DIP-14_W7.62mm_Socket | U1 |
| 1 | 74LS138 | Package_DIP:DIP-16_W7.62mm_Socket | U2 |
| 1 | 74LS573 | Package_DIP:DIP-20_W7.62mm_Socket | U3 |
| 1 | 8 Bit Port | Connector_PinHeader_2.54mm:PinHeader_2x07_P2.54mm_Vertical | J2 |
| 1 | CTC | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical | J5 |
| 1 | Conn_01x02 | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J1_5VtoSerial1 |
| 1 | Crystal | Crystal:Crystal_HC49-U_Vertical | Y1 |
| 1 | FT_232 | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J3 |
| 1 | PS/2 Keyboard | package_connectors:Mini_DIN_6_TE_Connectivity | J4 |
| 1 | RC2014Bus | Connector_PinHeader_2.54mm:PinHeader_1x40_P2.54mm_Vertical | J1 |
| 1 | Z80CTC | Package_DIP:DIP-28_W15.24mm_Socket | IC2 |
| 1 | Z80SIO | Package_DIP:DIP-40_W15.24mm_Socket | IC1 |
Questions
How big is the Simple output PCB?
It measures 127 × 121.9 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Simple output use?
37 parts, built around the 74HC245D, 74LS04PC and 74LS573PC. 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 Simple output KiCad files?
From the soster/dtZ80 repository on GitHub, at the commit this page was made from: the board is schema/dtZ80-simple-io/simple-output.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Simple output design in my own project?
Its repository states no licence, so its author keeps all rights: ask soster before reusing the design.
More from soster/dtZ80
3- 2 layers200.7 × 149.9 mm

- 2 layers128.3 × 88.9 mm

- 2 layers119.4 × 55.9 mm

Similar boards
- 4 layers243.8 × 243.8 mm

- 2 layers112.5 × 124.5 mm

- 4 layers139.7 × 116.8 mm

- 2 layers144.8 × 94 mm

- 2 layers84 × 58.2 mm

- 2 layers160 × 100.3 mm

Z80-MIDI
dennis9819/Z8C-Homebrew-Computer
To easily develop for my Z80 homebrew system, I designed a simple assempler development environment. This packs the following tasks into one script: zmac assembly object file creation (for xmodem upload) monitor file…
33 parts2 - 4 layers83.3 × 68.2 mm

- 2 layers72.1 × 39.4 mm
