Skip to the content
2 layers173 × 55 mmVIC-20 Tactile 6mm, the printed circuit board in 3D

Hardware & information for the VIC-20

Size
173 × 55 mm
Copper layers
2
Thickness
1.6 mm
Parts
66
Nets
19
Pads
279
Tracks, vias
565, 4
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
3 Sep 2023
Updated
17 Jun 2026

Overview

VIC-20 Tactile 6mm is an open-source printed circuit board by BrettHallen, from the BrettHallen/Commodore_VIC20 repository on GitHub. It is a 2-layer board of 173 × 55 mm with 66 parts on 19 nets, routed with 565 tracks and 4 vias.

Its parts include 65 switches and 1 connector.

README

README.md

Commodore VIC-20 Hardware Projects

Hardware & information for the VIC-20.

MFJ-1258 Capacitance Meter

By MFJ Enterprises

HAMSOFT Cartridge

By Kantronics

VIKTRAK+ Software & AUTOTRAK Cartridge

By K7NH/Neil Hill

6560/6561 A/V Breakout Board - UNTESTED

The VIC's default video output is pretty bad. I've long wanted to "go back to basics" and see how the output can be improved by, for example, wiring it up as per its original datasheet example circuit.

The first step is to create this breakout board to isolate the A/V signals from the video output stage on the VIC's motherboard.

3D view of breakout board

I hope that it will allow me to see what signals the 6560 outputs natively, then start to build on that.

BTW, yes I know there are boards out there that already do this. I've not had much luck with the free or paid-for boards, so I want to ... TRY TO ... understand it myself. Let's see ...

6502 to W65C02S Daughterboard - UNTESTED

Unlike the 6522 VIAs that can be directly swapped for modern CMOS 65C22s from WDC, the W65C02S can't be directly swapped - a daughterboard is required to buffer the data bus signals and also handle some other signals/pins that differ.

3D view of 65C02S daughterboard

Serial Port Breakout Board for Logic Analysers

I'm curious how JiffyDOS does its thing so whipped up a simple breakout board for the serial port so I can quickly and very easily connect up my logic analyser to capture the signalling with & without JiffyDOS.

Connect the board to the VIC & the disc drive with a DIN-6, and then a 2x4 Dupont-style cable for the logic analyser.

Serial breakout 3D

RAM Expansions

Okay, my mind is full of ideas so it's probably a bit confusing with all these different designs.

My original intent/idea was to replace the orignal ten 2114 RAM chips in case they were faulty. It then grew from there.

The different designs are:

  • Original 8KB (BLK0) expansion: Replace the original 5KB plus 3KB expansion, switchable on/off via external switch. This used a PLD which, in hindsight, is more complication than really needed.
  • New 8KB expansion: Replace the PLD with the 74LS138, replicating the original VIC design but intercepting the ~RAM1/2/3 select signals.
  • Simpler 8KB expansion: For a full BLK0 we really only need the ~BLK0 select signal so this greatly simplifies design but isn't switchable on/off.
  • Full 32KB (BLK0/1/2/3) expansion
  • Really Full 40KB (BLK0/1/2/3/5) expansion: Two designs to give the full 32+3KB expansion. The Rev. A uses SMD and a larger SRAM and is, IMHO, overly complicated. The Rev. B design is through-hole and piggybacks an 8KB (6264) SRAM on-top of the 32KB (62256) so we don't need to widen the board.

Orignal Internal 8KB RAM Expansion - TESTED

My attempt to replace the VIC's built in 5KB of RAM (ten 2114 chips) with a single 8KB chip, with an extra 3KB RAM as a free bonus.

3D view of RAM upgrade board

New Internal 8KB RAM Expansion - DESIGN

Removes the PLD and re-uses the 74LS138.

3D view of RAM upgrade board

Simpler Internal 8KB RAM Expansion - DESIGN

Just the 8KB for BLK0, nothing else. As simple as my simple mind can make it.

3D view of RAM upgrade board

Internal 40KB RAM Expansion - DESIGNED

I've obsoleted the 32KB design and gone for this: the full 32KB of RAM in BLK0/1/2/3 plus an addition 8KB RAM or ROM in BLK5.

The BLK1/2/3/5 are switchable off externally for software compatibility, and the BLK5 can be filled with either a 6264 SRAM or 2764/2864 (E)EPROM. There is a header to switch whether it is writable (RAM) or not (ROM).

The final boss of internal RAM expansions

Parts

