PCB Guide Part 1 - Preparations This guide is intended as a direct replacement for the aging Ruiqi Mao's guide . Credits go to that guide for serving as a base for this writeup. If you spot any mistakes, please let me know either through Discord (ai03#2725) or email (ai03.public@gmail.com), and I will fix it to the best of my abilities. ai03's Keyboard PCB Design Guide So you want to design keyboard PCBs, or to make sure that you are doing things correctly. We will build a similar 2x2 macropad in this introduction, but will do so in a more future-proof way compared to the other guides. Step 1. Grab the requirements We will be using KiCad for making the PCB. Download version 5.1.4 from the previous releases folder. Windows:  https://kicad-downloads.s3.cern.ch/index.html?prefix=windows/stable/ Mac: https://kicad-downloads.s3.cern.ch/index.html?prefix=osx/stable/ Why specifically 5.1.4? 5.1.5 has an issue with the router which makes it extremely difficult to edit PCBs. 5.1.6 has an issue with part position output which can cause issues during production. There are various stories about KiCad being counter-intuitive and crashing often. However, most of these stories are a relic of ancient KiCad 4.0 variants, and the program runs very stable and smooth with recent updates. However, just in case, you should always save often and use revision control (see below).  Now comes the download and install process. Grab a cup of coffee, for the KiCad 5.1.4 installer is a whopping 1GB.  Install as you would any other program. Also, this guide will be using Git/GitHub to manage progress. If you are new to this, grab GitHub desktop here: https://desktop.github.com/ Install, then sign in or create an account as necessary. Also, make sure to become familiar with GitHub , as it is very useful for open-source projects. If you already work with git, use whichever implementation you prefer, and replace all mentions of GitHub in this guide with your preferred methods. Finally, if you would like community support in case you get stuck, I recommend that you join the Keyboard Atelier Discord server: https://discord.gg/b7vwhHS It is a designer haven, with references, datasheets, and various design-specific chat channels. Step 2. Repository Preparations First, let's create a git repository for the PCB on GitHub It is always nice to be able to roll things back in case things get out of hand. Also, it is a simple and reliable way of sharing your work to the world. Select File -> New repository, Then create a repository. Some of the important options: Name - The name of the project. For now, use something like keyboard-pcb-tutorial and whatnot. Description - Something so that viewers won't be completely confused as to what the repository is about. Readme - The "front page of the repository" that's displayed when people access it on GitHub. May as well generate a blank one. License - Places limits on what people can do with your project. For example, you can block commercial use, force derivatives to open-source as well, etc. This will create a blank repository to begin work in. Publish the repository, Using whatever settings you prefer. Uncheck "Keep this code private" if you want to have the data public and open-source to begin with. Repository preparations are done. Now, it's time for initializing the KiCad project .