

Ketchuboard
A keyboard with custom PBC and case
- Size
- 393.2 × 141.1 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 166
- Nets
- 113
- Pads
- 615
- Tracks, vias
- 612, 57
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 25 Jul 2026
- Updated
- 25 Aug 2026
Overview
Ketchuboard is an open-source printed circuit board by Ketchupism, from the Ketchupism/ketchuboard repository on GitHub. It is a 2-layer board of 393.2 × 141.1 mm with 166 parts on 113 nets, routed with 612 tracks and 57 vias.
Its parts include 83 switches, 79 diodes and 1 IC. It belongs with the keyboards and input boards and the RP2040 boards of this library.
README
README.mdketchuboard
A custom mechanical keyboard designed purely by myself. Divides into the schematics, PCB, CAD, and some additional work. This project's primarily for the learning experience of Kicad and Fusion360. This project was so I could also have a functioning use that will help me with everyday stuff.
Features
- 78 keys, 1 rotary encoder
- 1 rotary encoder switch
- 1 0.91 inch OLED
- 5 degree tilt forward
- 5 pieces of 3d printed the keyboard
Schematics
Schematics was the first thing I started with on this project. Overall, it was mainly just a time-consuming process of making the huge matrix, and tracing together the rotary encoder + switches + OLED to the microcontroller. Some challenges with the schematics are just learning how to attach the OLED to the microcontroller, fixing a small mistake with the rotary encoder, and fixing a small mistake with the tracing that messed up my PCB routing. Overall the schematics was pretty decent and wasn't too annoying to figure out the issues.
PCB
Designing the PCB was next, after I assigned the footprints. When assigning footprints, I made some mistakes that later I would need to fix. First, I previously assigned random switches u sizes that I needed, but I needed to find the correct switches based off the position because of tracing for the PCB. Second, I was stuck understanding why there were no stabilizers below 2u. It took me a few searches and questions in Slack to figure out that anything below 2u do not need stabilizers, and anything 2u or more needed stabilizers. Assigning footprints was not a big thing but it was just something necessary for the PCB.
Next was sorting out and organizing the tracing everything. It was pretty simple and easy, only that it took a while to route everything together. In the end, it was really clean and I really liked the outcome of the PCB. The only big problem that I can't fix is the size. I made the edge.cuts on the left way to large and now that there is a lot of empty space. It made the PCB cost in JLCPCB higher and the print for the case. If I would do this again, I would pay attention to the amount of space I am using.
After finishing with the PCB, all I did next was add in the 3D models. A mistake that costed me time was that the models for matlib library were wrong, so I had to manually fix ~80 models which took a lot of time. I should've just adjusted one switch model, save it as a footprint, then apply the footprint to all the switches. After done with the 3d viewer, I just exported it into gbr files and into a .step file for cadding.
CAD
Designing the CAD for the case was basically the last thing I did for this project. It wasn't too difficult as I just designed a top and bottom case, then made some visual art on the left empty side of the case. I then added rubber feet again and added some more details. This was the longest part of making the keyboad however as I took time to add in keycaps, a top case holder, a new case for the rotary encoder, and an angle tilt for my keyboard.
Extra stuff
The rest of the time I've spent on this keyboard was on researching items for the bom.csv, logging in through the journal, and writing this README.md
Parts
166| Qty | Value | Footprint | References |
|---|---|---|---|
| 79 | 1N4148 | 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 +63 |
| 71 | SW_Push_45deg | PCM_marbastlib-mx:SW_MX_1u | SW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23 +55 |
| 3 | SW_Push_45deg | PCM_marbastlib-mx:SW_MX_1.25u | SW69, SW70, SW71 |
| 2 | LOGO | LOGO | G***, G*** |
| 2 | MX_stab | PCM_marbastlib-mx:STAB_MX_2.25u | S2, S3 |
| 2 | SW_Push_45deg | PCM_marbastlib-mx:SW_MX_1.75u | SW42, SW67 |
| 2 | SW_Push_45deg | PCM_marbastlib-mx:SW_MX_1.5u | SW27, SW40 |
| 1 | ER_OLEDM0.91_1x-I2C | Display:ER_OLEDM0.91_1x-I2C | U1 |
| 1 | MX_stab | PCM_marbastlib-mx:STAB_MX_6.25u | S1 |
| 1 | MX_stab | PCM_marbastlib-mx:STAB_MX_2u | S5 |
| 1 | RaspberryPi_Pico | Module:RaspberryPi_Pico_Common_THT | A1 |
| 1 | RotaryEncoder_Switch | PCM_marbastlib-various:ROT_Alps_EC11E-Switch | SW79 |
Questions
How big is the Ketchuboard PCB?
It measures 393.2 × 141.1 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Ketchuboard use?
166 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 Ketchuboard KiCad files?
From the Ketchupism/ketchuboard repository on GitHub, at the commit this page was made from: the board is PCB files/Ketchuboard.kicad_pcb and its schematic PCB files/Ketchuboard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Ketchuboard design in my own project?
Its repository states no licence, so its author keeps all rights: ask Ketchupism before reusing the design.
Similar boards
- 2 layers99.5 × 83.1 mm

- 2 layers320.5 × 127.5 mm

- 2 layers200 × 100 mm

- 2 layers136.8 × 199.1 mm

St225 20527
schlae/HardDriveInfo
Repair info and schematics for mostly older MFM hard drives
166 parts38 - 2 layers100.8 × 108.6 mm

CVMod8 V2 Main
Thorinair/Avalon-Harmonics
A collection of Avalon Harmonics branded synthesizer modules.
166 parts26CC-BY-SA-4.0 - 2 layers296.5 × 124 mm

5AhG3-18S
doppelhub/Honda_Insight_LiBCM
Replacement BCM for G1 Honda Insight Lithium Conversion
166 parts25CC-BY-SA-4.0 - 2 layers100 × 99.8 mm

Pre Ignition
OpenLogicEFI/Hardware
Hardware is based off an open source project called Speeduino by Josh Stewart.
166 parts19 - 2 layers55.4 × 66 mm
