

Kbd cherry
Elwro 800 Junior replica
- Size
- 398.1 × 116 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 87
- Nets
- 20
- Pads
- 422
- Tracks, vias
- 808, 45
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 7 Apr 2025
- Updated
- 24 Sep 2025
Overview
Kbd cherry is an open-source printed circuit board by codepainters, from the codepainters/e800j repository on GitHub. It is a 2-layer board of 398.1 × 116 mm with 87 parts on 20 nets, routed with 808 tracks and 45 vias.
Its parts include 76 switches and 1 diode.
README
e800j_rev_c/README.mdElwro 800 Junior replica - mainboard
This part of the project is the exact clone of the original Elwro 800 Junior PCB revision C. The PCB was reverse engineered from scanned images of the original PCB. All dimensions and mounting holes placements have been preserved, so the board can be used as a replacement for the original one.

Note: Read this README file carefully, it contains some important assembly instructions!
Files
This directory contains the KiCAD 9 project, plus:
- Schematics in PDF format - color and b&w
- Gerber files (JLCPCB-compatible zip files)
- Interactive BOM (you need to download the file and open it locally)
- scans of the original PCB used for reverse engineering
For files to be programmed into EPROMs, see here.
Note: KiCAD PCB file still embeds the scanned images used for reverse engineering, so don't be surprised by the file size! The project passes PCB vs schematic parity check.
Conventions
Schematics:
- For (hopefully) better readability, original schematic diagram has been split into separate blocks (total of 14 schematic sheets, mostly A4-size, with the exception of address decoder, DRAM, memory controller and video parts, which exceeded A4 size). I believe it's easier to analyze the schematic drawn in this manner. The PCB passes validation against schematic diagrams, so it can be assumed that the schematics are correct.
- In the top-level schematic sheet I decided to only draw some wires / buses between blocks. Global signals (like
MEMR, orIOR) are only connected using labels, as the wires would clutter the drawing too much otherwise. - Original schematics use somewhat unusual notation for signal names - prefixed with
+or-sign for active-high (e.g.+RELOK) and active-low (e.g.-MEMR) signals, respectively. My schematic diagrams use standard notation with active-low signals with a bar above the name. - Most of the signal names correspond directly to the original Elwro schematics, however some new signal names were added (mostly because of the cross-sheet connections). To differentiate them, upper-case names are used for signals from the original documentation, and lower-case is used for signal names introduced by me.
- Original schematic uses "topological" reference designators for integrated circuits - the PCB is divided into numbered columns and rows marked with letters, and chip reference designators denote the chip placement, e.g.
J16,I5, etc. I decided to use standardU1, U2, ...numbering, but original reference designators are stored asOrigRefattribute (also visible in the PCB editor inUser.Commentslayer). - Original design uses 2%
E48series resistors for no good reason (most likely because of availability), my replica uses standard 5%E24series resistors. Original values are stored in the schematic asOrigValueattributes. - Some IC types differ between Elwro documentation and the actual PCB used for reference. In such cases actual IC types as used on the board (e.g. Russian ones) are stored under
OrigTypeattribute for cross-reference.
PCB:
- some connections on the board are made with pieces of wire (on top or bottom side of the PCB, the boards I used for reference has all these connections made on the top side, but I've seen original boards with wire connections made on the bottom side as well, I've chosen the bottom side for my build). In order to make the board pass schematic parity checks I have drawn these connections on
In1.CuandIn2.Culayers (typically used for 4-layer PCB projects). - to make assembling easier the points that have to be connected are annotated with numbers on the bottom silkscreen layer, see the assembly instructions below.
- the original PCB contains some factory mods that involve cutting the traces. I decided to make the gaps on the PCB so no trace cutting is necessary (it is of course necessary to assemble other parts of the mods, see the assembly instructions).
Assembling
PCB variants
There are two variants of the Gerber files available:
-
e800j_rev_c_v1.1.zip - a "modern" one, with tented vias and silkscreen (on both sides of the board!) - most likely what you want. The board manufactured from this set of files looks like this:

