

Amstrad CPC664 Keyboard
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.mdAmstrad 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.

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.

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)


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.

Laserwarp
Laserwarp was the first game, with Map Rally, that we got with our green screen Amstrad CPC464 so I have fond memories.
![]()
I thought it might be interesting to try out Claude to disassemble and delve into how the game works.
Parts
91| Qty | Value | Footprint | References |
|---|---|---|---|
| 8 | MountingHole | MountingHole:MountingHole_3.2mm_M3 | H1, H2, H3, H4, H5, H6, H7, H8 |
| 1 | /FORWSLASH/ | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW46 |
| 1 | @ | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW34 |
| 1 | A | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW7 |
| 1 | B | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW24 |
| 1 | C | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW16 |
| 1 | CAPS_LOCK | PCM_Mounting_Keyboard_Stabilizer:Stabilizer_Cherry_MX_2.00u | KB8 |
| 1 | CAPS_LOCK | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_2.00u | SW8 |
| 1 | CARAT | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW28 |
| 1 | CLR | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW50 |
| 1 | COLON | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW43 |
| 1 | COMMA | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW48 |
| 1 | COPY | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW54 |
| 1 | CP101_EVEN | Connector_PinHeader_2.54mm:PinHeader_1x09_P2.54mm_Vertical | J2 |
| 1 | CP101_ODD | Connector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_Vertical | J1 |
| 1 | CP102_A | Connector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_Vertical | J3 |
| 1 | CP102_B | Connector_PinHeader_2.54mm:PinHeader_1x09_P2.54mm_Vertical | J4 |
| 1 | CTRL | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW71 |
| 1 | D | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW15 |
| 1 | DEL | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.25u | SW1 |
| 1 | DOT | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW49 |
| 1 | DOWN | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW58 |
| 1 | E | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW12 |
| 1 | EIGHT | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW26 |
| 1 | ENTER | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_ISOEnter | SW56 |
| 1 | ENTER | PCM_Mounting_Keyboard_Stabilizer:Stabilizer_Cherry_MX_2.00u | KB56 |
| 1 | ESC | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW4 |
| 1 | F | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW23 |
| 1 | FIVE | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW19 |
| 1 | FOUR | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW10 |
| 1 | G | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW22 |
| 1 | H | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW38 |
| 1 | I | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW36 |
| 1 | J | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW41 |
| 1 | K | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW42 |
| 1 | L | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW39 |
| 1 | LEFT | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW51 |
| 1 | LH_SHIFT | PCM_Mounting_Keyboard_Stabilizer:Stabilizer_Cherry_MX_2.00u | KB65 |
| 1 | LH_SHIFT | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_2.25u | SW65 |
| 1 | M | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW45 |
| 1 | MINUS | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW31 |
| 1 | N | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW44 |
| 1 | NINE | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW30 |
| 1 | NP_DOT | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW73 |
| 1 | NP_EIGHT | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW60 |
| 1 | NP_ENTER | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW70 |
| 1 | NP_FIVE | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW63 |
| 1 | NP_FOUR | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW62 |
| 1 | NP_NINE | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW61 |
| 1 | NP_ONE | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW66 |
| 1 | NP_SEVEN | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW57 |
| 1 | NP_SIX | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW64 |
| 1 | NP_THREE | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW67 |
| 1 | NP_TWO | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW69 |
| 1 | NP_ZERO | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW72 |
| 1 | O | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW33 |
| 1 | ONE | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW2 |
| 1 | P | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW37 |
| 1 | Q | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW5 |
| 1 | R | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW20 |
| 1 | RH_SHIFT | PCM_Mounting_Keyboard_Stabilizer:Stabilizer_Cherry_MX_2.00u | KB74 |
| 1 | RH_SHIFT | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_2.00u | SW74 |
| 1 | RIGHT | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW55 |
| 1 | S | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW14 |
| 1 | SEMI_COLON | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW40 |
| 1 | SEVEN | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW29 |
| 1 | SIX | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW18 |
| 1 | SPACE | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_7.00u | SW47 |
| 1 | SPACE | PCM_Mounting_Keyboard_Stabilizer:Stabilizer_Cherry_MX_7.00u | KB47 |
| 1 | T | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW21 |
| 1 | TAB | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.75u | SW6 |
| 1 | THREE | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW11 |
| 1 | TWO | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW3 |
| 1 | U | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW32 |
| 1 | UP | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW52 |
| 1 | V | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW25 |
| 1 | W | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW13 |
| 1 | X | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW17 |
| 1 | Y | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW35 |
| 1 | Z | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW9 |
The 87 most common of 91 parts.
More from BrettHallen/Amstrad-CPC
12- 2 layers293 × 99 mm

- 2 layers

- 2 layers185 × 67 mm

- 2 layers95 × 76 mm

- 2 layers78.7 × 106 mm

- 2 layers99.5 × 76 mm

- 2 layers53 × 38 mm

- 2 layers35 × 20 mm

- 2 layers89.9 × 61 mm

- 2 layers42.5 × 55 mm

- 2 layers40.3 × 21.7 mm

- 2 layers70.1 × 30.2 mm

Similar boards
- 2 layers237.5 × 102.9 mm

Alu
jes/scamp-cpu
A homebrew 16-bit CPU with a homebrew Unix-like-ish operating system.
91 parts301Unlicense - 2 layers132.5 × 84.8 mm

- 2 layers100 × 68 mm

- 2 layers160 × 99.5 mm

- 2 layers213 × 60 mm

VController main board
sixeight7/VController_v3
Production model of the VController, VC-mini and VC-touch
91 parts80 - 2 layers301.6 × 116.9 mm

- 2 layers89 × 123.4 mm

- 2 layers167 × 122.8 mm

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.