MechanicalKeyboardKiCADTemplates
MechanicalKeyboardKiCADTemplates copied to clipboard
KiCAD Templates to design a mechanical keyboard with multiple MCU's included.
Mechanical Keyboard KiCAD Templates
A collection of KiCAD templates to help the budding designer start designing their own mechanical keyboards.
Table of Contents
- About The Project
- Requirements
- Installation
- Contributing
- License
About The Project
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
Requirements
Installation
-
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.
Notes
Key Terms
MCU / Microcontroller ESD Voltage Regulator Decoupling Capacitors Pull Down Resistors
Design Guidelines
PCB Design
- 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.
Reference Keyboards
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.
atmega32
stm32
(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.)
Disclaimer
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.
Contributing
As noted above, there may be some mistakes in implementation or improvements could be made. If you note either, please:
Step 1
- 🍴 Fork this repo!
Step 2
- 👯 Make a branch concering the variant that will be modified.
Step 3
- HACK AWAY🔨🔨🔨
Step 4
- 🔃 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.
Thanks
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 --
License
- MIT license
- Copyright 2019 ©