Week 6: Electronics Design
Goal of the Week
This week’s assignment was to design a pcb(printed circuit board). and perform all necessary checks for fabrication. I decided use the Seeed Studio XIAO ESP32-C3 and design a custom board that includes:
- 2 mini LEDs
- 1 normal LED
- 1 button
- 1 buzzer
- 1 DC motor
- 1 servo motor
Group Assignment
Click to access the group assignment
Step 1: Selecting the ESP32-C3 Symbol
I selected the correct microcontroller symbol from the KiCad libraries. I chose Module_XIAO-ESP32C3
from the fab
library, which matches the Seeed Studio XIAO ESP32-C3 module.

Step 2: Schematic Design
I designed the schematic using the KiCad Schematic Editor. I began by placing the ESP32-C3 module from the fab
library and added the supporting components: two mini LEDs, one normal LED, one tactile button, a buzzer, a servo motor header, and a DC motor header.
Each component was connected to an appropriate GPIO pin of the ESP32-C3. I used PWR_FLAG symbols on both the 3.3V
and GND
lines to avoid power connection errors during ERC.
All non-polarized components were labeled, and I kept wiring clean by using Label (L)
and Net (N)
tools to avoid tangled wires.
Useful Shortcuts in Schematic Editor:
A
– Add a new componentW
– Draw a wire (connect pins)L
– Add a labelR
– Rotate selected itemCtrl + E
– Edit component propertiesShift + Click
– Highlight connected netAlt + G
– Group select multiple elements

Step 3: Electrical Rules Check (ERC)
- ⚠️ Initial warnings about unconnected power pins were resolved by adding power flags.
- ✅ Final result: No remaining warnings or errors.
Step 4: PCB Layout
Once the schematic was complete and error-free, I assigned footprints and switched to the PCB Editor. I started by arranging the components logically — placing the ESP32-C3 in the center and distributing headers, LEDs, and resistors around the board edges for easy access and neat routing.
I used a 0.4 mm track width for signals and added a ground fill zone on the front copper layer (F.Cu) using the zone tool (Shift + Z
). All signal traces were routed manually for better control using the interactive router.
I also added labels for clarity and testability. Components are spaced to avoid soldering issues, and I used the DRC tool frequently during layout to make sure all clearances and trace widths were correct.
Useful Shortcuts in PCB Editor:
Ctrl + Shift + R
– Update PCB from schematicAlt + 3
– 3D View of PCBX
/Y
– Start a horizontal/vertical trackM
– Move selected componentR
– Rotate componentShift + Z
– Add filled zone (for ground planes)Ctrl + H
– Highlight netDelete
– Remove track or zone

Step 5: Design Rules Check (DRC)
- ✅ All tracks met clearance and width requirements.
- ✅ Ground zone filled properly.
- ✅ Result: 0 errors, 0 warnings.
Step 6: Generating Gerber Files
Using the Plot window, I exported the Gerber files needed for PCB manufacturing. I enabled:
- F.Cu, Edge.Cuts
- "Check zone fills before plotting"
- X2 coordinate format

Final Pin Mapping Table
Component | ESP32-C3 Pin | Board Label |
---|---|---|
LED1 (Mini) | GPIO4 | D2 |
LED2 (Mini) | GPIO5 | D3 |
Normal LED | GPIO2 | D0 |
Button | GPIO10 | D10 |
Servo Motor (PWM) | GPIO3 | D1 |
Buzzer (PWM) | GPIO9 | D9 |
DC Motor Speed (PWM) | GPIO6 | D4 |
DC Motor Direction 1 | GPIO7 | D5 |
DC Motor Direction 2 | GPIO8 | D8 |

Download Design Files
Here is the Edge_Cuts
Here is the F_Cu
What I Learned
This week taught me:
- How to use custom microcontroller modules in KiCad
- How to assign pins with a balance of hardware constraints and software usability
- How to route multi-component boards cleanly
- How to validate a design through ERC, DRC, and generate professional-grade Gerber files