

Zx cherry keyboard
A set of printed circuit boards created by me.
- Size
- 285 × 116 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 101
- Nets
- 37
- Pads
- 460
- Tracks, vias
- 1,315, 97
- Pours
- 126
- Routed
- Yes
- KiCad
- KiCad 6 (file 20211014)
- Created
- 27 Mar 2025
- Updated
- 18 Sep 2025
Overview
Zx cherry keyboard is an open-source printed circuit board by z00m128, from the z00m128/pcb-resources repository on GitHub. It is a 2-layer board of 285 × 116 mm with 101 parts on 37 nets, routed with 1,315 tracks and 97 vias.
It is built around the BAT54C and BAT54A. Its parts include 58 switches, 17 resistors, 15 diodes, 5 ICs and 2 capacitors. It belongs with the keyboards and input boards of this library.
Main components
2README
README.mdMy PCB library
Here is the set of printed circuit boards created by me over a time. I used mostly KiCad (PCBs created from scratch) or Sprint-Layout 6.0 (PCBs recreated from scans or photos).
ZX Spectrum 128k replica
Recreated PCB of ZX Spectrum 128k. I felt sorry for the Toastrack owner who contacted me with a repair request and who fell victim to eBay fraud, so I decided to make a replica.

ZX Cherry Keyboard
Another iteration of a mechanical keyboard for the ZX Spectrum. This time my own, designed for one of my projects, but it is compatible with +2/+3 case.

Didaktik M'92
A clone of the ZX Spectrum computer manufactured by the Slovak company Didaktik v.d. in the early 1990s. The recreated PCB has been verified and is functional.

Didaktik Kompakt, revision 2.3
A clone of the ZX Spectrum computer manufactured by the Slovak company Didaktik v.d. in the early 1990s. This clone is actually a Didaktik M with a built-in D80 disk system running the MDOS operating system. The recreated PCB has been verified and is functional.

Melodik 2, revisions 1.0, 1.1 and 2.0
Melodik was an audio interface for the ZX Spectrum and compatibles, manufactured by Didaktik v.d. during the 1990s. It was of poor quality, suffered from several ailments and broke down. These were my 3 attempts to recreate it so that the result fit into the original box. The revisions differ only minimally and are a consequence of KiCad not being able to properly open projects created in its older versions. All have a fixed oscillator error, removed collision with D40 / D80 / Kompakt floppy controllers. The latest revision 2.0 is not tested but should be functional. It has an added filter in the LM386 power supply.

KeyFace
A PS/2 keyboard interface for ZX Spectrum, internal and external versions. Both were developed by MDV in late 90's for Kompakt Servis company. Both PCBs are verified and working.

Lamac CPM
A board used to modify a ZX Spectrum computer to expand memory (80k-256k) for use with CP/M. It was common modification in former Czechoslovakia, well documented in local electronics magazine. This PCB was not vertified yet.

PMD ColorAce
Hardware modification for PMD85 computer. It extends its capabilities and allows to display 7 different colors on the black background. This is my own iteration of PCB. It was not verified yet.

PMD KeyFace
PS/2 keyboard interface for PMD85 computer. This is my own iteration of PCB. It was not verified yet.

