

Z80Atmega128
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
12ATMEGA128-16AU
TQFP-64(14x14)-40℃~+85℃ 10bit 128KB 16MHz 4.5V~5.5V 4KB 4KB 53 8 Bit AVR Built-in FLASH TQFP-64(14x14) Microcontrollers (MCU/MPU/SOC) ROHSMicrochip TechnologyMicrocontrollers (MCU/MPU/SOC)74HC125D
SO-14-40℃~+125℃ 1 11ns@4.5V,50pF 160uA 2V~6V 4 7.8mA 7.8mA 74HC Tri-State Unidirectional SOIC-14 Buffers, Drivers, Receivers, Transceivers ROHSNexperiaBuffers, Drivers, Receivers, Transceivers74HC244D
SO-20-300mil-40℃~+125℃ 160uA 2 2V~6V 4 6mA 6mA 74HC 9ns@5V,15pF Tri-State Unidirectional SOIC-20-300mil Buffers, Drivers, Receivers, Transceivers ROHSNexperiaBuffers, Drivers, Receivers, Transceivers74HCT245
DIP-20-40℃~+85℃ 28ns@4.5V 4.5V~5.5V 6mA 6mA 74HCT 8 8uA Bidirectional TTL-compatible CMOS Tri-State DIP-20 Buffers, Drivers, Receivers, Transceivers ROHSWuxi I-core Elec74 Series74HC32D
SOP-14-40℃~+125℃ 1.5V~4.2V 1.9V、4.4V、5.9V 100mV、400mV、400mV 2 2V~6V 2uA 4 5.2mA 5.2mA 500mV~1.8V 6ns@6V,50pF 74HC Series OR Gate SOIC-14 Logic Gates ROHSNexperiaLogic Gates74HC08D
SOP-14-40℃~+125℃ 1.5V~4.2V 1.9V、3.7V、5.2V 100mV、400mV 2 27ns@4.5V,50pF 2V~6V 2uA 4 5.2mA 5.2mA 500mV~1.8V 74HC Series AND Gate SOIC-14 Logic Gates ROHSNexperiaLogic GatesDS1232D
SOP-8SOP-8 Supervisor and Reset ICs ROHSHTC Korea TAEJIN TechSupervisor And Reset ICs74AC573PC
PDIP-20-40℃~+85℃ 1.5ns 24mA 24mA 2V~6V 3ns 4uA 5.5ns 74AC 8 D Latch Tri-State PDIP-20 Latches ROHSonsemiLatches74HC04D
SOP-14-40℃~+125℃ 1 1.5V~4.2V 1.9V、3.7V、5.2V 100mV、400mV、400mV 14ns@6V,50pF 2V~6V 2uA 5.2mA 5.2mA 500mV~1.8V 6 74HC SOIC-14 Inverters ROHSNexperiaInverters74HC4050D
SOP-16SOP-16 Specialty Logic ROHSToshibaSpecialty Logic74HC74D
SOIC-14-40℃~+125℃ 1 15ns 2 2V~6V 3.5pF 37ns@6V,50pF 3ns、3ns、3ns 40uA 5.2mA 5.2mA 74HC Series 82MHz Asynchronous Complementary D-Type Rising Edge Set and Reset SOIC-14 Flip Flops ROHSNexperiaFlip Flops74HCT574D
SO-20-300mil-40℃~+125℃ 1 18ns@4.5V,50pF 3.5pF 3ns 4.5V~5.5V 5ns 69MHz 6mA 6mA 74HCT Series 8 8uA D-Type Rising Edge Tri-State SOIC-20-300mil Flip Flops ROHSNexperiaFlip Flops
README
README.mdZ80ATmega128
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!

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:
- A hybrid configuration utilizing both Z80A and ATmega128-16AU (AVR) microcontrollers.
- 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.
- 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!
- 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

Contents
.
├── 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 diagramRequired tools
- Microchip Studio for AVR v7.0 or later is required to build avr/.
- AVRISP mkII is required to program software(avr/) into ATmega128.
- Schematics and PCB are designed by KiCad v7.0.
- ASxxxx Cross Assemblers to build the CP/M BIOS in z80/.
- cpmtools for creating CP/M disk images.
Prototype

PCB


