
ESP drone
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

A custom 64-key linear mechanical keyboard.
Keeb is an open-source printed circuit board by a-hungrybookworm, from the a-hungrybookworm/outta-ctrl repository on GitHub. It is a 2-layer board of 346.5 × 117.9 mm with 130 parts on 122 nets, routed with 308 tracks and 0 vias.
Its parts include 67 switches and 62 diodes. It belongs with the keyboards and input boards and the RP2040 boards of this library.
A custom 64-key linear mechanical keyboard designed from scratch - including a custom PCB, case, firmware, and even keycaps.
Initially, I planned the 64-key layout for my keyboard, and decided which components I would use.
I then designed the PCB in KiCAD. I initially figured out which libraries/ footprints to use, connected them to form the keyboard matrix (row-to-col) and finally arranged the components and routed the traces.
Next, I learnt how to 3D model in Onshape, while simultaneously modelling the case. I used a sandwich mount for its simplicity, and split the case into two mutually screwable sections, as it was too big for the bed size. This will help in easy assembly and disassembly.
Finally, I wrote the RMK firmware, which I will flash to my Pi Pico to control the keyboard.
I've been fascinated by understanding how most everyday objects work, and when I saw a HackClub programme offering to teach me how to build one of them, a keyboard, I was thrilled. Finally, I had the opportunity to learn how to design keyboard PCBs, model their cases, write their custom firmware, and deeply understand how these devices function.
While designing the keyboard, I found several tasks challenging, such as
I started this ambitious project with no experience at all, and only a list of tutorials (credit to Keeb). Now, I've learnt so much, including (sequentially) -
Schematic:
Routed PCB:
3D Models:
Top(Case):
Plate:
Base:
Assembly:
(without all keycaps/ stabs)
| SI No. | Name | Notes | Quantity | Price Per Unit | Total | Running Total | Price/Unit(USD) | Total (USD) | Running Total (USD) | Link |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Keygeek x MZ Y1 Keyboard Switch (Pack of 10) | MX-compatible Switches | 7 | 300 | 2100 | 2100 | 3.16 | 22.11 | 22.11 | Switch |
| 2 | PCB (manufactured by Robu) | Manufactured by Robu | 5 | 1062 | 5310 | 7410 | 11.18 | 55.89 | 78 | PCB_Robu |
| 3 | Durock Clear Screw-In Stabilizers V2 | Screw-in stabilisers | 1 | 1650 | 1650 | 9060 | 17.37 | 17.37 | 95.37 | Stabs |
| 4 | Gateron Hotswap Sockets | Hotswap Sockets | 64 | 10 | 640 | 9700 | 0.11 | 6.74 | 102.11 | Hotswap Switches |
| 5 | 1N4148 Diodes | Pack of 100, TH | 1 | 180 | 180 | 9880 | 1.89 | 1.89 | 104 | Diodes |
| 6 | Raspberry Pi Pico | MCU | 1 | 384 | 384 | 10264 | 4.04 | 4.04 | 108.04 | Pico |
| 7 | Heat Set Threaded Round Female Insert Nut | M3, pack of 5 | 2 | 15 | 30 | 10294 | 0.16 | 0.32 | 108.36 | Heat Set Insert |
| 8 | Philips Head Nuts & Bolts Set | M3, pack of 10 | 1 | 25 | 25 | 10319 | 0.26 | 0.26 | 108.62 | Screws |
| 9 | Blank White Cherry Profile Keycaps | For later customization | 1 | 1000 | 1000 | 11319 | 10.53 | 10.53 | 119.15 | Keycaps |
| 10 | 7u Spacebar | Custom key | 1 | 300 | 300 | 11619 | 3.16 | 3.16 | 122.31 | Spacebar |
This project was made possible through open-source hardware and design resources, and continuous support from the mechanical keyboard community. A special thank-you to the Hackclub YSWS Keeb, for inspiring me to take up this project, guiding me along the way, and most importantly, funding this project.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 62 | 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 +46 |
| 62 | SW_Push | PCM_marbastlib-mx:SW_MX_1u | SW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23 +46 |
| 2 | MX_stab | PCM_marbastlib-mx:STAB_MX_2u | S4, S5 |
| 2 | MX_stab | PCM_marbastlib-mx:STAB_MX_2.25u | S1, S3 |
| 1 | MX_stab | PCM_marbastlib-mx:STAB_MX_7u | S2 |
| 1 | RaspberryPi_Pico | Module:RaspberryPi_Pico_Common_Unspecified | A1 |

hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!






sadekbaroudi/euclid36
At the time of creation, using Kicad 5.1.9 - This may not work with future versions

It measures 346.5 × 117.9 mm and has 2 copper layers, 1.6 mm thick.
130 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.
From the a-hungrybookworm/outta-ctrl repository on GitHub, at the commit this page was made from: the board is PCB_Files/Keeb.kicad_pcb and its schematic PCB_Files/Keeb.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask a-hungrybookworm before reusing the design.