Skip to the content
PCBKitNew board
2 layers150 × 100 mmAPL1, the printed circuit board in 3D

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

6

README

README.md

APL1

APL1.png

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

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 R9 for KBDCLR.
  • Change pull-up resistors R1-R4 from 1k to 4.7k.
  • Add capacitor C17 for 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

ReferenceQtyValueDescription
C1–C1010100nFDisc Capacitor
C11, C14, C15, C1641µFDisc Capacitor
C12, C13218pFDisc Capacitor
C31110uFElectrolytic Capacitor 16v
D11POWER LED3.0mm Power LED
J21KEYBOARDASCII Keyboard Header (DIP-16)
J31SERIAL (DTE)DB-9 Male
J415V DCDC Barrel Jack
J51PS/26-pin Mini-DIN (KMDGX-6S-BS)
J61VIDEORCA Jack (PJRAN1X1U0XX)
R1–R444.7kΩ1/8W Resistor
R611kΩ1/8W Resistor
R51330Ω1/8W Resistor
R7, R82820Ω1/8W Resistor
R9210kΩ1/8W Resistor
SW11POWERSPDT Switch (400MSP1R6BLKM6QE)
U1174LS04Hex Inverter
U2165026502 CPU
U3165C21PIA
U41AS6C6225632KB SRAM
U5174LS00Quad NAND
U6174LS1383-to-8 Decoder
U7128C648KB EEPROM
U8174LS245Octal Bus Transceiver
U91MAX232RS-232 Transceiver
U101ATmega1284-PTerminal Controller MCU
Y111MHzDIP-14 Oscillator
Y2128.636MHzCrystal

License

Hardware designs are released under the CERN Open Hardware Licence Version 2 – Permissive.

Parts

53
QtyValueFootprintReferences
10100nFCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC1, C2, C3, C4, C5, C6, C7, C8, C9, C10
41uFCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC11, C14, C15, C16
44.7kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R2, R3, R4
218pFCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC12, C13
2820Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR7, R8
110kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR9
110uFCapacitor_THT:CP_Radial_D4.0mm_P1.50mmC17
11MHzOscillator:Oscillator_DIP-14Y1
11kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR6
128.636MHzCrystal:Crystal_HC49-U_VerticalY2
128C64Package_DIP:DIP-28_W15.24mm_Socket_LongPadsU7
1330Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR5
15V DCConnector_BarrelJack:BarrelJack_HorizontalJ4
16502Package_DIP:DIP-40_W15.24mm_Socket_LongPadsU2
16502 BUS6502 Parts:6502 Bus ConnectorJ1
165C21Package_DIP:DIP-40_W15.24mm_Socket_LongPadsU3
174LS00Package_DIP:DIP-14_W7.62mm_Socket_LongPadsU5
174LS04Package_DIP:DIP-14_W7.62mm_Socket_LongPadsU1
174LS138Package_DIP:DIP-16_W7.62mm_Socket_LongPadsU6
174LS245Package_DIP:DIP-20_W7.62mm_Socket_LongPadsU8
1AS6C62256Package_DIP:DIP-28_W15.24mm_Socket_LongPadsU4
1ATmega1284-PPackage_DIP:DIP-40_W15.24mm_Socket_LongPadsU10
1KEYBOARDPackage_DIP:DIP-16_W7.62mm_Socket_LongPadsJ2
1LOGOA.C. Wright Logo:A.C. Wright Logo 10mmG***
1MAX232Package_DIP:DIP-16_W7.62mm_Socket_LongPadsU9
1POWER6502 Parts:SW_400MSP1R6BLKM6QESW1
1POWER LEDLED_THT:LED_D3.0mmD1
1PS/26502 Parts:KMDGX-6S-BSJ5
1SERIAL (DTE)Connector_Dsub:DSUB-9_Pins_Horizontal_P2.77x2.84mm_EdgePinOffset7.70mm_Housed_MountingHolesOffset9.12mmJ3
1VIDEO6502 Parts:SWITCHCRAFT_PJRAN1X1U0XXJ6

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 mm6809PC-6U, the printed circuit board in 3D

    6809PC-6U

    danwerner21/6809PC

    6809 PC

    167 parts2
  • 6 layers244 × 244 mmRetroslop, the printed circuit board in 3D

    Retroslop

    CPTforever/8088-MicroATX-Computer

    A 8088 based, IBM 5150 like computer compatible with the MicroATX motherboard form factor.

    193 parts
  • 4 layers254 × 254 mmProto1, the printed circuit board in 3D

    Proto1

    ehbc-project/ehbc-proto1-board

    KiCad board designs for EHBC

    174 parts
  • 2 layers160.5 × 100.2 mm8080 Board, the printed circuit board in 3D

    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 mmTTY, the printed circuit board in 3D

    TTY

    kitspace-test-repos/kicad6-file-collection

    44 partsMIT
  • 2 layers279.4 × 203.2 mmZ180GDC, the printed circuit board in 3D

    Z180GDC

    lynchaj/rhyophyre

    Single Board Computer featuring Zilog Z180 processor and NEC µPD7220 Graphics Display Controller

    249 parts12
  • 2 layers100 × 100 mmZ80CTCDART2, the printed circuit board in 3D

    Z80CTCDART2

    lynchaj/nhyodyne

    Modular Backplane Computer

    75 parts31
  • 2 layers235 × 160 mmInput output.Multi, the printed circuit board in 3D

    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