Skip to the content
2 layers370 × 165 mmAmstrad CPC664 Keyboard, the printed circuit board in 3D

Amstrad CPC664 Keyboard

BrettHallen/Amstrad-CPC9

Amstrad CPC related projects

Size
370 × 165 mm
Copper layers
2
Thickness
1.6 mm
Parts
91
Nets
28
Pads
436
Tracks, vias
151, 0
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
24 Jul 2025
Updated
25 Jul 2026

Overview

Amstrad CPC664 Keyboard is an open-source printed circuit board by BrettHallen, from the BrettHallen/Amstrad-CPC repository on GitHub. It is a 2-layer board of 370 × 165 mm with 91 parts on 28 nets, routed with 151 tracks and 0 vias.

Its parts include 70 switches and 4 connectors. It belongs with the keyboards and input boards of this library.

README

README.md

Amstrad CPC

Amstrad CPC related projects.

Typer-Inner-Checker

A simple HTML/web page to aid typing in Locomotive BASIC program listings on a modern computer. It doesn't run the program, that's for a proper emulator.

This HTML page will:

  • Check each line as you type it in
  • Colourise/capitalise keywords
  • Highlights missing GOTO/GOSUB targets
  • Save/load BAS file for resuming where you left off

CPC PLUS Floppy Adaptor

An idea to convert the 6128 PLUS model's Centronics floppy connector to a more standard 26-way or 34-way pin header to connect a drive via a ribbon cable.

CPC PLUS Floppy Adaptor

Status

21-May-2026: test boards being fabricated

Dual ROM Adaptor for CPC464

An idea for a no-cut adaptor board to allow two 32KB ROM images to be installed/switchable on a 64KB EPROM. This means you could have the original 464 firmware/BASIC 1.0 and 664 (or 6128) firmware/BASIC 1.1 easily switchable. Alternatively you could install a diagnostic ROM in one of the 32KB banks.

Of course you would need to de-solder the original ROM and install this, but you wouldn't need to worry about cutting the PCB and wiring up pin 1, and you can just reinstall the original ROM.

Dual ROM 3D

Status

21-May-2026: test boards being fabricated

Amstrad CPC Troubleshooting Keyboard

Started off as a quick'n'dirty keyboard for my 2nd CPC664 motherboard that's missing the top case/keyboard, then morphed to a generic CPC keyboard that could be used for troubleshooting naked motherboards.

Status

25-Jul-2025: work in progress

Easy Add on Projects for Amstrad CPC

Trying out hardware projects from the book.

VGA4CPC

A modification of grzegorz_gr's original design to use with WacKEDmaN's enhanced firmware.

  • Rev. A: original re-design of grzegorz-gr's original, adding 6-pin & 8-pin DIN input sockets plus 3.5mm audio pass-through & 2.1mm DC power input
  • Rev. B: added buffer on VGA output as suggest by WacKEDmaN, pass-through for B&W LUM signal, extra push button & breakout of spare GPIOs
  • Rev. C: removed CPC PLUS 8-pin DIN to reduce board size (<100x100mm) for cheaper fabrication, adjusted resistor values
  • Rev. D: added the CPC PLUS 8-pin DIN back in plus 3.5mm stereo audio output, remaining under 100x100mm
  • Rev. E: swapped TLV3212 (SOIC-8) comparator for TLV3232 (SSOP-8) as it's faster
  • Rev. F: moved the comparator to its own daughterboard (simplifies circuit routing), switched to 5V logic (Pico 2 required), also switching the 74LVC245 (SMD) to 74HCT245 (THT)

Brett's CPC-only board 3D

Brett's CPC-to-VGA board 3D

Status

22-May-2025: Rev. C pending fab & testing

CPC DIN to VGA

This is just a very simple connector converter - convert the CPC/CPC PLUS DIN to VGA, with also an RCA for the B&W LUM signal and 3.5mm stereo socket for the PLUSs' audio output.

The idea is that you can then more easily plug it into a device with a VGA socket (like GBS8200) for actual signal conversion.

CPC DIN to VGA converter 3D

Laserwarp

Laserwarp was the first game, with Map Rally, that we got with our green screen Amstrad CPC464 so I have fond memories.

Laserwarp sprite

I thought it might be interesting to try out Claude to disassemble and delve into how the game works.

Parts

