Skip to the content
PCBKitNew board
2 layers100 × 99.9 mmProtoCard, the printed circuit board in 3D

A simple 6502 single board computer

Size
100 × 99.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
1,036
Nets
47
Pads
1,137
Tracks, vias
256, 1
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
21 Sep 2023
Updated
2 Nov 2026

Overview

ProtoCard is an open-source printed circuit board by marianol, from the marianol/simple6502 repository on GitHub. It is a 2-layer board of 100 × 99.9 mm with 1,036 parts on 47 nets, routed with 256 tracks and 1 via.

Its parts include 2 connectors, 1 capacitor, 1 resistor and 1 diode. It belongs with the computers and single-board computers and retro computing and games boards of this library.

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

1,036
QtyValueFootprintReferences
11000ufCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC1
1220Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1
16502 Edge Connector_PCBEdge:BUS_EdgePCB_Apple_2J1
16502 PinheaderConnector_PinHeader_2.54mm:PinHeader_2x25_P2.54mm_Vertical_Counter_ClockwiseJ2
1POWERLED_THT:LED_D3.0mmD1

The 5 most common of 1,036 parts.

Questions

How big is the ProtoCard PCB?

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

What parts does the ProtoCard use?

1,036 parts. 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 ProtoCard KiCad files?

From the marianol/simple6502 repository on GitHub, at the commit this page was made from: the board is hardware/protoCard/protoCard.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 ProtoCard 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 × 100 mmSimple6502, the printed circuit board in 3D

    Simple6502

    marianol/simple6502

    A simple 6502 single board computer

    46 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 layers266.8 × 166.5 mmDino Blinker panel, the printed circuit board in 3D

    Dino Blinker panel

    GerritMihu/SMT-Dino

    Blinkender Dinosaurier mit dem 14-Bit Zähler 74HCT4060

    1,035 parts
  • 2 layers156 × 128 mmHybridimager v2-als pt19-32x32, the printed circuit board in 3D

    Hybridimager v2-als pt19-32x32

    lachlanchen/HybridImager

    HybridImager: open hybrid single-pixel, event, frame, and spectral scientific imaging research workspace

    1,033 parts
  • 2 layers99 × 77 mmDigiobscura, the printed circuit board in 3D

    Digiobscura

    idlehandsdev/diycamera

    An Arduino Based DIY Image Sensor and Camera Body

    1,032 parts216AGPL-3.0
  • 2 layers137 × 148.9 mmGate, the printed circuit board in 3D

    Gate

    evansj/ESP32-LED

    A Stargate thing...

    1,028 parts1GPL-3.0
  • 2 layers231.9 × 181.2 mmProsthetic Glove 32x32 RH, the printed circuit board in 3D

    Prosthetic Glove 32x32 RH

    Harish2102/hdsense-glove

    A high-density 32×32 pressure-sensing glove for prosthetics and haptic feedback

    1,025 parts
  • 2 layers500 × 325.5 mmLedian-2.0, the printed circuit board in 3D

    Ledian-2.0

    aleclearmind/ledian

    ledian: a color-coded terminal made out of LEDs

    1,025 parts
  • 2 layers89.2 × 85.1 mmPANEL, the printed circuit board in 3D

    PANEL

    pris-digital/ManhattanBreakoutBoards-Panelized

    A collection of breakout boards for manhattan style prototyping

    1,048 partsGPL-3.0