-
e800j_rev_c_v1.1_retro.zip - a "retro" variant, without via tenting and silkscreen, which aims to look as much like the original PCB as possible (which might be useful for restoration projects):

Unless you specifically need the retro variant, I highly recommend the standard one, with tented vias and silkscreen - it makes assembly much easier.
Part selection
Most of the parts used on the board are standard TTL 74xx chips, with some exceptions:
74S474512x8 PROM memories, used in the I/O and memory address decoders, are hard to find and difficult to program. As part of the project, I've prepared two replacement options:-
e800j_addr_dec_gal - using
GAL16V8PLD -
e800j_addr_dec_atf - using
ATF1502ASL(if you prefer SMD chips)
-
Both options have been verified to work properly.
-
The
2716EPROM (U11on the schematics, used to generate video signal timing) can be replaced with a2732memory (with the content doubled, see roms for the appropriate file). -
Some chips required replacement:
U1- I had to replace a perfectly valid74LS04with another brand, as it didn't want to oscillate, eventually I got it working with aUCY74LS04from Cemi. Similarly, I had to replace theU4chip (74LS04) withUCY74LS04as well. These chips work in specific, semi-analog circuits, so the choice of actual chips might be important.- Initially, the computer was very picky about DRAM chips, only working properly with a few chips from my collection. As it turned out, replacing
U28..U31(perfectly valid Motorola74LS153address multiplexers) withSN74LS153Nfrom Texas Instruments solved the issue, and virtually every 4164 DRAM chip I could find works properly now.
-
for
GT1connector (used to plug-in floppy disk controller), you can use original Eltra 841 84-pin socket, if available. This is the recommended way if you want to use the original FDC (or a clone with an Eltra plug). Otherwise simple pin-header sockets will do (and pin headers work with Eltra 841 too. My future expansion PCBs are going to use pin headers):
-
for keyboard connectors (
W1andW2) one can use standard pin headers (10-pins long) - it works well with Eltra plugs.
PCB mods
I decided to fully replicate the original factory mods, to better match the look and feel of the PCB.
Changes involve:
- Clock section - soldering
C83(120pF) andR118(510 ohm) - Memory controller - soldering
R119(100 ohm)
The soldering points are marked with small dots on the silkscreen layer:

Wire connections
Finally, 11 wire connections are needed on the bottom of the PCB. Soldering points are numbered - connect 1 to 1, 2 to 2 and so on.

