Assignments Final Project About Me Contact
Week 06 Fab Academy 2026 · Lab Rwanda

Electronics
Design

Designing a custom ESP32-S based PCB from scratch — schematic capture, PCB layout, DRC, and fabrication-ready Gerber files using KiCad.

ToolKiCad EDA
MCUESP32-S
Track Width0.8 mm
Status✓ DRC Passed
KiCadESP32-SSchematic CapturePCB LayoutERC / DRCGerber Export3D ViewerCircuit SimulationVoltage Regulation KiCadESP32-SSchematic CapturePCB LayoutERC / DRCGerber Export3D ViewerCircuit SimulationVoltage Regulation
Overview

Introduction

Electronics design is a fundamental skill in embedded systems and digital fabrication, enabling ideas to be transformed into functional hardware. During this week, we studied essential electronic components — resistors, capacitors, diodes, transistors, voltage regulators, microcontrollers, sensors, and actuators — and the electrical principles governing them, including voltage, current, power, and Kirchhoff's laws.

We explored Electronic Design Automation (EDA) tools for schematic capture, PCB layout, simulation, and fabrication. Practical experience was gained using laboratory test equipment: multimeters, regulated power supplies, oscilloscopes, and logic analyzers to observe the behavior of embedded microcontroller systems.

Circuit Fundamentals
Voltage, current, power, Kirchhoff's laws, and how they apply to embedded board design.
🖥️
EDA Tools
Hands-on use of KiCad for schematic capture, PCB layout, and 3D visualization.
🔬
Lab Equipment
Multimeters, oscilloscopes, regulated power supplies, and logic analyzers for real-world verification.
This Week

Assignments

Group Assignment
Use laboratory test equipment to observe the operation of an embedded microcontroller. Measure voltage and digital signals using a regulated power supply, multimeter, and oscilloscope or logic analyzer to understand how microcontrollers operate in real hardware conditions.You can view our group assignment

The group assignment gave us direct exposure to signal behavior at the hardware level — we could visually confirm clock signals, GPIO toggling, and power rail stability under load.

Individual Assignment
Simulate a circuit. Use an EDA tool to design an embedded microcontroller system using parts from the lab inventory. Check design using ERC and DRC. Extra credit: try another workflow, design a case for the board.

For my individual assignment, I designed a custom ESP32-S based board using KiCad — including power regulation, boot control, and multiple communication interfaces.

Software

Tools & Software Used

KiCad was the primary EDA platform — a single, unified open-source software that bundles all the tools needed to go from schematic to fabrication-ready files. Its compatibility with the Fab Academy library made it the ideal choice for this week's work.

KiCad ModulePurposeNotes
Schematic EditorSchematic capture and ERCUsed Fab KiCad library for component symbols
PCB EditorBoard layout, trace routing, DRCTrack width set to 0.8 mm throughout
3D ViewerPCB visualization before fabricationVerified component orientation and placement
Gerber PlotExport fabrication filesGerber + drill files generated
SPICE SimulatorCircuit simulationLED + resistor and voltage regulator validation
Architecture

Board Functional Blocks

The custom ESP32-S board was organized into four functional blocks — each serving a critical role in making the board reliable, programmable, and extensible.

Input Voltage
5V DC
Regulated Output
3.3V
MCU
ESP32-S
Track Width
0.8mm
Interfaces
3types
DRC Status
Pass
⚡ Power Section
5V input with a 3.3V linear regulator to supply clean, stable voltage for the ESP32-S and all connected peripherals.
5V Input3.3V LDO
🔘 Boot & Enable Circuit
EN button for hardware reset and a BOOT button to place the ESP32-S in programming mode — allowing easy firmware flashing without external tools.
EN ResetBOOT ButtonPull-up Resistors
📡 Communication Interfaces
Three standard interfaces exposed via headers: UART (TX/RX) for programming and debugging, SPI (MOSI/MISO/SCK/CS), and I²C (SDA/SCL) for sensors.
UARTSPII²C
🔌 GPIO Headers
Additional GPIO header pins brought out for connecting custom sensors, actuators, LEDs, and other external peripherals to expand the board's functionality.
Digital I/OAnalog InputPWM
Workflow

Step-by-Step Process

The full board design followed a structured workflow — from software setup and library configuration through schematic, layout, verification, and final export.