91
QtyValueFootprintReferences
8MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4, H5, H6, H7, H8
1/FORWSLASH/PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW46
1@PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW34
1APCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW7
1BPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW24
1CPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW16
1CAPS_LOCKPCM_Mounting_Keyboard_Stabilizer:Stabilizer_Cherry_MX_2.00uKB8
1CAPS_LOCKPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_2.00uSW8
1CARATPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW28
1CLRPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW50
1COLONPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW43
1COMMAPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW48
1COPYPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW54
1CP101_EVENConnector_PinHeader_2.54mm:PinHeader_1x09_P2.54mm_VerticalJ2
1CP101_ODDConnector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_VerticalJ1
1CP102_AConnector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_VerticalJ3
1CP102_BConnector_PinHeader_2.54mm:PinHeader_1x09_P2.54mm_VerticalJ4
1CTRLPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW71
1DPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW15
1DELPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.25uSW1
1DOTPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW49
1DOWNPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW58
1EPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW12
1EIGHTPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW26
1ENTERPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_ISOEnterSW56
1ENTERPCM_Mounting_Keyboard_Stabilizer:Stabilizer_Cherry_MX_2.00uKB56
1ESCPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW4
1FPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW23
1FIVEPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW19
1FOURPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW10
1GPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW22
1HPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW38
1IPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW36
1JPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW41
1KPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW42
1LPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW39
1LEFTPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW51
1LH_SHIFTPCM_Mounting_Keyboard_Stabilizer:Stabilizer_Cherry_MX_2.00uKB65
1LH_SHIFTPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_2.25uSW65
1MPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW45
1MINUSPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW31
1NPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW44
1NINEPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW30
1NP_DOTPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW73
1NP_EIGHTPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW60
1NP_ENTERPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW70
1NP_FIVEPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW63
1NP_FOURPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW62
1NP_NINEPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW61
1NP_ONEPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW66
1NP_SEVENPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW57
1NP_SIXPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW64
1NP_THREEPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW67
1NP_TWOPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW69
1NP_ZEROPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW72
1OPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW33
1ONEPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW2
1PPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW37
1QPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW5
1RPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW20
1RH_SHIFTPCM_Mounting_Keyboard_Stabilizer:Stabilizer_Cherry_MX_2.00uKB74
1RH_SHIFTPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_2.00uSW74
1RIGHTPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW55
1SPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW14
1SEMI_COLONPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW40
1SEVENPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW29
1SIXPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW18
1SPACEPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_7.00uSW47
1SPACEPCM_Mounting_Keyboard_Stabilizer:Stabilizer_Cherry_MX_7.00uKB47
1TPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW21
1TABPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.75uSW6
1THREEPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW11
1TWOPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW3
1UPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW32
1UPPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW52
1VPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW25
1WPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW13
1XPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW17
1YPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW35
1ZPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW9

The 87 most common of 91 parts.

More from BrettHallen/Amstrad-CPC

12

Similar boards

  • 2 layers237.5 × 102.9 mmAlu, the printed circuit board in 3D

    Alu

    jes/scamp-cpu

    A homebrew 16-bit CPU with a homebrew Unix-like-ish operating system.

    91 parts301Unlicense
  • 2 layers132.5 × 84.8 mmShieldXL M, the printed circuit board in 3D

    ShieldXL M

    okyeron/shieldXL

    A rework/remix of the monome norns shield

    91 parts179GPL-3.0
  • 2 layers100 × 68 mmSI4684 SMD, the printed circuit board in 3D

    SI4684 SMD

    PE5PVB/SI4684-DAB-Receiver

    SI4684 ESP32 DAB Receiver

    91 parts135GPL-3.0
  • 2 layers160 × 99.5 mmSupply Board, the printed circuit board in 3D

    Supply Board

    jherkenhoff/STM

    DIY scanning tunneling microscope (STM)

    91 parts88
  • 2 layers213 × 60 mmVController main board, the printed circuit board in 3D

    VController main board

    sixeight7/VController_v3

    Production model of the VController, VC-mini and VC-touch

    91 parts80
  • 2 layers301.6 × 116.9 mmOpus, the printed circuit board in 3D

    Opus

    cfbender/keyboards

    A collection of all of my keyboard projects

    91 parts64MPL-2.0
  • 2 layers89 × 123.4 mmNsec badge-2025, the printed circuit board in 3D

    Nsec badge-2025

    nsec/nsec-badge

    Software from the NorthSec badge

    91 parts62
  • 2 layers167 × 122.8 mmBoardv3, the printed circuit board in 3D

    Boardv3

    compressionKeyboards/compression4c

    This repo contains the files to order a custom PCB for (4c), checkout the zmk layout to build firmware!

    91 parts60

Questions

How big is the Amstrad CPC664 Keyboard PCB?

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

What parts does the Amstrad CPC664 Keyboard use?

91 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 Amstrad CPC664 Keyboard KiCad files?

From the BrettHallen/Amstrad-CPC repository on GitHub, at the commit this page was made from: the board is Amstrad_CPC_Keyboard/CPC464_CPC664/Amstrad_CPC664_Keyboard.kicad_pcb and its schematic Amstrad_CPC_Keyboard/CPC464_CPC664/Amstrad_CPC664_Keyboard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Amstrad CPC664 Keyboard design in my own project?

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