Week 6 — Embedded Programming
In Fab Academy, weekly assignments are documented as an evidence-based record of the tools used, decisions made, iterations, and results. This page documents my work for Week 6 — Embedded Programming, focusing on the electronics design workflow using KiCad to create a simple board based on the Seeed Studio XIAO ESP32C3.
The goal of this exercise was to design a small single-layer PCB prepared for copper milling. The board includes one LED with a current limiting resistor, a push button input, and a pull-up resistor connected to the 3.3V supply of the microcontroller.
1. Installing KiCad
The first step was to download KiCad from the official website. KiCad is an open-source electronic design automation (EDA) software used to create schematics and PCB layouts.
After downloading the installer, the software was installed following the default installation wizard.
Once installed, KiCad provides several tools including the schematic editor, PCB editor, footprint editor, and symbol editor.
2. Creating a custom symbol for the XIAO ESP32C3
The XIAO ESP32C3 microcontroller is not included in the default KiCad libraries, so a custom symbol was created. A new personal library was generated and the symbol editor was used to define the pins corresponding to the module.
Each pin was configured with its name, number, electrical type, and orientation to ensure correct schematic behavior.
The final symbol contains fourteen pins arranged in two columns, representing the castellated pads of the XIAO ESP32C3 module.
3. Creating the footprint
After defining the schematic symbol, a custom footprint was created to match the physical layout of the XIAO ESP32C3 module. The footprint was designed with two rows of seven pads to correspond with the castellated pads on the module.
The pads were carefully positioned to maintain the correct spacing and alignment. This ensures that the module can be soldered correctly once the PCB is fabricated.
4. Creating the schematic
A new schematic sheet was created and the custom XIAO ESP32C3 symbol was placed. The circuit includes an LED output and a push button input.
The LED is connected to a GPIO pin through a 1kΩ resistor to limit the current. The push button is connected to another GPIO pin and includes a 10kΩ pull-up resistor to maintain a stable HIGH state when the button is not pressed.
5. PCB configuration and routing
Before routing the board, the design rules were configured to match the constraints of the PCB milling process, including trace width and clearance values.
After importing the schematic into the PCB editor, the components were placed and the traces were routed on a single copper layer to simplify fabrication.
6. 3D verification
Finally, the 3D viewer was used to verify component placement, orientation, and spacing before manufacturing the board.
Manufacturing considerations
The board was designed specifically for a milling workflow. The layout takes into account several constraints required for successful fabrication.
- Single-sided copper board
- No vias
- Trace width compatible with the milling tool
- Short routing paths to minimize milling time
Reflection
This assignment was challenging because it required learning several new tools and concepts simultaneously. Working with KiCad involved understanding the workflow between symbols, footprints, schematics, and PCB layout, which was initially confusing. Creating a custom symbol and footprint for the XIAO ESP32C3 required careful attention to pin configuration and alignment with the physical module.
Another difficulty was understanding the design rules and routing constraints needed for PCB milling, since the board must be designed with fabrication limitations in mind, such as trace width, clearance, and single-layer routing.
Although the process required several iterations and adjustments, it provided a better understanding of how electronic design translates from a schematic concept to a manufacturable PCB. However, I still need to continue experimenting with the software and the design workflow to confidently apply this knowledge to my final project.
In the next stages, I plan to refine my understanding of PCB design, test different component configurations, and integrate these electronic design skills into the development of my project.
Download Files
The design files used in this assignment can be downloaded below.
