Skip to the content
4 layers170 × 130 mmZ80Atmega128, the printed circuit board in 3D

Real Z80A system with I/O emulated by AVR(ATmega128)

Size
170 × 130 mm
Copper layers
4
Thickness
1.6 mm
Parts
109
Nets
163
Pads
657
Tracks, vias
2,107, 846
Pours
845
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
18 Mar 2023
Updated
28 Mar 2026

Overview

Z80Atmega128 is an open-source printed circuit board by 46nori, from the 46nori/Z80Atmega128 repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 170 × 130 mm with 109 parts on 163 nets, routed with 2,107 tracks and 846 vias.

It is built around the ATMEGA128-16AU, 74HC125D and 74HC244D, with the 74HCT245, 74HC32D and 74HC08D among its other parts. Its parts include 36 resistors, 24 capacitors, 19 ICs, 7 diodes and 6 connectors. It belongs with the retro computing and games boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

12

README

README.md

Z80ATmega128

日本語版READMEはこちら

Overview

This project aims to build a Z80A system and run CP/M-80 natively on it.

You might be wondering why I chose the Z80 today. Well, it happened to be discovered in my collection of electronic components after being tucked away for 30 years. Moreover, it's an original Zilog Z80A from the NMOS process era, likely manufactured around 1980!

z80a

However, rather than simply replicating a single-board microcontroller system from the 1980s, I've decided to take a different approach. Reproducing such a system lacks novelty and excitement, not to mention the difficulty of sourcing the necessary parts.

Hence, I've devised the following design principles:

  1. A hybrid configuration utilizing both Z80A and ATmega128-16AU (AVR) microcontrollers.
  2. I won't be using ROM; instead, a 64KB SRAM will be shared between the Z80A and AVR. AVR will manage the placement of the Z80's bootstrap code.
  3. AVR firmware will handle the Z80 hardware I/O and interrupt cycles completely. Any Z80's I/O devices can, in principle, be described by software!
  4. Design circuits using components that are as easy to procure as possible. (As of 2023, mainly in the Japanese electronic parts market.)

Achievements

  • CP/M 2.2 works directly on the Z80 processor.
  • The system can boot CP/M from a microSD card containing the CP/M image file.
  • CP/M 3 (Non-banked memory version) works as well.
  • You can enjoy playing the text adventure game ZORK I, II and III !
  • The printed circuit board (PCB) is available.
  • Demo Video
    video

Contents

text
.
├── avr                      AVR firmware
├── z80                      Z80 software
│   ├── cpm22                CP/M-80 Ver2.2
│   │   ├── bios               BIOS
│   │   ├── sys                CPM.SYS(CCP/BDOS) and cpm.ihx(IPL+CCP/BDOS+BIOS)
│   │   └── image              CP/M 2.2 Disk image
│   └── cpm3                 CP/M 3 (CP/M Plus)
│       └── image              CP/M 3 Disk image
├── doc
│   ├── Hardware/            Hardware documents
│   ├── Software/            Software documents
│   └── README.md            Table of contents
└── schematics
    └── KiCad
        ├── *.kicad_sch      Schematic diagram
        └── *.kicad_pcb      PCB diagram

Required tools

Prototype

prototype

PCB

pcb2
pcb1

Schematic diagram

sch1 sch2 sch3 sch4

License

GPLv3

Parts

