An AC6502 retro-style 8-bit computer based on the 65C02 microprocessor.
- Overview
- Architecture
- Systems
- Software
- Hardware
- Firmware
- CAD
- Production
- Schematics
- Libraries
- Bill of Materials
- License
The AC6502 ecosystem is a family of open-source, 65C02-based computers sharing a common architecture, memory map, and BIOS. Each computer in the family is purpose-built for a different use case but runs the same software and firmware.
The ACE (All-in-one Computer Experience) is a complete, self-contained 65C02 computer on a single PCB. It integrates everything found across the COB's modular cards — CPU, memory, video, audio, storage, serial, GPIO, RTC, and keyboard controller — onto one board, delivering the full experience without a backplane or expansion cards.
All AC6502 computers share:
- CPU: 65C02 (or accurate emulation)
- Memory: 32KB RAM + 32KB ROM, with optional banked RAM expansion
- Memory Map: Standardized across the ecosystem — zero page, stack, I/O space ($8000–$9FFF), system ROM, and interrupt vectors at $FFFA–$FFFF
- Bus: 16-bit address bus, 8-bit bidirectional data bus, standard 65C02 control signals (RW, PHI2, RESET, IRQ, NMI, RDY, SYNC)
- BIOS: A common BIOS provides the kernel, monitor, and BASIC interpreter across all systems
| Project | Description |
|---|---|
| 6502-ACE | All-in-one Computer Experience — A single board computer (YOU ARE HERE) |
| 6502-COB | Computer On a Backplane — Modular desktop computer with expandable card slots |
| 6502-DEV | Development Environment Vehicle — Emulation-based dev system |
| 6502-KIM | Keypad Input Monitor - KIM-1 inspired minimal computer |
| 6502-VCS | Video Computer System — Cartridge-based retro gaming console |
| Project | Description |
|---|---|
| 6502-BIOS | The shared BIOS (kernel, monitor, BASIC) for all AC6502 computers |
| 6502-PRG | Template project for writing assembly language programs |
| 6502-CRT | Template project for writing assembly language cartridges |
| 6502-EMULATOR | Node.js-based AC6502 emulator |
| 6502-WEBULATOR | Web-based AC6502 emulator |
This repository contains KiCad 7.0+ PCB designs for the ACE board.
Hardware/ACE Board/
The single integrated board hosting the W65C02S CPU and all peripherals. Provides:
- CPU: W65C02S running at 1 or 2 MHz (jumper-selectable)
- RAM: 32KB SRAM (62256) + Optional 512K banked SRAM (AS6C4008)
- ROM: 32KB EEPROM (28C256)
- Video: Pico9918 (VGA 640×480)
- Audio: ARMSID SID chip emulator (3-voice synthesis, RCA output)
- Storage: Storage adapter socket
- Serial: 65C51 ACIA with MAX238 level shifter (RS-232 via DB9, 50–19200 baud)
- GPIO: 65C22 VIA (20 GPIO pins, 2× 16-bit timers, shift register)
- RTC: DS1511Y real-time clock with battery-backed NVRAM
- Keyboard Controller: ATmega1284P running AB Controller firmware
- Input: PS/2 keyboard connector and 8×8 keyboard matrix header
- Joystick: Atari 2600-compatible joystick port
- Clock: 16 MHz DIP-14 full can oscillator (X1); drives the ATmega1284 at 16 MHz and the 65C02 at 1 or 2 MHz via the 74HC163 divider (J1 PHI2 SELECT jumper)
- Reset: Manual reset button (SW70) connected to the ATmega1284, which also provides power-on reset to the 65C02
- Power: 5V DC via barrel jack
Rev 1.1
- Fixes the gating of the
LOADLandLOADHlatch-enable signals for the 74HC573 latches (U21,U22) that drive the AS6C4008 banked SRAM. In Rev 1.0 the final two decode gates (U13C/U13D) were NANDs, which left the latches pulsing while idle and allowed spurious loads on reads, so the latches never reliably held a bank value. - The fix replaces the final NAND stage with a NOR function:
LOADL = NOR(SEL_L, WB)andLOADH = NOR(SEH_L, WB), holding each latch enable low out of window and only pulsing on an in-window write. This makes banked RAM work correctly with no firmware change. - Implemented by adding one 74HC02 quad NOR (
U23). The existing select logic inU13A/U13Bis unchanged. - Some pull-up resistors changed from 1kΩ to 10kΩ:
R1–R4andR25are now 10kΩ. - Added
C31(10µF electrolytic) at the power input for bulk decoupling capacitance.
Rev 1.0
- Initial release.
Hardware/ACE CF Adapter/
A CompactFlash adapter board that connects to the Storage header on the ACE Board. Provides:
- Interface: 8-bit IDE mode
- Storage: CompactFlash socket (up to 1MB)
Hardware/ACE RAM Patch/
A piggyback patch board for Rev 1.0 of the ACE Board that corrects the extended RAM (banked SRAM) issue. Installs by plugging into the U13 (74HC00) socket on the main board. Provides:
- Fix: Replaces the Rev 1.0 NAND-based latch-enable logic with a NOR function (
LOADL = NOR(SEL_L, WB),LOADH = NOR(SEH_L, WB)), preventing spurious latch pulses and making banked RAM work correctly with no firmware change - Interface: DIP-14 piggyback connector into U13 on the Rev 1.0 ACE Board
This repository contains PlatformIO-based firmware for the ACE board.
Firmware/AB Controller/
Firmware for the ATmega1284P keyboard controller on the ACE board. Provides:
- Dual keyboard input: PS/2 and 8×8 matrix keyboard simultaneously
- PS/2 scancode to ASCII conversion
- Matrix keyboard scanning with hardware debouncing
- Modifier key support: Shift (symbols/punctuation) and Ctrl (control codes)
- Buffered output via 65C22 VIA with CA1/CB1 data-ready strobes
- Independent enable/disable for PS/2 and matrix inputs
See Firmware/AB Controller/README.md for setup and usage instructions.
CAD/
3D-printable enclosure bases and laser-cut top panels for the ACE system.
Production/
JLCPCB-ready Gerber files and BOM/CPL for PCB fabrication and assembly.
Schematics/
PDF schematics for the ACE board.
Libraries/
Shared KiCad symbol and footprint libraries used across all AC6502 hardware projects.
| Reference | Qty | Value | Description | DigiKey | Mouser | Other |
|---|---|---|---|---|---|---|
| BT1 | 1 | CR2032 | Battery Holder | BAT-HLD-001-THM-ND | 712-BAT-HLD-001-THM | |
| C1, C9–C30 | 23 | 100nF | Disc Capacitor | 478-5732-ND | AMAZON | |
| C2, C3, C5, C6, C8 | 5 | 1µF | Disc Capacitor | 478-7667-ND | AMAZON | |
| C4, C7 | 2 | 2.2nF | Disc Capacitor | 478-SR151C222KAATR1CT-ND | AMAZON | |
| C31 | 1 | 10uF | Electrolytic Capacitor 16v | P966-ND | AMAZON | |
| D1 | 1 | LED | 3.0mm Power LED | 732-5008-ND | AMAZON | |
| D2, D3 | 2 | BAT85 | Schottky Diode | BAT85SCT-ND | 78-BAT85S | AMAZON |
| J1 | 1 | PHI2 SELECT | Pin Header 1×3 2.54mm | AMAZON | ||
| J2 | 1 | CTS EN | Pin Header 1×3 2.54mm | AMAZON | ||
| J3 | 1 | RESET SW | Pin Header 1×2 2.54mm | AMAZON | ||
| J4 | 1 | DCD EN | Pin Header 1×3 2.54mm | AMAZON | ||
| J5 | 1 | VDD | Pin Header 1×2 2.54mm | AMAZON | ||
| J6 | 1 | JOYSTICK A | DB-9 Male | 609-1481-ND | 649-D09P33E4GX00LF | |
| J7 | 1 | PADDLES | Pin Header 1×4 2.54mm | AMAZON | ||
| J8 | 1 | JOYSTICK B | DB-9 Male | 609-1481-ND | 649-D09P33E4GX00LF | |
| J9 | 1 | PORT B | Box Header 2×6 2.54mm | 2057-BHR-12-VUA-ND | AMAZON | |
| J10 | 1 | PORT A | Box Header 2×6 2.54mm | 2057-BHR-12-VUA-ND | AMAZON | |
| J11 | 1 | AUDIO L | RCA Jack | PJRAN1X1U02X-ND | 502-PJRAN1X1U02X | |
| J12 | 1 | DB9 MALE (DTE) | DB-9 Male | 609-1481-ND | 649-D09P33E4GX00LF | |
| J13 | 1 | PS/2 | 6-pin Mini-DIN | 806-KMDGX-6S-BS | AMAZON | |
| J14 | 1 | AUDIO R | RCA Jack | PJRAN1X1U03X-ND | 502-PJRAN1X1U03X | |
| J15 | 1 | AUDIO | Pin Header 1×2 2.54mm | AMAZON | ||
| J16 | 1 | 5V DC | DC Barrel Jack | 2073-DCJ200-10-A-K1-K-ND | 640-DCJ200-10-A-K1-K | |
| J17 | 1 | CART | Card Edge 2×20 2.54mm | A31723-ND | 571-5-5530843-4 | |
| J18 | 1 | BUS | Box Header 2×20 2.54mm | AMAZON | ||
| J19 | 1 | VCC | Pin Header 1×2 2.54mm | AMAZON | ||
| J20 | 1 | POWER LED | Pin Header 1×2 2.54mm | AMAZON | ||
| J21 | 1 | STORAGE | Pin Socket 2×10 2.54mm Horiz | S5563-ND | ||
| J22 | 1 | KEYBOARD | Pin Header 1×16 2.00mm | AMAZON | ||
| R1–R4, R25 | 5 | 10kΩ | 1/8W Resistor | RNF18FTD10K0CT-ND | AMAZON | |
| R5–R23, R26–R34 | 28 | 1kΩ | 1/8W Resistor | RNF18FTD1K00CT-ND | AMAZON | |
| R24 | 1 | 330Ω | 1/8W Resistor | AMAZON | ||
| SW1–SW13, SW15, SW17–SW28, SW30, SW32–SW40, SW42–SW43, SW45–SW48, SW50–SW57, SW60, SW63–SW65 | 54 | Various | Cherry MX Switch 1.00u | CH196-ND | AMAZON | |
| SW58, SW59, SW62, SW66, SW67 | 5 | CTRL / ALT / FN | Cherry MX Switch 1.25u | CH196-ND | AMAZON | |
| SW16, SW29 | 2 | TAB / Backslash | Cherry MX Switch 1.50u | CH196-ND | AMAZON | |
| SW31 | 1 | CAPS LOCK | Cherry MX Switch 1.75u | CH196-ND | AMAZON | |
| SW14 | 1 | BACKSPACE | Cherry MX Switch 2.00u | CH196-ND | AMAZON | |
| SW41, SW44, SW49 | 3 | SHIFT / ENTER | Cherry MX Switch 2.25u | CH196-ND | AMAZON | |
| SW61 | 1 | SPACE | Cherry MX Switch 6.25u | CH196-ND | AMAZON | |
| SW68 | 1 | POWER | SPDT Switch | EG4326-ND | 612-400MSP1R6BLKM6QE | |
| SW69 | 1 | IO ENABLE | 8× DIP Switch SPST | AMAZON | ||
| SW70 | 1 | RESET | Tact Push Button 5mm | AMAZON | ||
| U1 | 1 | W65C02S | 65C02 CPU | 955-W65C02S6TPG-14 | ||
| U2 | 1 | W65C22 | 65C22 VIA | 955-W65C22N6TPG-14 | ||
| U3 | 1 | Pico9918A | VDP (VGA) | TINDIE | ||
| U4 | 1 | 65C51 | ACIA | JAMECO | ||
| U5 | 1 | 74HC163 | 4-bit Counter | 296-8246-5-ND | 595-SN74HC163N | |
| U6 | 1 | ATmega1284-P | Keyboard Controller MCU | ATMEGA1284-PU-ND | 556-ATMEGA1284-PU | |
| U7 | 1 | AS6C62256 | 32KB SRAM | 1450-1033-ND | 913-AS6C62256-55PCN | |
| U8 | 1 | AT28C256 | 32KB EEPROM | AT28C256-15PU-ND | 556-AT28C25615PU | |
| U9 | 1 | 6581 | SID Chip | LINK | ||
| U10 | 1 | MAX238xNG+ | RS-232 Transceiver | MAX238CNG+-ND | 700-MAX238CNG | |
| U11–U14, U16 | 5 | 74HC00 | Quad NAND | 296-1563-5-ND | 595-SN74HC00N | |
| U15 | 1 | AS6C4008 | 512KB SRAM | 1450-1027-ND | 913-AS6C4008-55PCN | |
| U17 | 1 | 74HC30 | 8-input NAND | 296-9196-5-ND | 595-CD74HC30E | |
| U18 | 1 | DS1511Y | RTC + NVRAM | DS1511Y+-ND | 700-DS1511Y | |
| U19, U20 | 2 | 74HC138 | 3-to-8 Decoder | 296-1575-5-ND | 595-SN74HC138N | |
| U21, U22 | 2 | 74HC573 | Octal Latch | 296-12815-5-ND | 595-CD74HC573EE4 | |
| U23 | 1 | 74HC02 | Quad NOR | 296-1565-5-ND | 595-SN74HC02N | |
| X1 | 1 | 16MHz | DIP-14 Oscillator | X947-ND | 815-ACO-16-EK | |
| Y1 | 1 | 1.8432MHz | Crystal | 3155-1.8432M20P2/49U-ND | 815-AB-1.8432-B2 |
| Reference | Qty | Value | Description | DigiKey | Mouser | Other |
|---|---|---|---|---|---|---|
| D1 | 1 | ACT LED | 3.0mm LED | 732-5008-ND | AMAZON | |
| J1 | 1 | STORAGE | Pin Header 2×10 2.54mm Horiz | AMAZON | ||
| J2 | 1 | Compact Flash | CF Socket | 4827-101D-TAAB-R01-ND | ||
| R1–R4 | 4 | 1kΩ | 1/8W Resistor | RNF18FTD1K00CT-ND | AMAZON | |
| R5 | 1 | 330Ω | 1/8W Resistor | AMAZON |
| Reference | Qty | Value | Description | DigiKey | Mouser | Other |
|---|---|---|---|---|---|---|
| J1 | 1 | 74HC00 (U13) | DIP-14 Piggyback Socket | |||
| U1 | 1 | 74HC00 | Quad NAND | 296-1563-5-ND | 595-SN74HC00N | |
| U2 | 1 | 74HC02 | Quad NOR | 296-1565-5-ND | 595-SN74HC02N |
Hardware designs are released under the CERN Open Hardware Licence Version 2 – Permissive.
Firmware is released under the MIT License.
