KiCAD 101: How To's and Best Practices

KiCAD 101: How To's and Best Practices

Authors:

  • @Frank Li

  • @Connor Leu

 

image-20250106-210913.png
image-20250106-210939.png
Schematic
image-20250106-211118.png
Layout
image-20250106-211543.png
3-D Viewer

 

image-20250106-210939.png
Schematic
image-20250106-211118.png
Layout
image-20250106-211543.png
3-D Viewer

 

The following guide contains comprehensive information on how to navigate and use the KiCAD software, along with best practices for designing printed circuit boards (PCBs). Its purpose is to serve as a valuable reference for anyone involved in PCB design using KiCAD, whether they are new team members just starting out or experienced engineers looking for additional guidance.

The intent is for this guide to assist Longhorn Racing members in streamlining and improving their PCB design processes. Furthermore, it is designed to evolve over time, with the expectation that future members will contribute updates and additions as needed to keep it relevant and helpful.

The following guide is not meant to teach absolutely everything regarding KiCAD and PCB design, only more niche or easily-forgettable topics.

This guide would not have been possible without the incredible support and mentorship of various individuals. The knowledge and insights shared here have been shaped by the expertise and contributions of many talented engineers, and their assistance is deeply appreciated. Their guidance has been instrumental in the creation of this resource. Enjoy!

Table of Contents:

Introduction:

What is KiCAD?

KiCad is a software used for designing printed circuit boards (PCBs). PCB design software helps engineers create electronic circuits by allowing them to create electrical circuits, layout physical components, and prepare files for manufacturing.

Reference the above three images:

Schematic: Used to create a diagram showing the electrical connections between components, serving as the blueprint for the circuit design.

Layout: Used for physical arrangement of components and routing of electrical connections on the PCB, preparing it for manufacturing.

3-D Viewer: What the board will look like after manufacturing.

Organization of this document:

This document will be broken into two main components: How To’s and Best Practices.

How To’s: This section will include tutorials on navigating KiCad’s user interface, focusing on key features, commonly overlooked processes (serving as a handy reminder), and other useful tips to streamline your workflow. As LHR progresses, this section may become outdated if teams switch to other Electronic Design Automation (EDA) tools such as Altium or EasyEDA.

Best Practices: This section will highlight the best design practices for creating a PCB, addressing common issues that have been previously resolved through peer reviews, extensive testing, and experience. The principles shared here are applicable across all PCB design software, and the goal is to enhance design efficiency and reduce the time spent in peer review.

Important Terminology:

For new members, don't worry too much about the terminology on your first pass through this document. Instead, use this table as a reference when you encounter unfamiliar terms later on.

Term:

Definition:

Term:

Definition:

“cap(s)”

Capacitor(s)

SMD

surface-mount device. Any component that attaches electrically to the circuit board on only one size through exposed electrical pads.

“plane”

Large pours of copper “planes” in PCBs provide convenient and electrically beneficial flat “planes” for your signal / voltage / ground.

CLI

command-line interface (i.e., a program run and interacted with through your terminal)

“package size”

A standard to describe the sizing of SMD components. See this chart for more.

crystal

Crystal oscillators are commonly used for precise clock sources for devices to use (either directly or as a reference clock). They are finely tuned in a lab environment.

 

 

 

 

 

 

Prerequisites:

Links

Description

Links

Description

Electrical Onboarding Page

  • The page outlines basic setup guides for various resources to be used by electrical members of LHR (for the sake of this document, please just follow the following three links to download the latest version of KiCad and setup version control through GitHub).

Github SSH key

  • The page provides a step-by-step guide to generating a new SSH key for secure authentication with GitHub. SSH (Secure Shell) is a protocol that allows secure communication between a client and a server, often used for accessing and managing remote systems and repositories.

Latest KiCAD

  • The page contains the download link to the latest version of KiCAD.

Git bash

  • The page contains the download link for Git Bash. Git Bash is a tool for Windows that lets you use Git commands in a command-line environment.

Starter project link: GitHub - lhr-solar/StarterProjects: Starter projects for each subsystem

Confluence doc: PCB Starter Project - Fan Boardarchived

  • The page contains a starter project for new members of LHR Solar’s electrical division. Not all of the information in this document will be important to the starter project, but it is recommended that new members look over this document first before starting.

How To’s:

How to Setup a Symbol Library:

Symbol libraries are what you interact with to place “symbols” on the electrical schematic for your PCB. In KiCad, this is any item that pops up when you tap the “A” key or “Add Symbol” UI element.

Symbol libraries group together types of symbols (for example, if I search “STM32” in the Symbol Editor or Add Symbol window):

image-20250916-021430.png

LHRS has made several symbol libraries for some of the more commonly used elements across our PCBs. Making a symbol library is easy.

From the main KiCad menu, open the Symbol Editor.

image-20250916-021526.png

In The Symbol Editor, hit File > New Library. Choose “Project”.

image-20250916-021602.png

Save the new Symbol library under whatever name you’d like. Now, your new symbol library will be visible in the “Libraries” window pane. To add symbols, simply hit Ctrl+N or your platform’s equivalent. A customization window will pop up. Name your symbol appropriately and tick whatever settings you’d like.

image-20250916-021754.png

We now have a simple geometric editor UI to design the symbol:

image-20250916-021821.png

Draw whatever you want your symbol to look like, and add electrical pins with the 2nd tool on the right-side of your screen. Make sure to pay attention to the Pin Name and Pin Number!

How to Setup a Footprint Library:

Footprint libraries are almost identical to the Symbol Library. This time, you’re linking schematic symbols to physical footprints!

