

APL1
A homebrew Apple 1 replica
- Size
- 150 × 100 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 53
- Nets
- 131
- Pads
- 407
- Tracks, vias
- 1,388, 457
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 22 May 2026
- Updated
- 17 Sep 2026
Overview
APL1 is an open-source printed circuit board by acwright, from the acwright/APL1 repository on GitHub, published under the CERN-OHL-P-2.0 licence. It is a 2-layer board of 150 × 100 mm with 53 parts on 131 nets, routed with 1,388 tracks and 457 vias.
It is built around the ATMEGA1284-PU, 74LS245SC and MAX232N, with the 74LS00SC, 74LS04PC and D09P33E4GX00LF among its other parts. Its parts include 17 capacitors, 10 ICs, 9 resistors, 6 connectors and 2 crystals. It belongs with the AVR (ATmega, ATtiny) boards of this library.
Main components
6ATMEGA1284-PU
PDIP-401.8V~5.5V 10bit 128KB 20MHz 32 4KB AVR FLASH PDIP-40 Microcontrollers (MCU/MPU/SOC) ROHSMicrochip TechnologyMicrocontrollers (MCU/MPU/SOC)74LS245SC
-0℃~+70℃ 12ns@5V,45pF 15mA 24mA 4.75V~5.25V 74LS 8 Bidirectional Output enable Schmitt trigger Tri-State - Buffers, Drivers, Receivers, Transceivers ROHSTexas InstrumentsBuffers, Drivers, Receivers, TransceiversMAX232N
PDIP-160℃~+70℃ 120Kbps 2 2 4.5V~5.5V Transceiver PDIP-16 RS232 ICs ROHSTexas InstrumentsRS232 ICs74LS00SC
-0℃~+70℃ 15ns@5V,50pF 2 2.7V 2V 4 4.75V~5.25V 400uA 500mV 74LS 800mV 8mA NAND Gate - Logic Gates ROHSTexas InstrumentsLogic Gates74LS04PC
PDIP-140℃~+70℃ 4.75V~5.25V 6 6.6mA 74LS PDIP-14 InvertersonsemiInvertersD09P33E4GX00LF
弯插弯插 D-Sub / VGA Connectors ROHSAmphenolD-Sub / VGA Connectors
README
README.mdAPL1