66
QtyValueFootprintReferences
2SHIFTButton_Switch_THT:SW_PUSH_6mmSW12, SW51
1*Button_Switch_THT:SW_PUSH_6mmSW15
1+Button_Switch_THT:SW_PUSH_6mmSW32
1, <Button_Switch_THT:SW_PUSH_6mmSW26
1-Button_Switch_THT:SW_PUSH_6mmSW18
1. >Button_Switch_THT:SW_PUSH_6mmSW24
1/ ?Button_Switch_THT:SW_PUSH_6mmSW13
10Button_Switch_THT:SW_PUSH_6mmSW17
11 !Button_Switch_THT:SW_PUSH_6mmSW61
12 "Button_Switch_THT:SW_PUSH_6mmSW33
13 #Button_Switch_THT:SW_PUSH_6mmSW63
14 $Button_Switch_THT:SW_PUSH_6mmSW35
15 %Button_Switch_THT:SW_PUSH_6mmSW62
16 &Button_Switch_THT:SW_PUSH_6mmSW34
17 'Button_Switch_THT:SW_PUSH_6mmSW64
18 (Button_Switch_THT:SW_PUSH_6mmSW36
19 )Button_Switch_THT:SW_PUSH_6mmSW31
1: [Button_Switch_THT:SW_PUSH_6mmSW22
1; ]Button_Switch_THT:SW_PUSH_6mmSW14
1<-Button_Switch_THT:SW_PUSH_6mmSW57
1=Button_Switch_THT:SW_PUSH_6mmSW11
1@Button_Switch_THT:SW_PUSH_6mmSW20
1AButton_Switch_THT:SW_PUSH_6mmSW55
1BButton_Switch_THT:SW_PUSH_6mmSW48
1CButton_Switch_THT:SW_PUSH_6mmSW46
1C=Button_Switch_THT:SW_PUSH_6mmSW41
1CTRLButton_Switch_THT:SW_PUSH_6mmSW53
1DButton_Switch_THT:SW_PUSH_6mmSW54
1DEL/INSTButton_Switch_THT:SW_PUSH_6mmSW8
1DOWN/UPButton_Switch_THT:SW_PUSH_6mmSW5
1EButton_Switch_THT:SW_PUSH_6mmSW39
1FButton_Switch_THT:SW_PUSH_6mmSW42
1F1/F2Button_Switch_THT:SW_PUSH_6mmSW4
1F3/F4Button_Switch_THT:SW_PUSH_6mmSW3
1F5/F6Button_Switch_THT:SW_PUSH_6mmSW2
1F7/F8Button_Switch_THT:SW_PUSH_6mmSW1
1GButton_Switch_THT:SW_PUSH_6mmSW56
1HButton_Switch_THT:SW_PUSH_6mmSW44
1HOME/CLRButton_Switch_THT:SW_PUSH_6mmSW9
1IButton_Switch_THT:SW_PUSH_6mmSW29
1JButton_Switch_THT:SW_PUSH_6mmSW27
1KButton_Switch_THT:SW_PUSH_6mmSW21
1KEYBOARDConnector_PinHeader_2.54mm:PinHeader_1x20_P2.54mm_VerticalJ1
1LButton_Switch_THT:SW_PUSH_6mmSW28
1MButton_Switch_THT:SW_PUSH_6mmSW23
1NButton_Switch_THT:SW_PUSH_6mmSW25
1OButton_Switch_THT:SW_PUSH_6mmSW19
1PButton_Switch_THT:SW_PUSH_6mmSW30
1QButton_Switch_THT:SW_PUSH_6mmSW37
1RButton_Switch_THT:SW_PUSH_6mmSW58
1RESTOREButton_Switch_THT:SW_PUSH_6mmSW65
1RETURNButton_Switch_THT:SW_PUSH_6mmSW7
1RIGHT/LEFTButton_Switch_THT:SW_PUSH_6mmSW6
1RUN/STOPButton_Switch_THT:SW_PUSH_6mmSW49
1SButton_Switch_THT:SW_PUSH_6mmSW43
1SPACEButton_Switch_THT:SW_PUSH_6mmSW45
1TButton_Switch_THT:SW_PUSH_6mmSW38
1UButton_Switch_THT:SW_PUSH_6mmSW40
1VButton_Switch_THT:SW_PUSH_6mmSW52
1WButton_Switch_THT:SW_PUSH_6mmSW59
1XButton_Switch_THT:SW_PUSH_6mmSW50
1YButton_Switch_THT:SW_PUSH_6mmSW60
1ZButton_Switch_THT:SW_PUSH_6mmSW47
1^Button_Switch_THT:SW_PUSH_6mmSW10
1£Button_Switch_THT:SW_PUSH_6mmSW16

More from BrettHallen/Commodore_VIC20