Schematic diagram
License
GPLv3
Parts
109| Qty | Value | Footprint | References |
|---|---|---|---|
| 27 | 10K | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R1, R2, R3, R10, R11, R12, R13, R15, R16, R19, R20, R21, R22, R29, R30, R31 +11 |
| 20 | 0.1u | Capacitor_THT:C_Disc_D3.8mm_W2.6mm_P2.50mm | C1, C2, C3, C4, C5, C11, C12, C13, C14, C15, C16, C17, C18, C19, C22, C23 +4 |
| 7 | 1K | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R14, R23, R24, R25, R26, R27, R28 |
| 4 | MountingHole_Pad | MountingHole:MountingHole_3.2mm_M3_ISO7380_Pad | REF1, REF2, REF3, REF4 |
| 3 | 74HC32 | Package_DIP:DIP-14_W7.62mm_Socket | U9, U10, U13 |
| 2 | 22p | Capacitor_THT:C_Disc_D3.8mm_W2.6mm_P2.50mm | C20, C21 |
| 2 | 74HC08 | Package_DIP:DIP-14_W7.62mm_Socket | U7, U11 |
| 2 | 74HC125 | Package_DIP:DIP-14_W7.62mm_Socket | U1, U8 |
| 2 | AE-CH340E-TYPEC | 46nori:AE-CH340E-TYPECH | U18, U19 |
| 2 | DS1232 | Package_DIP:DIP-8_W7.62mm_Socket | U14, U15 |
| 2 | HM62256BLP | Package_DIP:DIP-28_W15.24mm_Socket | SRAM1, SRAM2 |
| 1 | /BUSACK | LED_THT:LED_D3.0mm | D6 |
| 1 | 100 | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R18 |
| 1 | 100u | Capacitor_THT:CP_Radial_D5.0mm_P2.50mm | C10 |
| 1 | 16MHz | Crystal:Resonator_Murata_CSTLSxxxX-3Pin_W5.5mm_H3.0mm | Y1 |
| 1 | 1M | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R17 |
| 1 | 1u | Capacitor_THT:CP_Radial_D5.0mm_P2.50mm | C24 |
| 1 | 5V | TestPoint:TestPoint_Loop_D2.50mm_Drill1.0mm | TP1 |
| 1 | 74AC573 | Package_DIP:DIP-20_W7.62mm_Socket | U2 |
| 1 | 74HC04 | Package_DIP:DIP-14_W7.62mm_Socket | U4 |
| 1 | 74HC244 | Package_DIP:DIP-20_W7.62mm_Socket | U5 |
| 1 | 74HC4050 | Package_DIP:DIP-16_W7.62mm_Socket | U16 |
| 1 | 74HC74 | Package_DIP:DIP-14_W7.62mm_Socket | U12 |
| 1 | 74HCT245 | Package_DIP:DIP-20_W7.62mm_Socket | U6 |
| 1 | 74HCT574 | Package_DIP:DIP-20_W7.62mm_Socket | U3 |
| 1 | 8MHz | Crystal:Crystal_HC18-U_Vertical | Y2 |
| 1 | ATmega128-16AU | Package_QFP:TQFP-64_14x14mm_P0.8mm | CPU2 |
| 1 | AVR-ISP-6 | 46nori:BoxHeader_2x03_2.54mm | J1 |
| 1 | DC 5V | Connector_BarrelJack:BarrelJack_Horizontal | J5 |
| 1 | DC 5V | TerminalBlock:TerminalBlock_Altech_AK300-2_P5.00mm | J3 |
| 1 | DC-IN SEL | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | JP2 |
| 1 | DIP SW | Button_Switch_THT:SW_DIP_SPSTx04_Slide_9.78x12.34mm_W7.62mm_P2.54mm | SW3 |
| 1 | Disable Z80 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | JP1 |
| 1 | GND | TestPoint:TestPoint_Loop_D2.50mm_Drill1.0mm | TP2 |
| 1 | HALT | LED_THT:LED_D3.0mm | D7 |
| 1 | LED1 | LED_THT:LED_D3.0mm | D3 |
| 1 | LED2 | LED_THT:LED_D3.0mm | D4 |
| 1 | LED3 | LED_THT:LED_D3.0mm | D5 |
| 1 | LP2950-3.3 | Package_TO_SOT_THT:TO-92_Inline_Wide | U17 |
| 1 | Micro_SD_Card_Det_Hirose_DM3AT | Connector_Card:microSD_HC_Hirose_DM3AT-SF-PEJM5 | J6 |
| 1 | POWER | 46nori:2MD1-T1-B4-VS2-Q-E | SW1 |
| 1 | POWER | LED_THT:LED_D3.0mm | D1 |
| 1 | RESET | Button_Switch_THT:SW_PUSH_6mm_H7.3mm | SW2 |
| 1 | SD Access | LED_THT:LED_D3.0mm | D2 |
| 1 | Z80A | Package_DIP:DIP-40_W15.24mm_Socket | CPU1 |
| 1 | Z80[1..20] | Connector_PinHeader_2.54mm:PinHeader_1x20_P2.54mm_Vertical | J2 |
| 1 | Z80[21..40] | Connector_PinHeader_2.54mm:PinHeader_1x20_P2.54mm_Vertical | J4 |
Similar boards
- 2 layers142.2 × 99.1 mm

- 2 layers155 × 114 mm

Mutif1613
ja1umi/MUTIF1613Project
Verious design information related to my home-brewed MN1613 16-bit computer
60 parts3MIT - 2 layers180 × 67.5 mm

- 4 layers100 × 100 mm

- 4 layers62.2 × 21.6 mm

- 4 layers180.3 × 154.9 mm

- 2 layers284.9 × 96.5 mm

- 2 layers213.1 × 129 mm

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).