A collection of KiCAD templates to help the budding designer start designing their own mechanical keyboards.
This repository contains a collection of KiCAD mechanical keyboard templates using a variety of MCU's. Within each templates are schematics that lay out the basic connection between essential components as well as sub-sheets where the designer can implement their own key matrix and, in some cases, RGB LED underglow implementations. In most cases the KiCAD libraries in use were provided by ai03
git clone https://github.com/CaninoDev/Mechanica_Keyboard_KiCAD_Templates $TEMPLATE_DIRECTORY
where$TEMPLATE_DIRECTORY
is the path to templates by your version of KiCAD. You can view and set the path by starting up KiCAD and going toPreferences --> Configure Path --> KICAD_USER_TEMPLATE_DIR
- Once installed, go to
File --> Start a New Project From Template
and select the desired template from the list.
MCU / Microcontroller ESD Voltage Regulator Decoupling Capacitors Pull Down Resistors
- Keep traces from the connector to the MCU as short as possible.
- Generally, avoid the use of sharp bends when laying down track.
- Power and Ground traces should be wide.
- Place the crystal as close to the MCU as possible.
- Isolate the oscillator as much as possible:
- Separate the ground plane underneath the crystal generally.
- D+ and D- traces should match up in distance as close as possible (so the signals are in sync). Use differential(90Ω) traces.
- Fill Zones: It is not necessary to fill the entire PCB with ground/power plane. It is sufficient to encompass the crystal, USB and MCU footprints in a ground fill.
Please note, some of the following keyboards have schematics that may be incomplete. I try to make note of those keyboards but cannot guarantee that I have caught them all.
(NOTE: The stm32 MCU series are, for the most part, interchangeable with minimal changes. Pay particular attention that the F072 series have a built-clock suitable for USB data transmissions.)
As I am still learning how to design keyboards, there may be some implementations that does not represent best practices or may even be incorrect. In such cases, please make a pull request and I will incorporate the corrections promptly. When creating a new design from template, KiCAD copies over the local libraries but doesn't preserve their respective git. This results in a relatively larger project with the inability to effortlessly update local libraries.
As noted above, there may be some mistakes in implementation or improvements could be made. If you note either, please:
- 🍴 Fork this repo!
- 👯 Make a branch concering the variant that will be modified.
- HACK AWAY🔨🔨🔨
- 🔃 Create a new pull request using <a href="https://github.com/CaninoDev/Mechanica_Keyboard_KiCAD_Templates/compare/" target="_blank">`https://github.com/CaninoDev/Mechanica_Keyboard_KiCAD_Templates/compare/`</a> detailing in the comments whether it is a correction and reference the reasons either by explanation or datasheet reference. If it is an improvement, explain the improvement. This is so that not only I can learn from mistakes but so that others can as well.
The following people have been invaluable in my journey in learning how to design keyboards:
- Worldspawn#9316, Abec13#3342, Comrade. SeungheonOh#4283, and The_Royal • 🍦 GMK Fro.Yo 🍦#3000 at the '40% Keeb' Discord server.
- ai03#2725, PheonixStarr#0371, Xaetral#3486 at the 'ai03 Design Studio' Discord server
KiCAD libraries to aid in the schematics and pcb design
- ai03's MX/Alps Hybrid
- my fork of ai03's MX/Alps Hybrid that includes hotswap variants as well (pull request approval pending).
- ai03's random keyboard parts
- keebio's parts
These resources were immensely helpful
- ai03's wiki
- delapoite's list
- benroe's awesome list
- komar's 'How To Make a Keybaord - The Matrix' blog post
- blakesmith's 'Making my own USB Keyboard From Scratch' post
- Steamvan
These are related resources to mechanical keyboard design
- 3D Hub's guide to CNC Machining
- Keyboard Layout Editor
- Swill's Plate Building Tool
- GeekHack's Making Stuff Together forum
- ElectronicDesign's Make the Most of your USB Functionality
- Crystal Oscillator Design
- Make the Most of Your USB Functionality --
- MIT license
- Copyright 2019 ©