12
  • 2 layers78 × 54 mmMFJ-1258, the printed circuit board in 3D

    MFJ-1258

    BrettHallen/Commodore_VIC20

    Hardware & information for the VIC-20

    19 parts4
  • 2 layers62.9 × 61.6 mmVIC-20 Internal 8KB RAM, the printed circuit board in 3D

    VIC-20 Internal 8KB RAM

    BrettHallen/Commodore_VIC20

    Hardware & information for the VIC-20

    15 parts4
  • 2 layers63.9 × 61.6 mmVIC-20 Internal 32KB RAM, the printed circuit board in 3D

    VIC-20 Internal 32KB RAM

    BrettHallen/Commodore_VIC20

    Hardware & information for the VIC-20

    12 parts4
  • 2 layers70 × 57 mmVIC-20 Internal 8KB RAM, the printed circuit board in 3D

    VIC-20 Internal 8KB RAM

    BrettHallen/Commodore_VIC20

    Hardware & information for the VIC-20

    10 parts4
  • 2 layers54 × 24 mm6502-to-65C02, the printed circuit board in 3D

    6502-to-65C02

    BrettHallen/Commodore_VIC20

    Hardware & information for the VIC-20

    6 parts4
  • 2 layers52.1 × 26.7 mmVIC 6560 Breakout RevB, the printed circuit board in 3D

    VIC 6560 Breakout RevB

    BrettHallen/Commodore_VIC20

    Hardware & information for the VIC-20

    6 parts4
  • 2 layers56.4 × 23.8 mmSerial Breakout, the printed circuit board in 3D

    Serial Breakout

    BrettHallen/Commodore_VIC20

    Hardware & information for the VIC-20

    3 parts4
  • 2 layers23 × 64 mmVIC 6560 Breakout, the printed circuit board in 3D

    VIC 6560 Breakout

    BrettHallen/Commodore_VIC20

    Hardware & information for the VIC-20

    3 parts4
  • 2 layers38 × 26 mmVIC-20 DIN to RCA, the printed circuit board in 3D

    VIC-20 DIN to RCA

    BrettHallen/Commodore_VIC20

    Hardware & information for the VIC-20

    3 parts4
  • 2 layers38 × 30 mmVIC-20 DIN to S Video, the printed circuit board in 3D

    VIC-20 DIN to S Video

    BrettHallen/Commodore_VIC20

    Hardware & information for the VIC-20

    3 parts4

Similar boards

  • 2 layers126.5 × 83 mmPcb pro controller, the printed circuit board in 3D

    Pcb pro controller

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    66 parts915
  • 2 layers94.6 × 46.1 mmHeaterMeterPI, the printed circuit board in 3D

    HeaterMeterPI

    CapnBry/HeaterMeter

    HeaterMeter and LinkMeter Arduino BBQ Controller

    66 parts557MIT
  • 2 layers56.9 × 35.2 mmAmoeba tp, the printed circuit board in 3D

    Amoeba tp

    mtl/keyboard-pcbs

    Keyboard PCBs

    66 parts485
  • 2 layers82 × 120 mmSample Numeric Keyboard, the printed circuit board in 3D

    Sample Numeric Keyboard

    famichu/MagLev_Switch_MX

    The 3D printable magnetic levitation contactless switch with the linear output hall effect sensor.

    66 parts467
  • 2 layers136.8 × 98.6 mmHillside, the printed circuit board in 3D

    Hillside

    mmccoyd/hillside

    Family of split ergonomic keyboards with three rows of six or five keys and a generous thumb arc

    66 parts448MIT
  • 2 layers115.7 × 95.7 mmFifi split keeb, the printed circuit board in 3D

    Fifi split keeb

    raychengy/fifi_split_keeb

    Fifi Keyboard 🐶 ⌨️

    66 parts334
  • 2 layers95.2 × 57.2 mmDomesdayDuplicator, the printed circuit board in 3D

    DomesdayDuplicator

    Domesday86/DomesdayDuplicator

    High-speed LaserDisc RF sampler

    66 parts325GPL-3.0
  • 2 layers96.5 × 66 mmBumperDuino, the printed circuit board in 3D

    BumperDuino

    Ardumower/ardumower

    Develop an open source robotic lawn mower (HW+SW reference platform)

    66 parts282

Questions

How big is the VIC-20 Tactile 6mm PCB?

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

What parts does the VIC-20 Tactile 6mm use?

66 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 VIC-20 Tactile 6mm KiCad files?

From the BrettHallen/Commodore_VIC20 repository on GitHub, at the commit this page was made from: the board is Keyboard_Tactile_6mm/VIC-20_Tactile_6mm.kicad_pcb and its schematic 6502-to-65C02/KiCad/RevA/6502-to-65C02.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the VIC-20 Tactile 6mm design in my own project?

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