Bring-up
If assembled from functional parts, the board requires no tuning and should work from the first power-up.
- for initial bring-up it's best to use monochrome composite video output (pad
J51). If you can't get properly synchronized video, double-checkU19(2716EPROM responsible for generating video timing signals). Some programmers (including my TL866A) are known to be occasionally problematic with 2716 memories, what sometimes helps is programming the memory twice (without erasing). U1andU4chips might need replacement (see parts section above), in case of issues it's best to check the clock signals with an oscilloscope.- if you observe random instabilities or persistent artifacts on the screen, replace
U28..U31(again, see above for explanation).
That's all, folks!
Parts
87| Qty | Value | Footprint | References |
|---|---|---|---|
| 8 | MountingHole_3.2mm_M3_DIN965 | MountingHole:MountingHole_3.2mm_M3_DIN965 | MH1, MH2, MH3, MH4, MH5, MH6, MH7, MH8 |
| 2 | ALT | cherry:SW_Cherry_MX_1.00u_PCB | SW6, SW71 |
| 2 | Conn_01x10_Socket | Connector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_Vertical | G1, G2 |
| 1 | ,< | cherry:SW_Cherry_MX_1.00u_PCB | SW36 |
| 1 | -= | cherry:SW_Cherry_MX_1.00u_PCB | SW44 |
| 1 | .> | cherry:SW_Cherry_MX_1.00u_PCB | SW37 |
| 1 | /? | cherry:SW_Cherry_MX_1.00u_PCB | SW30 |
| 1 | 0- | cherry:SW_Cherry_MX_1.00u_PCB | SW28 |
| 1 | 1! | cherry:SW_Cherry_MX_1.00u_PCB | SW35 |
| 1 | 2" | cherry:SW_Cherry_MX_1.00u_PCB | SW34 |
| 1 | 3# | cherry:SW_Cherry_MX_1.00u_PCB | SW33 |
| 1 | 4$ | cherry:SW_Cherry_MX_1.00u_PCB | SW32 |
| 1 | 5% | cherry:SW_Cherry_MX_1.00u_PCB | SW31 |
| 1 | 6& | cherry:SW_Cherry_MX_1.00u_PCB | SW24 |
| 1 | 7' | cherry:SW_Cherry_MX_1.00u_PCB | SW25 |
| 1 | 8( | cherry:SW_Cherry_MX_1.00u_PCB | SW26 |
| 1 | 9) | cherry:SW_Cherry_MX_1.00u_PCB | SW27 |
| 1 | :* | cherry:SW_Cherry_MX_1.00u_PCB | SW51 |
| 1 | ;+ | cherry:SW_Cherry_MX_1.00u_PCB | SW50 |
| 1 | @\ | cherry:SW_Cherry_MX_1.00u_PCB | SW29 |
| 1 | A | cherry:SW_Cherry_MX_1.00u_PCB | SW49 |
| 1 | B | cherry:SW_Cherry_MX_1.00u_PCB | SW3 |
| 1 | BS | cherry:SW_Cherry_MX_1.00u_PCB | SW15 |
| 1 | C | cherry:SW_Cherry_MX_1.00u_PCB | SW53 |
| 1 | CR | cherry:SW_Cherry_MX_1.50u_PCB | SW14 |
| 1 | CTRL | cherry:SW_Cherry_MX_1.00u_PCB | SW2 |
| 1 | D | cherry:SW_Cherry_MX_1.00u_PCB | SW47 |
| 1 | DEL | cherry:SW_Cherry_MX_1.00u_PCB | SW23 |
| 1 | DIR | cherry:SW_Cherry_MX_1.00u_PCB | SW70 |
| 1 | DOS | cherry:SW_Cherry_MX_1.00u_PCB | SW73 |
| 1 | E | cherry:SW_Cherry_MX_1.00u_PCB | SW40 |
| 1 | ERA | cherry:SW_Cherry_MX_1.00u_PCB | SW74 |
| 1 | ESC | cherry:SW_Cherry_MX_1.00u_PCB | SW16 |
| 1 | F | cherry:SW_Cherry_MX_1.00u_PCB | SW46 |
| 1 | G | cherry:SW_Cherry_MX_1.00u_PCB | SW45 |
| 1 | H | cherry:SW_Cherry_MX_1.00u_PCB | SW10 |
| 1 | I | cherry:SW_Cherry_MX_1.00u_PCB | SW19 |
| 1 | J | cherry:SW_Cherry_MX_1.00u_PCB | SW11 |
| 1 | K | cherry:SW_Cherry_MX_1.00u_PCB | SW12 |
| 1 | L | cherry:SW_Cherry_MX_1.00u_PCB | SW13 |
| 1 | LED | LED_THT:LED_D5.0mm | D1 |
| 1 | LOAD | cherry:SW_Cherry_MX_1.00u_PCB | SW72 |
| 1 | M | cherry:SW_Cherry_MX_1.00u_PCB | SW5 |
| 1 | N | cherry:SW_Cherry_MX_1.00u_PCB | SW4 |
| 1 | O | cherry:SW_Cherry_MX_1.00u_PCB | SW20 |
| 1 | P | cherry:SW_Cherry_MX_1.00u_PCB | SW21 |
| 1 | Q | cherry:SW_Cherry_MX_1.00u_PCB | SW42 |
| 1 | R | cherry:SW_Cherry_MX_1.00u_PCB | SW39 |
| 1 | S | cherry:SW_Cherry_MX_1.00u_PCB | SW48 |
| 1 | SAVE | cherry:SW_Cherry_MX_1.00u_PCB | SW75 |
| 1 | SHIFT | cherry:SW_Cherry_MX_1.00u_PCB | SW56 |
| 1 | SHIFT | cherry:SW_Cherry_MX_1.50u_PCB | SW76 |
| 1 | SH_LOCK | cherry:SW_Cherry_MX_1.00u_PCB | SW8 |
| 1 | SPACE | cherry:SW_Cherry_MX_6.25u_PCB | SW7 |
| 1 | T | cherry:SW_Cherry_MX_1.00u_PCB | SW38 |
| 1 | TAB | cherry:SW_Cherry_MX_1.00u_PCB | SW9 |
| 1 | U | cherry:SW_Cherry_MX_1.00u_PCB | SW18 |
| 1 | V | cherry:SW_Cherry_MX_1.00u_PCB | SW52 |
| 1 | W | cherry:SW_Cherry_MX_1.00u_PCB | SW41 |
| 1 | X | cherry:SW_Cherry_MX_1.00u_PCB | SW54 |
| 1 | Y | cherry:SW_Cherry_MX_1.00u_PCB | SW17 |
| 1 | Z | cherry:SW_Cherry_MX_1.00u_PCB | SW55 |
| 1 | [{ | cherry:SW_Cherry_MX_1.00u_PCB | SW43 |
| 1 | ]} | cherry:SW_Cherry_MX_1.00u_PCB | SW22 |
| 1 | ^- | cherry:SW_Cherry_MX_1.00u_PCB | SW1 |
| 1 | Ó | cherry:SW_Cherry_MX_1.00u_PCB | SW62 |
| 1 | Ą | cherry:SW_Cherry_MX_1.00u_PCB | SW57 |
| 1 | Ć | cherry:SW_Cherry_MX_1.00u_PCB | SW65 |
| 1 | Ę | cherry:SW_Cherry_MX_1.00u_PCB | SW63 |
| 1 | Ł | cherry:SW_Cherry_MX_1.00u_PCB | SW60 |
| 1 | Ń | cherry:SW_Cherry_MX_1.00u_PCB | SW58 |
| 1 | Ś | cherry:SW_Cherry_MX_1.00u_PCB | SW61 |
| 1 | Ź | cherry:SW_Cherry_MX_1.00u_PCB | SW59 |
| 1 | Ż | cherry:SW_Cherry_MX_1.00u_PCB | SW64 |
| 1 | ← | cherry:SW_Cherry_MX_1.00u_PCB | SW66 |
| 1 | ↑ | cherry:SW_Cherry_MX_2.00u_PCB | SW68 |
| 1 | → | cherry:SW_Cherry_MX_1.00u_PCB | SW67 |
| 1 | ↓ | cherry:SW_Cherry_MX_2.00u_PCB | SW69 |
Questions
How big is the Kbd cherry PCB?
It measures 398.1 × 116 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Kbd cherry use?
87 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 Kbd cherry KiCad files?
From the codepainters/e800j repository on GitHub, at the commit this page was made from: the board is kbd_cherry/kbd_cherry.kicad_pcb and its schematic e800j_rev_c/addr_dec.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Kbd cherry design in my own project?
Its repository states no licence, so its author keeps all rights: ask codepainters before reusing the design.
More from codepainters/e800j
2- 4 layers308 × 225.4 mm

- 2 layers308 × 53.1 mm

Similar boards
- 2 layers175.8 × 184.8 mm

SofleKeyboard
josefadamcik/SofleKeyboard
A split keyboard based on Lily58, Crkbd and Helix keyboards
87 parts2.6k - 2 layers58.2 × 38.1 mm

Usb sniffer
ataradov/usb-sniffer
Low-cost LS/FS/HS USB sniffer with Wireshark interface
87 parts1.3kBSD-3-Clause - 2 layers65 × 56 mm

- 2 layers57 × 111 mm

- 2 layers128.2 × 150.3 mm

- 2 layers88.9 × 80 mm

- 2 layers38.1 × 101.6 mm

- 2 layers68.6 × 53.3 mm

Arduino UNO R4 Minima
sabogalc/KiCad-Arduino-Boards
A collection of Arduino boards recreated from scratch in KiCad. Legacy USB connectors have been replaced with USB-C where applicable.
87 parts95WTFPL