Skip to the content
PCBKitNew board
2 layers100 × 100 mmSimple6502, the printed circuit board in 3D

A simple 6502 single board computer

Size
100 × 100 mm
Copper layers
2
Thickness
1.6 mm
Parts
46
Nets
74
Pads
419
Tracks, vias
1,333, 106
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
21 Sep 2023
Updated
2 Nov 2026

Overview

Simple6502 is an open-source printed circuit board by marianol, from the marianol/simple6502 repository on GitHub. It is a 2-layer board of 100 × 100 mm with 46 parts on 74 nets, routed with 1,333 tracks and 106 vias.

It is built around the 74HC138, 74HCT00D and 74LS30PC, with the DS1813-10+ among its other parts. Its parts include 9 connectors, 8 capacitors, 8 resistors, 7 ICs and 2 switches. It belongs with the computers and single-board computers and retro computing and games boards of this library.

Main components

4

README

README.md

simple6502

My own take on a simple 6502 single board computer, inspired on Garth Wilson's excellent 6502 Primer, Daryl Rictor, Ben Eater, and my own beautiful C=64 and all the classic 8-bit computers of the late 70s early 80s.

This project exists because of scope creep on my YAsixfive02 project, which is in its 10000 iteration. Which I don't think will ever end.

Organization

The project is organized as follows:

  • /hardware
    • /simple6502 The SBC computer motherboard a.k.a The Project
    • /IO_Card A 6522 IO card with 2 VIAs
    • /protoCard A protoboard card for the simple6502 to build your projects
    • /6502motherboard An untested but complete card connector backplane motherboard. I decided to abandon this in favor of the SBC, i may pick it up later
    • /schematics PDF schematics and renders
    • /gallery images of the completed PCBs
    • /3dmodels Kicad 3D models
  • /firmware
    • BIOS and ROM for the simple6502, check the ReadMe
  • /docs
    • docs will be here for now only datasheets

Design

The goal is to build a simple 6502 SBC with RAM, ROM, IO decoding and a serial interface. An expansion bus will carry all the address, data and supporting lines to allow adding IO and other hardware expansions. The PCB will be kept at 100x100mm to reduce cost.

For the serial interface I settled on the Motorola 68B50 ACIA, just because I had one lying around. This forced using a 1.8432MHz clock that drives both the CPU and the ACIA. I added a header for an FTDI card to convert the TTL serial to USB. The ACIA is connected to the IO_8 line locating it at 0x7F70 in the memory map. The jumper J2 next to the header allows you to run the board with the USB 5v rail from the FTDI. IMPORTANT!! This overrides the power switch SW2 and there is no protection built into the board so you should not connect this jumper at the same time as the 5V barrel J7 or the AUX Power header J8. The bus Slot connectors have pin 27 tied to IO_1 and IO_2 respectively allowing to design expansion cards that can be mapped into memory based on where they are plugged. You still have access to IO_3 to IO_7 in case you want to use those. The Expansion Port J1 is intended to be used with a 40 pin ribbon for ease of development of prototype boards.

Simple6502 Computer

I made the PCBs for Revision 1.6 on PCBWay. Simple6502 PCB

Status

Revision 1.6:

  • PCB built and tested.
  • BIOS 0.0.1 working on Rev 1.6. Minimal BIOS routines to control the ACIA

Memory Map

Momory Decocing is done using gates for RAM, ROM and IO. IO_CS line is sent to a 3-8 decoder to get 8 individual IO select lines. IO line $\overline{IO\textunderscore08}$ is used for the onboard ACIA for serial communication. IO lines $\overline{IO\textunderscore01}$ and $\overline{IO\textunderscore02}$ are sent to pin 27 of Slot 1 and 2 respectively. This allows cards that use this pin to get mapped to the memory based on the Slot they are inserted.

I should have mapped some IO on Zero Page for ease of programming and fast IO, but that is left for another revision, since is too convoluted with gates and better suited for a PAL/GAL.

