Skip to the content
PCBKitNew board
2 layers100 × 137.4 mmKp25tk, the printed circuit board in 3D

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.md

hwdev: 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, Test will update renders only if you are commiting to the main branch. On dev branches, if you want to see/test renders, just use the render script directly. Ensure you bring commits to main and run Test there before pushing them and test them on main.
  • 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 the kicad-version file 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_sch and .kicad_pcb files, renders PDF and Gerber versions of these to a render/ dir at the same level as the directory containing the sch/pcb files. Run bin/render -h for 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 the 0cjs-hwdev KiCad 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-level render script 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.com link with the bin/ghdl-url program. 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
QtyValueFootprintReferences
271N5819Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +11
25KeycapButton_Switch_Keyboard_Keycap:SW_Cherry_MX_Keycap_1.00uSWKC0, SWKC1, SWKC2, SWKC10, SWKC11, SWKC12, SWKC13, SWKC14, SWKC15, SWKC16, SWKC17, SWKC18, SWKC19, SWKC20, SWKC21, SWKC22 +9
6, , , , ,
310KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R2, R3
322µFCapacitor_THT:CP_Radial_D5.0mm_P2.00mmC1, C2, C3
21K5Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR4, R5
1.1µFCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC4
110µFCapacitor_THT:CP_Radial_D5.0mm_P2.00mmC5
122KResistor_THT:R_Array_SIP9RN1
174HLS14Package_DIP:DIP-14_W7.62mmU1
1Column OutConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ5
1Config HeaderConnector_PinHeader_2.54mm:PinHeader_2x13_P2.54mm_VerticalJ2
1Host ConnectorConnector_PinHeader_2.54mm:PinHeader_2x13_P2.54mm_VerticalJ1
1KEY00Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW0
1KEY01Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW1
1KEY02Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW2
1KEY03Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW3
1KEY04Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW4
1KEY05Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW5
1KEY06Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW6
1KEY07Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW7
1KEY08Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW8
1KEY09Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW9
1KEY0AButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW10
1KEY0BButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW11
1KEY0CButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW12
1KEY0DButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW13
1KEY0EButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW14
1KEY0FButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW15
1KEY10Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW16
1KEY11Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW17
1KEY12Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW18
1KEY13Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW19
1KEY14Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW20
1KEY15Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW21
1KEY16Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW22
1KEY17Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW23
1NMIButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW24
1NMI OutConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ6
1PWRLED_THT:LED_D3.0mmD4
1Power InConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ3
1RESETButton_Switch_THT:SW_PUSH-12mmSW25
1Reset OutConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ7
1Row Select InConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ4
1SWITCHButton_Switch_THT_Extras:SW_MINI-SPDT-SWSW27
1SWLEDLED_THT:LED_D3.0mmD5
1SwitchConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ8

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 mmRomext-2364, the printed circuit board in 3D

    Romext-2364

    0cjs/hwdev

    Hardware and related projects

    6 parts2

Similar boards

  • 2 layers247.9 × 104.5 mmReviung, the printed circuit board in 3D

    Reviung

    gtips/reviung

    The REVIUNG41 is 41-key column staggered keyboard.

    107 parts517MIT
  • 2 layers50.5 × 128.5 mmOpenThereminV45, the printed circuit board in 3D

    OpenThereminV45

    GaudiLabs/OpenThereminV4

    Open Source Theremin Instrument

    107 parts249GPL-3.0
  • 2 layers157.5 × 116 mmSequencer, the printed circuit board in 3D

    Sequencer

    zueblin/Polaron

    A DIY drum machine for the teensy microcontroller (hardware / software)

    107 parts226
  • 2 layers260.6 × 134.4 mmBatreeq, the printed circuit board in 3D

    Batreeq

    AlaaSaadAbdo/battoota

    Keyboards

    107 parts188
  • 2 layers229.8 × 102.6 mmBw2, the printed circuit board in 3D

    Bw2

    hazels-garage/bad-wings

    Bad Wings

    107 parts107CC-BY-SA-4.0
  • 2 layers115.3 × 48.1 mmSadcatz40, the printed circuit board in 3D

    Sadcatz40

    ChrisChrisLoLo/pusheenz40

    A pocket keyboard that uses SMD mouse switches. Low profile and easy to assemble

    107 parts49GPL-3.0
  • 2 layers40 × 24 mmBLDC driver, the printed circuit board in 3D

    BLDC driver

    walmis/BLDC-Servo

    FOC Motor Controller for 57BLF0x NEMA brushless motor

    107 parts43
  • 2 layers29.5 × 108.6 mmMiniDJ Main, the printed circuit board in 3D

    MiniDJ Main

    Thorinair/Avalon-Harmonics

    A collection of Avalon Harmonics branded synthesizer modules.

    107 parts26CC-BY-SA-4.0