Once I knew how many keys and the features I wanted, it was time to work on the schematic. You can think of a schematic as a logical layout of the components that make up the keyboard. To create the schematic I used KiCAD.
KiCad is an open source software suite for Electronic Design Automation (EDA). The programs handle Schematic Capture, and PCB Layout with Gerber output. The suite runs on Windows, Linux and macOS and is licensed under GNU GPL v3.
The key switches are laid out in rows and columns and use a diode to allow for key rollover (basically how many keys pressed at the same time will be recognized). You can test your keyboards rollover with a site like this.
Using this layout the microcontroller can tell which individual key was pressed by knowing which row and column has a closed connection.