Kicad libraries
Set of libraries for KiCad 6.0 and newer that you may need if you want to edit some of my projects.
GAL20V8, GAL22V10, AY-3-8912, AY-3-8910, ZX Spectrum expansion connector.
NOTICE
The production of these printed circuit boards for profit is strictly prohibited. See license.
Disclaimer
All PCBs posted here are just my hobby projects and not professional designs. They may contain errors, glitches, or other unforeseen problems. Some of them have been tested quite extensively, but I make no warranties as to functionality or fitness for a particular purpose. If you connect any of these products to any of your equipment, you do so entirely at your own risk and I am not responsible for any damages.
Parts
101| Qty | Value | Footprint | References |
|---|---|---|---|
| 17 | 100k | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R1, R2, R3, R4, R5, R6, R7, R8, R10, R11, R12, R13, R14, R15, R16, R17 +1 |
| 11 | BAT54C | Package_TO_SOT_SMD:SOT-23 | D1, D2, D7, D8, D9, D10, D11, D12, D13, D14, D15 |
| 5 | 4066 | Package_SO:SO-14_5.3x10.2mm_P1.27mm | U1, U2, U3, U4, U5 |
| 4 | BAT54A | Package_TO_SOT_SMD:SOT-23 | D3, D4, D5, D6 |
| 2 | 10uF | Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolder | C1, C2 |
| 2 | LOGO | cc-by-nc-sa:cc-by-nc-sa | G01, G02 |
| 2 | SS | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW39, SW42 |
| 1 | 0 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW10 |
| 1 | 1 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW1 |
| 1 | 2 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW2 |
| 1 | 3 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW3 |
| 1 | 4 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW4 |
| 1 | 5 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW5 |
| 1 | 6 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW6 |
| 1 | 7 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW7 |
| 1 | 8 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW8 |
| 1 | 9 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW9 |
| 1 | A | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW21 |
| 1 | A8 - A15 | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Horizontal | J2 |
| 1 | B | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW36 |
| 1 | BREAK | Button_Switch_Keyboard:SW_Cherry_MX_1.25u_PCB | SW46 |
| 1 | C | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW34 |
| 1 | CAPSLOCK | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW49 |
| 1 | COMMA | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW56 |
| 1 | CS | Button_Switch_Keyboard:SW_Cherry_MX_1.75u_PCB | SW31 |
| 1 | CS | Button_Switch_Keyboard:SW_Cherry_MX_1.50u_PCB | SW41 |
| 1 | D | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW23 |
| 1 | DELETE | Button_Switch_Keyboard:SW_Cherry_MX_1.25u_PCB | SW45 |
| 1 | DOT | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW55 |
| 1 | DOWN | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW53 |
| 1 | E | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW13 |
| 1 | EDIT | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW43 |
| 1 | ENTER | Button_Switch_Keyboard:SW_Cherry_MX_1.75u_PCB | SW30 |
| 1 | EXTEND | Button_Switch_Keyboard:SW_Cherry_MX_1.50u_PCB | SW54 |
| 1 | F | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW24 |
| 1 | G | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW25 |
| 1 | GRAPH | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW44 |
| 1 | H | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW26 |
| 1 | I | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW18 |
| 1 | INVVIDEO | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW48 |
| 1 | J | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW27 |
| 1 | K | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW28 |
| 1 | KB0 - KB4 | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Horizontal | J1 |
| 1 | L | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW29 |
| 1 | LEFT | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW50 |
| 1 | M | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW38 |
| 1 | N | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW37 |
| 1 | O | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW19 |
| 1 | P | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW20 |
| 1 | Q | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW11 |
| 1 | QUOT | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW58 |
| 1 | R | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW14 |
| 1 | RIGHT | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW51 |
| 1 | S | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW22 |
| 1 | SEMICOLON | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW57 |
| 1 | SPACE | Button_Switch_Keyboard:SW_Cherry_MX_6.25u_PCB | SW40 |
| 1 | T | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW15 |
| 1 | TRUEVIDEO | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW47 |
| 1 | U | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW17 |
| 1 | UP | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW52 |
| 1 | V | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW35 |
| 1 | W | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW12 |
| 1 | X | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW33 |
| 1 | Y | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW16 |
| 1 | Z | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW32 |
More from z00m128/pcb-resources
6- 2 layers82.6 × 85.5 mm

- 2 layers66.7 × 60.3 mm

- 2 layers78.1 × 85.1 mm

- 2 layers74 × 85.2 mm

- 2 layers58.2 × 45.2 mm

- 2 layers54.7 × 43.7 mm

Similar boards
- 4 layers158 × 95 mm

FHNW Pro4E FS19T8-3DPrinterBoard STM32
mnemocron/FHNW-Pro4E-FS19T8-3DPrinterBoard-STM32
Marlin 2.0 compatible 3D printer board based on STM32F103 (KiCad)
264 parts17GPL-3.0 - 4 layers252 × 152 mm

CTA control board
PySpice-org/eda-rw
Python library to read/write KiCad and LibrePCB Sexpr file format
619 parts9 - 2 layers80 × 60 mm

- 2 layers209 × 139.5 mm

PEH PCB
jodhsinghnahal/piezo_matlab
Simulation, circuit and PCB design repository for investigating piezoelectric energy harvesting (PEH) interfaces under conventional vibration excitation and underwater acoustic excitation.
27 parts - 4 layers80 × 111 mm

- 4 layers101.6 × 76.2 mm

- 4 layers67 × 98 mm

SJ-201-R6
MycroftAI/hardware-mycroft-mark-II
Mycroft's Mark II Rpi mechanical, electrical and industrial designs
235 parts113 - 2 layers129.2 × 50 mm

Questions
How big is the Zx cherry keyboard PCB?
It measures 285 × 116 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Zx cherry keyboard use?
101 parts, built around the BAT54C and BAT54A. 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 Zx cherry keyboard KiCad files?
From the z00m128/pcb-resources repository on GitHub, at the commit this page was made from: the board is ZX-Cherry-KB/KiCad/zx-cherry-keyboard/zx-cherry-keyboard.kicad_pcb and its schematic Melodik2/v2.0/source/Melodik2.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Zx cherry keyboard design in my own project?
Its repository states no licence, so its author keeps all rights: ask z00m128 before reusing the design.