Address Space

  • 0x0000 - 0x7EFF : RAM 32K - 256 bytes (31.75k)
  • 0x7F00 - 0x7F0F : IO_1 > SLOT 1
  • 0x7F10 - 0x7F1F : IO_2 > SLOT 2
  • 0x7F20 - 0x7F2F : IO_3
  • 0x7F30 - 0x7F3F : IO_4
  • 0x7F40 - 0x7F4F : IO_5
  • 0x7F50 - 0x7F5F : IO_6
  • 0x7F60 - 0x7F6F : IO_7
  • 0x7F70 - 0x7F7F : IO_8 > ACIA
  • 0x7F80 - 0x7FFF : Not Decoded
  • 0x8000 - 0xFFFF : ROM (32K)

Card Connector Design

The card connector is based on the EDAC 395 series. I decided on the 395-50-520-201 which I had from a previous Apple ][ repair. Exposed in the connector are:

  • Address lines A0..A15
  • Data lines D0..D7
  • Clock $\phi$ 2
  • $\overline{IO{\textunderscore}CS}$, $\overline{RAM{\textunderscore}CS}$ , and $\overline{ROM{\textunderscore}CS}$ chip select lines
  • $\overline{RD}$ and $\overline{WR}$
  • $\overline{RESET}$
  • Pin 27 is the slot IO select line. For Slot 1 is $\overline{IO\textunderscore01}$ mapping it to 0x7F00, and for Slot 2 is $\overline{IO\textunderscore02}$ mapping it to 0x7F10.
  • IO chip select lines $\overline{IO\textunderscore03}$ .. $\overline{IO\textunderscore07}$.
  • $\overline{IRQ}$ and $\overline{NMI}$
  • VCC and GND, this are set so if you insert a card backwards you will not short them.
  • Pins 21, 24, 33, and 34 are only connected between the 2 slots and have no connection to the mainboard

Licence

Licenced under CERN Open Hardware licence CERN-OHL-S v2, see CERN-OHL-S-v2.txt

(c) 2023-2024 Mariano Luna. All rights reserved

Parts

46
QtyValueFootprintReferences
70.1uFCapacitor_THT:C_Disc_D3.0mm_W1.6mm_P2.50mmC1, C2, C3, C4, C6, C7, C8
4MMountingHole:MountingHole_2.7mm_M2.5_Pad_ViaH1, H2, H3, H4
34K7Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR1, R2, R5
21KResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR7, R8
23K3Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR3, R4
11000uFCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC5
1220Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR6
174HC138Package_DIP:DIP-16_W7.62mm_SocketU7
174HCT00Package_DIP:DIP-14_W7.62mm_SocketU5
174LS30Package_DIP:DIP-14_W7.62mm_SocketU6
1ACO-1MHzOscillator:Oscillator_DIP-14X1
1AUX 5VDCConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ8
1CLK SELConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ3
1DS1813-10+DS1813-10_:21-0248AT1
1Expansion PortConnector_PinHeader_2.54mm:PinHeader_2x20_P2.54mm_VerticalJ1
1FTDI SerialConnector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalJ4
1GNDConnector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalJ5
1IO_01: 0x7F00Connector_Card:EDAC 395-050-520-201SLOT2
1IO_02: 0x7F10Connector_Card:EDAC 395-050-520-201SLOT1
1MC68B50Package_DIP:DIP-24_W15.24mm_SocketU2
1POWERButton_Switch_THT:SW_Push_2P2T_Toggle_CK_PVA2OAH5xxxxxxV2SW2
1POWERLED_THT:LED_D3.0mmD1
1POWER 5VConnector_BarrelJack:BarrelJack_HorizontalJ7
1RAM 62256Package_DIP:DIP-28_W15.24mm_SocketU3
1RAM_~{OE}Jumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP1
1RESETButton_Switch_THT:SW_TH_Tactile_Omron_B3F-10xxSW1
1RESETConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ6
1ROM 28C256Package_DIP:DIP-28_W15.24mm_SocketU4
1ROM_~{OE}Jumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP3
1USB PowerConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ2
1W65C02SxPPackage_DIP:DIP-40_W15.24mm_SocketU1
1~{VP}Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJ9
1~{WR}Jumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP2

Questions

How big is the Simple6502 PCB?

It measures 100 × 100 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Simple6502 use?

46 parts, built around the 74HC138, 74HCT00D, 74LS30PC and DS1813-10+. 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 Simple6502 KiCad files?

From the marianol/simple6502 repository on GitHub, at the commit this page was made from: the board is hardware/simple6502/simple6502.kicad_pcb and its schematic hardware/6502_PS2_Keyboard/6502_PS2_Keyboard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Simple6502 design in my own project?

Its repository states no licence, so its author keeps all rights: ask marianol before reusing the design.

More from marianol/simple6502

4
  • 2 layers100 × 99.9 mmProtoCard, the printed circuit board in 3D

    ProtoCard

    marianol/simple6502

    A simple 6502 single board computer

    1,036 parts
  • 2 layers100 × 100 mm6502motherboard, the printed circuit board in 3D

    6502motherboard

    marianol/simple6502

    A simple 6502 single board computer

    33 parts
  • 2 layers79.5 × 99.9 mmIO Card, the printed circuit board in 3D

    IO Card

    marianol/simple6502

    A simple 6502 single board computer

    29 parts
  • 2 layers100 × 99.9 mm6502 PS2 Keyboard, the printed circuit board in 3D

    6502 PS2 Keyboard

    marianol/simple6502

    A simple 6502 single board computer

    13 parts

Similar boards

  • 2 layers149.9 × 99.9 mmCpu backplane, the printed circuit board in 3D

    Cpu backplane

    douggilliland/Retro-Computers

    Retro-Computer Designs (Z80, 65C816, etc)

    86 parts87
  • 2 layers49.6 × 78.3 mmOdyssey, the printed circuit board in 3D

    Odyssey

    jotego/jtcores

    FPGA cores compatible with multiple arcade game machines and KiCAD schematics of arcade games. Working on MiSTer FPGA/Analogue Pocket

    24 parts346GPL-3.0
  • 2 layers100 × 77.5 mmSmartDiskII, the printed circuit board in 3D

    SmartDiskII

    btb/SmartDiskII

    An hybrid Disk ][ and SmartPort controller

    42 parts60Apache-2.0
  • 4 layers243.8 × 170.2 mmHEC1, the printed circuit board in 3D

    HEC1

    Andy18650/HEC-Model-Z1

    A Z80 computer with protected mode support

    126 parts36GPL-3.0
  • 2 layers58.4 × 50.8 mmOpenC64KernalCart, the printed circuit board in 3D

    OpenC64KernalCart

    SukkoPera/OpenC64KernalCart

    Open Hardware Multi-KERNAL Cartridge for the Commodore 64

    13 parts29
  • 2 layers83.8 × 61.5 mmSegaCD Ramcart, the printed circuit board in 3D

    SegaCD Ramcart

    WindDrake/SegaCD_Ramcart

    Sega Genesis/Megadrive CD Back-up RAM Cart

    22 parts28
  • 2 layers100 × 100 mmMZ80K SD, the printed circuit board in 3D

    MZ80K SD

    yanataka60/MZ80K_SD

    MZ-80KシリーズでSD-CARDからのアプリケーション起動、BASICなどのアプリケーションからSD-CARDへのロード、セーブを実現するものです

    25 parts28MIT
  • 2 layers100 × 100 mmPC-8001 SD, the printed circuit board in 3D

    PC-8001 SD

    yanataka60/PC-8001_SD

    PC-8001でSD-CARDからCMT形式ファイルのロード、セーブ機能を実現するものです。

    23 parts28MIT