109
QtyValueFootprintReferences
2710KResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR1, R2, R3, R10, R11, R12, R13, R15, R16, R19, R20, R21, R22, R29, R30, R31 +11
200.1uCapacitor_THT:C_Disc_D3.8mm_W2.6mm_P2.50mmC1, C2, C3, C4, C5, C11, C12, C13, C14, C15, C16, C17, C18, C19, C22, C23 +4
71KResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR14, R23, R24, R25, R26, R27, R28
4MountingHole_PadMountingHole:MountingHole_3.2mm_M3_ISO7380_PadREF1, REF2, REF3, REF4
374HC32Package_DIP:DIP-14_W7.62mm_SocketU9, U10, U13
222pCapacitor_THT:C_Disc_D3.8mm_W2.6mm_P2.50mmC20, C21
274HC08Package_DIP:DIP-14_W7.62mm_SocketU7, U11
274HC125Package_DIP:DIP-14_W7.62mm_SocketU1, U8
2AE-CH340E-TYPEC46nori:AE-CH340E-TYPECHU18, U19
2DS1232Package_DIP:DIP-8_W7.62mm_SocketU14, U15
2HM62256BLPPackage_DIP:DIP-28_W15.24mm_SocketSRAM1, SRAM2
1/BUSACKLED_THT:LED_D3.0mmD6
1100Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR18
1100uCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC10
116MHzCrystal:Resonator_Murata_CSTLSxxxX-3Pin_W5.5mm_H3.0mmY1
11MResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR17
11uCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC24
15VTestPoint:TestPoint_Loop_D2.50mm_Drill1.0mmTP1
174AC573Package_DIP:DIP-20_W7.62mm_SocketU2
174HC04Package_DIP:DIP-14_W7.62mm_SocketU4
174HC244Package_DIP:DIP-20_W7.62mm_SocketU5
174HC4050Package_DIP:DIP-16_W7.62mm_SocketU16
174HC74Package_DIP:DIP-14_W7.62mm_SocketU12
174HCT245Package_DIP:DIP-20_W7.62mm_SocketU6
174HCT574Package_DIP:DIP-20_W7.62mm_SocketU3
18MHzCrystal:Crystal_HC18-U_VerticalY2
1ATmega128-16AUPackage_QFP:TQFP-64_14x14mm_P0.8mmCPU2
1AVR-ISP-646nori:BoxHeader_2x03_2.54mmJ1
1DC 5VConnector_BarrelJack:BarrelJack_HorizontalJ5
1DC 5VTerminalBlock:TerminalBlock_Altech_AK300-2_P5.00mmJ3
1DC-IN SELConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJP2
1DIP SWButton_Switch_THT:SW_DIP_SPSTx04_Slide_9.78x12.34mm_W7.62mm_P2.54mmSW3
1Disable Z80Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJP1
1GNDTestPoint:TestPoint_Loop_D2.50mm_Drill1.0mmTP2
1HALTLED_THT:LED_D3.0mmD7
1LED1LED_THT:LED_D3.0mmD3
1LED2LED_THT:LED_D3.0mmD4
1LED3LED_THT:LED_D3.0mmD5
1LP2950-3.3Package_TO_SOT_THT:TO-92_Inline_WideU17
1Micro_SD_Card_Det_Hirose_DM3ATConnector_Card:microSD_HC_Hirose_DM3AT-SF-PEJM5J6
1POWER46nori:2MD1-T1-B4-VS2-Q-ESW1
1POWERLED_THT:LED_D3.0mmD1
1RESETButton_Switch_THT:SW_PUSH_6mm_H7.3mmSW2
1SD AccessLED_THT:LED_D3.0mmD2
1Z80APackage_DIP:DIP-40_W15.24mm_SocketCPU1
1Z80[1..20]Connector_PinHeader_2.54mm:PinHeader_1x20_P2.54mm_VerticalJ2
1Z80[21..40]Connector_PinHeader_2.54mm:PinHeader_1x20_P2.54mm_VerticalJ4

Similar boards

  • 2 layers142.2 × 99.1 mmZX81plus38, the printed circuit board in 3D

    ZX81plus38

    Bambelweeny57/Purple-38er

    Build of a ZX81 +38 in Purple PCB's and Keys

    132 parts
  • 2 layers155 × 114 mmMutif1613, the printed circuit board in 3D

    Mutif1613

    ja1umi/MUTIF1613Project

    Verious design information related to my home-brewed MN1613 16-bit computer

    60 parts3MIT
  • 2 layers180 × 67.5 mmNEW KANJI ROM, the printed circuit board in 3D

    NEW KANJI ROM

    bml3mk5/S1KanjiRomJIS2

    JIS Level 2 Kanji ROM Card for HITACHI MB-S1

    61 parts
  • 4 layers100 × 100 mm74HCT6526, the printed circuit board in 3D

    74HCT6526

    dmolinagarcia/74HCT6526

    74HCT6526

    77 parts14
  • 4 layers62.2 × 21.6 mmLunit, the printed circuit board in 3D

    Lunit

    Velko/8-bit-CPU

    Homebrew 8-bit CPU

    47 parts16MIT
  • 4 layers180.3 × 154.9 mmDALU, the printed circuit board in 3D

    DALU

    freesurfer-rge/slothpu

    Adventures in Electronics

    116 partsMIT
  • 2 layers284.9 × 96.5 mmFella, the printed circuit board in 3D

    Fella

    agkaminski/FellaPC

    DIY 6502 all-in-keyboard personal computer

    115 parts2CC0-1.0

Questions

How big is the Z80Atmega128 PCB?

It measures 170 × 130 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Z80Atmega128 use?

109 parts, built around the ATMEGA128-16AU, 74HC125D, 74HC244D and 74HCT245. 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 Z80Atmega128 KiCad files?

From the 46nori/Z80Atmega128 repository on GitHub, at the commit this page was made from: the board is schematics/KiCad/Z80ATmega128.kicad_pcb and its schematic schematics/KiCad/ExtIO_sch.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Z80Atmega128 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).