week06 | Electronics Design
Overview
This week’s assignment involved testing microcontroller-based electronics in a group activity and designing a PCB individually using KiCad.
Group assignment
In the group assignment, we used mixed signal oscilloscope/logic analyzer to observe microcontroller operation: triggering a servo via PWM, viewing PWM waveforms, controlling NeoPixel LEDs. I learned how PWM duty cycle controls servo movement direction, how serial protocols transmit data bit-by-bit.
Individual assignment
For my individual work, I designed a Printed Circuit Board (PCB), which connects a Seed XIAO microcontroller module to connectors, an LED and a push button, using KiCad.
PCB Design
Before becoming familiar with KiCad, I thought that Altium Designer was the main software for PCB design. However, KiCad is also a powerful tool that provides most of the features needed for PCB design, particularly in educational communities, since it is free and open-source.
After installing KiCad and opening the software, I went to File → New Project and named the project:
First, I installed two practical libraries: KiCad FabLib as mentioned in the lecture and Freerouting:
Then, I opened the Schematic Editor and selected the components for the design:
Next, I added the power and ground symbols:
Some very useful shortcuts in KiCad:
| Shortcut | Explain (most useful actions) | Editor |
|---|---|---|
Ctrl + F1 |
Show full list of current hotkeys | All |
? or Ctrl + F1 |
Quick hotkey help / search | All |
A |
Add symbol / component | Schematic |
P |
Place power symbol / add power port | Schematic |
W |
Start drawing wire | Schematic |
L |
Add label | Schematic |
H |
Add hierarchical label / sheet pin | Schematic |
M |
Move item | Both |
G |
Grab / drag item (keeps connections in many cases) | Both |
R |
Rotate item (90°) | Both |
X or Y |
Mirror item (X = horizontal, Y = vertical) | Both |
E |
Edit item / properties | Both |
V |
Edit value field | Schematic |
F |
Edit footprint (from schematic) or flip footprint | Both |
Del |
Delete selected item(s) | Both |
Ctrl + Z |
Undo | Both |
Ctrl + Y |
Redo | Both |
Space |
Set relative / local origin (very useful for measurements) | Both |
F1 / F2 |
Zoom in / zoom out | Both |
F3 |
Redraw / refresh view | Both |
Home |
Fit board / schematic to screen | Both |
Ctrl + S |
Save | Both |
Ctrl + N |
New project / new file | Project Manager |
T |
Get and move footprint (from library) | PCB |
X |
Start routing new track | PCB |
V |
Add via (during routing) | PCB |
/ |
Switch track posture / bend mode | PCB |
D |
Drag track segment (keep slope) | PCB |
B |
Refill / rebuild all zones (copper pours) | PCB |
PgUp / PgDn |
Next / previous layer | PCB |
+ / - |
Next / previous copper layer (common alternative) | PCB |
Ctrl + Shift + G |
Highlight net (very useful during routing/debug) | PCB |
~ |
Clear net highlighting | Both |
Ctrl + Shift + F |
Find item (search) | Both |
Now I started wiring the schematic. I learned that this can be done in two ways: either by clicking and directly connecting components, or by using the Place Net Labels feature (assigning the same net name to multiple pins):
Before transferring the schematic to the PCB editor, I checked for circuit errors using the Electrical Rules Checker (ERC):
I asked ChatGPT about the errors. The messages belong to a very common category of KiCad ERC complaints related to power pin driving rules. KiCad is quite strict (sometimes even overly strict) about how power nets are declared and driven.
How to fix them? Antti, helped me resolve the issue by placing one or more PWR_FLAG symbols (from the Power library) on the nets that were flagged:
After that, I checked the errors again:
Now it was time to move to the PCB Editor by clicking Open PCB in Board Editor. The first time entering the PCB Editor, I updated the PCB from the schematic by pressing F8:
Next, I rearranged the components to optimize the routing and make the connections more efficient:
Before creating the tracks, I defined the track width as 0.5 mm, and then started routing:
Board Outline (Edge.Cuts)
To create the board outline, in KiCad, the board outline is drawn on the Edge.Cuts layer. This layer define where the PCB board should be cut during fabrication. In the PCB Editor, select the Edge.Cuts layer from the layer list, choose the Draw zone outline from left toolbar and rectangle or line tool from the right toolbar. Start drawing the outline of the board by clicking the corners of the desired shape. Ensure that all edges form a closed shape, because the board outline must be continuous for manufacturing. This outline defines the boundary where components and tracks can be placed.
At this stage, similar to the Schematic Editor, I ran the Design Rules Checker (DRC):
There was one unconnected wire reported in the errors, which I fixed.
The final step was to draw filled zone, to create copper pours, typically for GND. Click on the board, select the layer F.Cu and net (GND), draw the outline, and press 'B' to fill the zone.
In the above image, the red area is the copper zone (GND plane) on the F.Cu layer. The black tracks are the routed copper traces, and The thin rectangular border around the board is the Edge.Cuts outline, which defines the PCB size. All components are placed inside this boundary, ensuring the board can be fabricated correctly.
Final Board (Hero Shots)
And here is the hero shot, 3D view of the board:
A basic dictionary & important
A very basic but practical rules which I learned for PCB designing.
Track (Trace): The thin copper line on the PCB that carries electrical signals between components.
Clearance: The minimum required distance between copper features (tracks, pads, vias) to avoid shorts or manufacturing defects.
Track Width: The thickness of a copper track, which determines how much current it can safely carry.
Solder Mask: The protective colored layer (usually green) covering tracks but leaving pads exposed for soldering.
Via: A plated through-hole that connects copper tracks between different PCB layers.
Minimum Hole (Minimum Drill Size): The smallest allowed drilled hole diameter (for vias or component pins) set by the manufacturer.
Minimum Via: The smallest allowed via size (typically drill + annular ring) that the fabricator can reliably produce.
Angle of Wires (Routing Angle): The bend angle of tracks (commonly 45° for neat routing, or free/90° depending on settings).
Autorouter (Auto Tracking): Software that automatically routes tracks between pads instead of manual drawing (e.g., FreeRouting plugin in KiCad).
Design Rule Check: How to check that all routes are connected. Use to detect unconnected nets and Highlight Net tool to visually confirm connectivity.
Gerber Files: Generating industry-standard files (copper, solder mask, silkscreen, drill) via File → Plot in KiCad for sending to a PCB manufacturer.
Reflection
This assignment gave me a clearer understanding of the PCB design workflow, from creating the schematic to routing the final board layout. Learning how to use KiCad was an important part of the process, and I became familiar with key tools such as ERC and DRC for checking design errors. These checks helped me identify issues in the circuit and understand how software tools ensure that a design is electrically correct before manufacturing.
Another important lesson was realizing how component placement and routing affect the efficiency and clarity of the PCB layout. At first, arranging components and connecting traces was challenging, but with practice and by using shortcuts and design rules, the process became more organized. Overall, this assignment helped me build foundational skills in electronic design and gave me confidence to continue working with PCB development in future projects.