image-20250916-022044.png
For example, this resistor.

We can now draw the physical footprint of the component we are looking at. If you are making a new part, double check the (usually) final pages of a part’s datasheet (they almost always have mechanical drawings). Then double check it again. Then bother somebody else to double check it FOR you. (It’s a lot easier to get the right footprint made the first time). It’s helpful to mark PIN1 on devices if they are complicated (a microcontroller or other IC, for example)

How to Update Board Layout after Schematic Change:

Luckily, KiCad makes this easy. In the PCB Editor, hit this button:

image-20250916-022336.png
image-20250916-022403.png

How to use Hierarchical Schematics:

What is Git and GitHub?

Git is an open-source version control system to manage software projects. Coincidentally, we use it for KiCad as well.

GitHub is the officially standard platform / website / remote repository for Git. It provides a CLI interface for Git, as well as the popular Github Desktop GUI app for your machine.

How to use GitHub Version Control:

We encourage members to get used to the Git CLI. It is widely used in industry, and certain actions in Git are impossible to do via the Github Desktop app.

How to Generate Gerbers:

Gerbers are important as they are the standard format for manufacturers to consume so they can actually develop the PCB.

In KiCad, hit File > Fabrication Outputs > Gerbers.

image-20250916-022512.png

There’s a lot of settings here, but for the most part the defaults are okay. Make sure all your copper layers are selected if you’ve added multiple layers.

Check with your manufacturer to make sure which settings they need set to what values. For example, JLCPCB and PCBWay both have FAQ pages about which settings should be enabled.

Then, hit “Plot”, let it complete, and then hit “Generate Drill Files”. Your Gerbers will end up in the folder you specified in the above window and can be submitted for manufacturing

Best Practices:

Bypass + Decoupling Capacitor Placement:

TLDR: Place bypass + decoupling capacitors (typically small-value capacitors connected in parallel with a IC’s power supply) as close as possible to the IC during board layout. Additionally, place the smallest-value capacitors closer if there are multiple.

What are bypass + decoupling capacitors, and why are they used?

Bypass + decoupling capacitors are interchangeable terms. More specifically, bypass capacitors filter out noise by providing a low-impedance path to ground for high-frequency signals in a circuit, while decoupling capacitors are more focused on filtering out larger voltage fluctuations.

image-20250114-023733.png
Placed in parallel to load’s power and GND

These capacitor values are often 1μF and 0.1μF depending on different noise frequency. As you have (or will have) learnt from Intro to Electrical Engineering (ECE 302) and Circuit Theory (ECE 411), the phasor representation for a capacitor’s impedance is the following:

image-20250201-201937.png

As you can see, as ω (frequency) increases, the impedance of the capacitor decreases. This allows certain frequencies to travel down an low-impedance path, thus filtering out any high-frequency noise that may be present.

Why should they be placed close to ICs?

Since the leads and traces connecting the capacitor to the IC are copper, they introduce inductive impedance. The longer a copper trace is, the more inductance is present. By placing the capacitor close to the IC, the loop area is minimized, reducing the inductance and allowing the capacitor to respond more effectively to rapid changes in current demand.

To build off this idea, smaller-value capacitors should be placed closer for similar reasons. As frequencies increase, we need also need smaller impedances for the noise to travel through. As a result, the capacitors meant to filter out higher frequencies (smaller-valued capacitors) need to be closer to minimize inductive impedance.

In general, the smaller the capacitance (and usually package size), the closer to the source pin it should be placed. A 470nF 0201 capacitor, for example, should be as close as possible to its source; comparatively, a 100uF 0603 capacitor (say, a “bulk” decoupling capacitor) can be generously placed near its source.

Trace Placement and Width:

There are a couple rules of thumb for traces in general.

We recommend making a few default values for track widths in your board settings on KiCad (for example, I always make entries for 0.1, 0.2, 0.3, 0.5mm trace widths).

Any trace routing power (such as a voltage line) should be decently thicker than your small traces. Especially so if the trace is routing significant current. KiCad has a Current/Track width calculator under its tools, where you can modify the Current or Track settings and the corresponding values will be computed for you:

image-20250916-022847.png
(So, a trace to carry ~0.75A should be at least 0.2mm wide)

Signal lines (a UART TX/RX pair, SPI control lines, etc) are typically smaller. There isn’t a point for them to be very large, as they are not carrying significant current in them. These tracks are typically 0.1-0.2mm in width.

If you are routing any signals that are required to be a differential pair, look under the “Route” tab on the KiCad menu bar. There’s an option for differential pairs, which will attempt to route the two signals with as similar a length as possible to ensure the signal delay is as similar as possible.

Vias:

KiCad has the same tool above for vias. If you are making a complicated board with high power traces or a very small space for fanout (if you need smaller vias for routing space), you should consult the tool as well as the PCB manufacturer to make sure you don’t go below their minimums.

In general, the default via size that KiCad starts you off with is usually fine for almost everything.

Crystal oscillators:

Crystal oscillators are used frequently for clock sources. They are very important for power on and normal operation of ICs like microcontrollers. One thing to note about crystal oscillators is they are tuned in a lab environment, under a specific capacitance load. Many oscillators require certain load capacitors in parallel with the crystal. These load capacitors are required to make the inverting input of the crystal see a 180 degree phase shift (to invert the signal).

DP83T510E-Crystal-20250916-024639.svg

A good rule of thumb for the load capacitor values is this formula:

Crystal oscillators in layout must be placed as close as possible to the corresponding pins on the device, and should have NO signals or copper planes going underneath it. This can be enforced by creating a “keep out area” zone in KiCad.