Step 01
Software Installation: KiCad
Downloaded KiCad from the official website and installed the full suite: Schematic Editor, PCB Editor, Symbol and Footprint Libraries, and the 3D Viewer. Launched KiCad and verified all modules run correctly before beginning.
KiCad 7+Schematic EditorPCB Editor3D Viewer
KiCad Installation
KiCad launched and ready
Step 02
Adding the Fab KiCad Library
Downloaded the Fab KiCad library from the Fab Academy repository. During installation, I opened the Plugins and Content Manager, searched for FABLIB, clicked Install, and applied pending changes.
Fab LibrarySymbol LibraryFootprint Library
Fab KiCad Library search
Searching FABLIB in Plugins and Content Manager
Fab library installed
Fab Academy library successfully installed
Step 03
Schematic Design
Placed all components: ESP32-S, voltage regulators, resistors, BOOT and EN buttons, and GPIO headers. Connected power rails and signal pins, and added net labels for clarity. Ran ERC and resolved all errors before proceeding to layout.
ESP32-SNet LabelsERC Passed
ESP32-S
ESP32-S placed in schematic
Power section
Power regulation — 3.3V input section
Adding components
Adding other components
Communications
Adding communication interfaces
Step 04
Footprint Assignment
Assigned physical footprints to every symbol in the schematic using the Footprint Assignment tool. Cross-referenced each footprint with the lab's physical component inventory to confirm availability. Verified all links were clean before pushing to PCB layout.
SMD FootprintsThrough-HoleFab Inventory
Footprint assignment
Footprint assignment tool
Step 05
PCB Editor & Manual Routing
Switched to the PCB Editor and imported the schematic. Defined the board outline and overall dimensions. Placed the ESP32-S centrally and arranged support components near their related pins. Set global track width to 0.8 mm. Manually routed all signal and power traces, maintaining proper clearances and eliminating all shorts.
0.8mm TracksManual RoutingBoard Outline

Design Rule: All traces were kept at 0.8 mm minimum width to ensure reliable fabrication on the lab's milling machine. Power traces were kept short and direct to minimize resistance and voltage drop.

Description of image
Step 06
Design Rule Check (DRC)
Ran the full DRC suite in KiCad's PCB Editor. Resolved all flagged violations — primarily clearance violations near the header pins and a missing courtyard on one component. After corrections, the board passed all checks with zero errors.
DRCZero ErrorsClearance Check
DRC Pass
DRC completed — 0 errors, 0 warnings
Checking Errors
Step 07
3D View of the PCB
Used KiCad's integrated 3D Viewer to inspect the completed board. Verified correct placement and orientation of all components — particularly the ESP32-S module, voltage regulator, and button positions — before generating fabrication files.
3D RenderVisual Inspection
3D PCB Render
KiCad 3D Viewer — full board visualization
Step 08
Circuit Simulation
Simulated a basic LED with current-limiting resistor to validate resistor value selection, then simulated the voltage regulator circuit to confirm output stability at 3.3V under varying load conditions. Both simulations ran correctly in KiCad's SPICE engine.
SPICE SimulationLED CircuitVoltage Regulator
Circuit Simulation
SPICE simulation — voltage regulator output at 3.3V
Step 09
Exporting Fabrication Files
Generated full Gerber files (copper layers, silkscreen, solder mask, board outline) and an Excellon drill file. Verified the export using an online Gerber viewer before archiving. Files are ready for milling or PCB fabrication.
Gerber FilesDrill FileFabrication Ready
Files exported: ├── board-F_Cu.gbr (Front copper layer) ├── board-B_Cu.gbr (Back copper layer) ├── board-F_SilkS.gbr (Silkscreen) ├── board-Edge_Cuts.gbr (Board outline) └── board-PTH.drl (Drill file)
Takeaways

Conclusion

Through this assignment, I gained hands-on experience in electronics design from the ground up — software installation and library configuration, through schematic creation, PCB layout, simulation, and design rule verification.

Designing a custom ESP32-S board with power regulation, boot control, and multiple communication interfaces deepened my understanding of embedded systems and manufacturable PCB design. Manually routing all traces while respecting clearances built practical intuition for real-world board design constraints.

KiCad EDAESP32-SSchematic CapturePCB RoutingERC / DRCSPICE SimulationGerber Export3D Visualization
← Week 04 · Embedded Programming All Assignments →