A homebrew Apple 1 replica built around the 6502 microprocessor, with a modern microcontroller-based terminal that adds PS/2 keyboard and serial input alongside the original ASCII keyboard interface.
Table of Contents
- Overview
- Architecture
- Hardware
- Firmware
- CAD
- Production
- Schematics
- Libraries
- Bill of Materials
- License
Overview
The APL1 is a faithful recreation of the 1976 Apple 1 computer, rebuilt as an open-source KiCad project. It preserves the original 6502 + PIA architecture and the classic WozMon firmware experience, while replacing the bulky discrete terminal section of the original with an ATmega1284 microcontroller. The MCU emulates the Apple 1 keyboard and display handshake exactly, but also exposes a PS/2 keyboard port and a serial terminal connection for modern convenience.
Architecture
- CPU: MOS 6502 running at 1 MHz
- RAM: 32KB SRAM (AS6C62256)
- ROM: 8KB EEPROM (28C64) holding WozMon
- PIA: 65C21 — the Apple 1 keyboard/display interface
- Terminal: ATmega1284(P) controller emulating the original terminal handshake
- Input: Original ASCII keyboard header, PS/2 keyboard, and serial (RS-232) input
- Output: Serial terminal output, with composite video reserved for a future revision
- Bus: 16-bit address bus, 8-bit bidirectional data bus, standard 6502 control signals
- Clock: 1 MHz oscillator for the 6502; 28.63636 MHz crystal (8× NTSC colorburst) for the controller
Hardware
This repository contains KiCad 7.0+ PCB designs for the APL1 board.
APL1 Board
Hardware/APL1/
The single board hosting the 6502 CPU, memory, PIA, and the ATmega1284 terminal controller. Provides:
- CPU: 6502 running at 1 MHz
- RAM: 32KB SRAM (AS6C62256)
- ROM: 8KB EEPROM (28C64) preloaded with WozMon
- PIA: 65C21 keyboard/display interface (original Apple 1 footprint)
- Terminal Controller: ATmega1284(P) running APL1 Controller firmware
- Keyboard buffer: 74LS245 octal bus transceiver
- Glue logic: 74LS04, 74LS00, and 74LS138 address decoder
- Serial: MAX232 level shifter with DB-9 (DTE) connector
- Input: Original ASCII keyboard header and PS/2 keyboard connector
- Video: RCA composite video jack (reserved for a future firmware revision)
- Reset: Keyboard reset and clear controls handled by the controller
- Power: 5V DC via barrel jack, with power switch and indicator LED
Revision History
Rev 1.1
- Add 10k pull-down resistor
R9for KBDCLR. - Change pull-up resistors
R1-R4from 1k to 4.7k. - Add capacitor
C17for bulk capacitance at power supply.
Rev 1.0
- Initial release.
Firmware
This repository contains firmware for the terminal controller, the system ROM, and the desktop terminal application.
APL1 Controller
Firmware/APL1 Controller/
PlatformIO-based firmware for the ATmega1284(P) terminal controller. Provides:
- Faithful emulation of the Apple 1 keyboard and display handshake (DA / RDAB)
- Original ASCII keyboard pass-through via the 74LS245 buffer
- PS/2 keyboard input with a custom Set-2 ISR decoder mapped to Apple 1 ASCII
- Serial (RS-232) terminal input and output at 115200 8N1
- Control shortcuts for clear screen, reset, and throttle ("slow") mode
- Keyboard reset and clear button handling
- Composite video output hooks reserved for a future revision
See Firmware/APL1 Controller/README.md for build, flash, and pin-map details.
APL1 ROM
Firmware/APL1 ROM/
The system ROM image built from WozMon, Steve Wozniak's original Apple 1 monitor, assembled with the cc65 toolchain and burned to a 28C64 EEPROM.
See Firmware/APL1 ROM/README.md for build and programming instructions.
APL1 Terminal
Firmware/APL1-Terminal/
An Electron + Vue 3 desktop application that provides a faithful CRT terminal experience for the APL1. Connects to the board over the DB-9 serial port at 115200 8N1 and renders output using the original Signetics 2513 character ROM glyphs. Provides:
- 40×24 character canvas rendered with the authentic Signetics 2513 font
- Selectable phosphor color: white, amber, or green
- CRT effects: phosphor glow, scanlines overlay, and screen flicker animation
- Serial port connection and disconnection (auto-detected ports)
- Keyboard input forwarded to the APL1 with Apple 1 control shortcuts (Ctrl+L clear, Ctrl+\ reset, Ctrl+T throttle)
- Built-in program loader with paced character/line sending for 20 bundled Wozmon programs
- Settings panel with per-character and per-line delay controls
- macOS (Apple Silicon DMG), Linux (AppImage / deb), and Windows (NSIS installer) distribution builds, all built locally from macOS
See Firmware/APL1-Terminal/README.md for build and run instructions.
CAD
CAD/
3D models and images for the APL1 board and its components.
Production
Production/
JLCPCB-ready fabrication files, BOM, and component positions for PCB fabrication and assembly.
Schematics
Schematics/
Schematics for the APL1 board.
Libraries
Libraries/
Shared KiCad symbol and footprint libraries used across the APL1 hardware project.
Bill of Materials
| Reference | Qty | Value | Description |
|---|---|---|---|
| C1–C10 | 10 | 100nF | Disc Capacitor |
| C11, C14, C15, C16 | 4 | 1µF | Disc Capacitor |
| C12, C13 | 2 | 18pF | Disc Capacitor |
| C31 | 1 | 10uF | Electrolytic Capacitor 16v |
| D1 | 1 | POWER LED | 3.0mm Power LED |
| J2 | 1 | KEYBOARD | ASCII Keyboard Header (DIP-16) |
| J3 | 1 | SERIAL (DTE) | DB-9 Male |
| J4 | 1 | 5V DC | DC Barrel Jack |
| J5 | 1 | PS/2 | 6-pin Mini-DIN (KMDGX-6S-BS) |
| J6 | 1 | VIDEO | RCA Jack (PJRAN1X1U0XX) |
| R1–R4 | 4 | 4.7kΩ | 1/8W Resistor |
| R6 | 1 | 1kΩ | 1/8W Resistor |
| R5 | 1 | 330Ω | 1/8W Resistor |
| R7, R8 | 2 | 820Ω | 1/8W Resistor |
| R9 | 2 | 10kΩ | 1/8W Resistor |
| SW1 | 1 | POWER | SPDT Switch (400MSP1R6BLKM6QE) |
| U1 | 1 | 74LS04 | Hex Inverter |
| U2 | 1 | 6502 | 6502 CPU |
| U3 | 1 | 65C21 | PIA |
| U4 | 1 | AS6C62256 | 32KB SRAM |
| U5 | 1 | 74LS00 | Quad NAND |
| U6 | 1 | 74LS138 | 3-to-8 Decoder |
| U7 | 1 | 28C64 | 8KB EEPROM |
| U8 | 1 | 74LS245 | Octal Bus Transceiver |
| U9 | 1 | MAX232 | RS-232 Transceiver |
| U10 | 1 | ATmega1284-P | Terminal Controller MCU |
| Y1 | 1 | 1MHz | DIP-14 Oscillator |
| Y2 | 1 | 28.636MHz | Crystal |
License
Hardware designs are released under the CERN Open Hardware Licence Version 2 – Permissive.
Parts
53| Qty | Value | Footprint | References |
|---|---|---|---|
| 10 | 100nF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mm | C1, C2, C3, C4, C5, C6, C7, C8, C9, C10 |
| 4 | 1uF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mm | C11, C14, C15, C16 |
| 4 | 4.7k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R1, R2, R3, R4 |
| 2 | 18pF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mm | C12, C13 |
| 2 | 820 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R7, R8 |
| 1 | 10k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R9 |
| 1 | 10uF | Capacitor_THT:CP_Radial_D4.0mm_P1.50mm | C17 |
| 1 | 1MHz | Oscillator:Oscillator_DIP-14 | Y1 |
| 1 | 1k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R6 |
| 1 | 28.636MHz | Crystal:Crystal_HC49-U_Vertical | Y2 |
| 1 | 28C64 | Package_DIP:DIP-28_W15.24mm_Socket_LongPads | U7 |
| 1 | 330 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R5 |
| 1 | 5V DC | Connector_BarrelJack:BarrelJack_Horizontal | J4 |
| 1 | 6502 | Package_DIP:DIP-40_W15.24mm_Socket_LongPads | U2 |
| 1 | 6502 BUS | 6502 Parts:6502 Bus Connector | J1 |
| 1 | 65C21 | Package_DIP:DIP-40_W15.24mm_Socket_LongPads | U3 |
| 1 | 74LS00 | Package_DIP:DIP-14_W7.62mm_Socket_LongPads | U5 |
| 1 | 74LS04 | Package_DIP:DIP-14_W7.62mm_Socket_LongPads | U1 |
| 1 | 74LS138 | Package_DIP:DIP-16_W7.62mm_Socket_LongPads | U6 |
| 1 | 74LS245 | Package_DIP:DIP-20_W7.62mm_Socket_LongPads | U8 |
| 1 | AS6C62256 | Package_DIP:DIP-28_W15.24mm_Socket_LongPads | U4 |
| 1 | ATmega1284-P | Package_DIP:DIP-40_W15.24mm_Socket_LongPads | U10 |
| 1 | KEYBOARD | Package_DIP:DIP-16_W7.62mm_Socket_LongPads | J2 |
| 1 | LOGO | A.C. Wright Logo:A.C. Wright Logo 10mm | G*** |
| 1 | MAX232 | Package_DIP:DIP-16_W7.62mm_Socket_LongPads | U9 |
| 1 | POWER | 6502 Parts:SW_400MSP1R6BLKM6QE | SW1 |
| 1 | POWER LED | LED_THT:LED_D3.0mm | D1 |
| 1 | PS/2 | 6502 Parts:KMDGX-6S-BS | J5 |
| 1 | SERIAL (DTE) | Connector_Dsub:DSUB-9_Pins_Horizontal_P2.77x2.84mm_EdgePinOffset7.70mm_Housed_MountingHolesOffset9.12mm | J3 |
| 1 | VIDEO | 6502 Parts:SWITCHCRAFT_PJRAN1X1U0XX | J6 |
The 47 most common of 53 parts.
Questions
How big is the APL1 PCB?
It measures 150 × 100 mm and has 2 copper layers, 1.6 mm thick.
What parts does the APL1 use?
53 parts, built around the ATMEGA1284-PU, 74LS245SC, MAX232N and 74LS00SC. 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 APL1 KiCad files?
From the acwright/APL1 repository on GitHub, at the commit this page was made from: the board is Hardware/APL1/Rev 1.1/APL1.kicad_pcb and its schematic Hardware/APL1/Rev 1.0/APL1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the APL1 design in my own project?
Its repository publishes it under the CERN-OHL-P-2.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).
Similar boards
- 2 layers244 × 244 mm

- 6 layers244 × 244 mm

Retroslop
CPTforever/8088-MicroATX-Computer
A 8088 based, IBM 5150 like computer compatible with the MicroATX motherboard form factor.
193 parts - 4 layers254 × 254 mm

- 2 layers160.5 × 100.2 mm

8080 Board
sladek/SBC_8080_ECB
This is my attempt to build a single-board microcomputer based on the Intel 8080 CPU. It contains the following features:
112 parts - 2 layers99.7 × 69.9 mm

- 2 layers279.4 × 203.2 mm

Z180GDC
lynchaj/rhyophyre
Single Board Computer featuring Zilog Z180 processor and NEC µPD7220 Graphics Display Controller
249 parts12 - 2 layers100 × 100 mm

- 2 layers235 × 160 mm

Input output.Multi
lynchaj/duodyne
Duodyne is a hobbyist retrocomputer system designed to run ROMWBW. It is comprised of modules on a system bus
167 parts15