

Kp25tk
Hardware and related projects
- Size
- 100 × 137.4 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 107
- Nets
- 75
- Pads
- 310
- Tracks, vias
- 895, 68
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 30 Jul 2023
- Updated
- 14 Jan 2026
Overview
Kp25tk is an open-source printed circuit board by 0cjs, from the 0cjs/hwdev repository on GitHub. It is a 2-layer board of 100 × 137.4 mm with 107 parts on 75 nets, routed with 895 tracks and 68 vias.
Its parts include 29 diodes, 27 switches, 8 connectors, 5 capacitors and 5 resistors.
README
README.mdhwdev: cjs's Hardware Development Repo
Note for developers: Please run Test before committing. But also:
- In order to avoid a lot of spurious changes on dev branches,
Testwill update renders only if you are commiting to themainbranch. On dev branches, if you want to see/test renders, just use therenderscript directly. Ensure you bring commits tomainand runTestthere before pushing them and test them onmain. - If you see massive changes to renders in all projects when you run
Test, you are probably running a different version of KiCad than normally used with this repo. Check thekicad-versionfile for changes and, if lower, upgrade, or if higher, discuss with the repo owner.
General Files and Directores
Test: Top-level test script.bin/: Support programs and scripts.bin/render: Given paths to.kicad_schand.kicad_pcbfiles, renders PDF and Gerber versions of these to arender/dir at the same level as the directory containing the sch/pcb files. Runbin/render -hfor more details.bin/ghdl-url: Given a path to a file in a repo, return the fully resolved (i.e., not HTTP 302 redirects) GitHub download URL for it. (See the header comments in the file for more detail.)
kicad-version: The version of KiCad used in the commit.kicad-lib: Contains the0cjs-hwdevKiCad symbol library, mainly vintage parts.
Project Directories
drom: Ideas for a diode-ROM board.floppy-head-protector: PCB-only project to build a template to cut out cardboard head travel protectors for 5.25" floppy diskette drives.kp25tk: Configurable 25-key parallel keypad, with additional reset button and slide switch. The primary use is as a hex keypad interface to trainer boards, but it can serve a wide variety of purposes.rc6800: Variant of the RC6502 bus design, which is in turn a variant of the RC2014 bus.romext-2364: A 2764 EPROM in this board outside the system is connected via a cable as a 2364 ROM in a socket in the system.tk85: Projects for the NEC TK-85 trainer board.
Project Files and Subdirectories
Projects generally include the following files and subdirectories:
REAMDE.md: A description of the project.vis/: Original diagrams, photos and other illustrations and visualisations of the project.kicad/: The KiCad design files (.kicad_pro,.kicad_sch, etc.).render/: Renderings from the KiCad design files, including a PDF of the schematic and Gerbers of the board design. These are usually generated via the top-levelrenderscript but may be created manually; see above. (Also see below about viewing board designs.)
Revision Numbers
Project use revisions int the format S-B where S is the schematic
revision and B is the board revision within that scheamtic. Either number
being suffixed with dev indicates that it's a development revision
heading towards that next revision, e.g., 2dev-3 is development towards
revision 2 of the schematic. (Revision 0 is always considered a
development revision towards revision 1.)
The revision number is separately set and updated (in File » Page
Settings…) for the schematic and PCB. If you change the schematic from 2
to 3 you will then manually need to change the PCB to from 2-3 to
3-4dev.
Release versions are tagged in Git with the project name and release,
separated by an underscore, e.g. kp25tk_2-1.
Viewing Board Designs
The $PROJECT/render/$PROJECT-jlcpcb.zip contains a subset of Gerbers
designed for upload to JLCPCB. This file also serves as a way to view the
board design without having to load up KiCad: you can upload this file to
any of several web-based Gerber viewers. These include:
-
PCBWay viewer: Press the '+' button and upload the ZIP. Provides Gerber layers and 2D top and bottom board views. Saves the uploads so you need not upload again if you come back later.
-
JLCPCB viewer: Requires sign-in. Click "Add gerber file" at the middle left of the top page (or at the top of the order page) and then click "Gerber Viewer" at the lower right just below the small renders. provides Gerber layers and both 2D top/bottom 3D board renders.
-
NextPCB viewer: Click "Upload Files" and upload the ZIP. Provides Gerber layer views, error checking, and a PDF report download that includes 2D top/ bottom board views.
-
Tracespace viewer: An open source viewer that can accept URLs to ZIP files of Gerbers. (This has been re-used by several PCB house websites and others.) Unfortunately, it does not follow HTTP 302 redirects, so it doesn't work with "raw download" links from GitHub; you need to convert them to the
githubusercontent.comlink with thebin/ghdl-urlprogram. Also, unfortunately, there seems to be no way to specify the download URL in a query string to have it automatically load the data by clicking on a link.
Viewers confirmed not to work with the ZIP file include the Altium 365
viewer. (These may work by uploading the individual files under the
render/$PROJECT-gerber/ directory.)
Parts
107| Qty | Value | Footprint | References |
|---|---|---|---|
| 27 | 1N5819 | Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal | D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +11 |
| 25 | Keycap | Button_Switch_Keyboard_Keycap:SW_Cherry_MX_Keycap_1.00u | SWKC0, SWKC1, SWKC2, SWKC10, SWKC11, SWKC12, SWKC13, SWKC14, SWKC15, SWKC16, SWKC17, SWKC18, SWKC19, SWKC20, SWKC21, SWKC22 +9 |
| 6 | , , , , , | ||
| 3 | 10K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R1, R2, R3 |
| 3 | 22µF | Capacitor_THT:CP_Radial_D5.0mm_P2.00mm | C1, C2, C3 |
| 2 | 1K5 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R4, R5 |
| 1 | .1µF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mm | C4 |
| 1 | 10µF | Capacitor_THT:CP_Radial_D5.0mm_P2.00mm | C5 |
| 1 | 22K | Resistor_THT:R_Array_SIP9 | RN1 |
| 1 | 74HLS14 | Package_DIP:DIP-14_W7.62mm | U1 |
| 1 | Column Out | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J5 |
| 1 | Config Header | Connector_PinHeader_2.54mm:PinHeader_2x13_P2.54mm_Vertical | J2 |
| 1 | Host Connector | Connector_PinHeader_2.54mm:PinHeader_2x13_P2.54mm_Vertical | J1 |
| 1 | KEY00 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW0 |
| 1 | KEY01 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW1 |
| 1 | KEY02 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW2 |
| 1 | KEY03 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW3 |
| 1 | KEY04 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW4 |
| 1 | KEY05 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW5 |
| 1 | KEY06 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW6 |
| 1 | KEY07 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW7 |
| 1 | KEY08 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW8 |
| 1 | KEY09 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW9 |
| 1 | KEY0A | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW10 |
| 1 | KEY0B | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW11 |
| 1 | KEY0C | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW12 |
| 1 | KEY0D | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW13 |
| 1 | KEY0E | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW14 |
| 1 | KEY0F | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW15 |
| 1 | KEY10 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW16 |
| 1 | KEY11 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW17 |
| 1 | KEY12 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW18 |
| 1 | KEY13 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW19 |
| 1 | KEY14 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW20 |
| 1 | KEY15 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW21 |
| 1 | KEY16 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW22 |
| 1 | KEY17 | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW23 |
| 1 | NMI | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW24 |
| 1 | NMI Out | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J6 |
| 1 | PWR | LED_THT:LED_D3.0mm | D4 |
| 1 | Power In | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J3 |
| 1 | RESET | Button_Switch_THT:SW_PUSH-12mm | SW25 |
| 1 | Reset Out | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J7 |
| 1 | Row Select In | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J4 |
| 1 | SWITCH | Button_Switch_THT_Extras:SW_MINI-SPDT-SW | SW27 |
| 1 | SWLED | LED_THT:LED_D3.0mm | D5 |
| 1 | Switch | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J8 |
Questions
How big is the Kp25tk PCB?
It measures 100 × 137.4 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Kp25tk use?
107 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 Kp25tk KiCad files?
From the 0cjs/hwdev repository on GitHub, at the commit this page was made from: the board is kp25tk/kicad/kp25tk.kicad_pcb and its schematic kp25tk/kicad/kp25tk.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Kp25tk design in my own project?
Its repository states no licence, so its author keeps all rights: ask 0cjs before reusing the design.
More from 0cjs/hwdev
1- 2 layers54.6 × 58.4 mm

Similar boards
- 2 layers247.9 × 104.5 mm

- 2 layers50.5 × 128.5 mm

- 2 layers157.5 × 116 mm

Sequencer
zueblin/Polaron
A DIY drum machine for the teensy microcontroller (hardware / software)
107 parts226 - 2 layers260.6 × 134.4 mm

- 2 layers229.8 × 102.6 mm

- 2 layers115.3 × 48.1 mm

Sadcatz40
ChrisChrisLoLo/pusheenz40
A pocket keyboard that uses SMD mouse switches. Low profile and easy to assemble
107 parts49GPL-3.0 - 2 layers40 × 24 mm

- 2 layers29.5 × 108.6 mm

MiniDJ Main
Thorinair/Avalon-Harmonics
A collection of Avalon Harmonics branded synthesizer modules.
107 parts26CC-BY-SA-4.0