W6 | Electronics Design
GROUP ASSIGMENT
- Use the test equipment in your lab to observe the operation of a microcontroller circuit board (as a minimum, you should demonstrate the use of a multimeter and oscilloscope).
- Document your work on the group work page and reflect what you learned on your individual page.
INDIVIDUAL ASSIGNMENT
- Use an EDA tool to design a development board that uses parts from the inventory to interact and communicate with an embedded microcontroller.
Designing My Microcontroller Development Board
BRAIN BOARD đź§
Pre-design Stage
For this week, we had to use an EDA tool to design a PCB that
communicates with a microcontroller.
Jorge and I decided to use this task as an opportunity to design the PCB for the microcontroller that will be
used in my final project.
So...I began by identifying the core functions that my project will perform and then determining the necessary components
that the PCB should have—both inputs and outputs—to make sure the system works as intended.
We started with a fun brainstorming session to decide which inputs
and outputs my main board should include.
It was exciting to imagine how each component would interact as part of my final project. After several ideas, we decided
to include the following components:
- Outputs: Two servo motors (to control the robot'ts arms), one Digital Output (for an external actuator or similar), a Display connected through RX and TX, an Oled Screen using the SDA and SCL pins (as an alternative if the main display isn't available), and one LED as a visual indicator during the testing phase.
- Inputs: One Digital Sensor (such as a PIR or obstacle sensor), and one Push Button for testing.
And before before jumping into the PCB design using the EDA tool, I needed to understand how the microcontroller connects to each part.
This meant checking the function of every pin, identifying which ones provide power (VCC), which ones are for ground (GND), and which pins
can send or receive data. I also verified the voltage levels that each device uses — some components work with 3.3 volts, while others require
5 volts.
In the following image, you can see the result of this planning process, where I mapped out each connection before starting the PCB design.

Connection Mapping
Setup Stage
For the design stage, I used KiCad EDA, an open-source tool widely used for electronic
design. One of its greatest advantages is that it combines schematic capture, PCB layout, and even 3D visualization of the board within the same environment.
It's intuitive, flexible, and completely free, which makes it perfect for learning and professional projects alike. You can download the program from the following
link according to the type of computer you have.
Setting Up the Fab Academy Libraries in KiCad:
Before starting the PCB design, it was necessary to configure the official Fab Academy libraries in KiCad.
These libraries contain all the standardized electronic components used in Fab Labs around the world, ensuring that every PCB we design can be easily reproduced
anywhere.
-
Downloading the libraries:
The first step was to download the folderkicad-masterfrom the official repository: Fab Lab - KiCad Repository. This folder includes everything needed for PCB design in KiCad:
fab.kicad_sym: The symbol library (schematic representations of resistors, microcontrollers, connectors, etc.)fab.pretty: The footprint library (the physical pads and shapes of the components).fab.3dshapesandfab.3dsource: Optional 3D models for visualizing the board in three dimensions.
Then, I saved this folder on my computer, inside a dedicated project directory. -
Adding the Symbol Library
- Next, I opened KiCad and went to
Preference → Manage Symbol Libraries
In that window, I clicked the - Here is the example:
"+"button and added the folowing file:fab.kicad_sym
📝Note: This library allows me to access all Fab Academy standardized symbols directly from the Schematic Editor, making it easier to design circuits.
Adding Symbol Libraries
- Next, I opened KiCad and went to
-
Adding the Footprint Library
- After thar I went to
Preference → Manage Footprint Libraries
and added the following folder - Here is the example:
fab.pretty
📝Note: This step connects each schematic symbol with its corresponding physical footprint, so that KiCad knows exactly how each component will appear and be positioned on the PCB.
Adding Footprint Libraries
- After thar I went to
-
Verifying the configuration
Once both libraries were added, I verified that KiCad correctly listed them in the Global Libraries section. From this point on, I could select and place Fab components both in the schematic and PCB layouts.
DESIGN STAGE
Once the Fab libraries were added, I began creating the schematic in KiCad's Schematic Editor.
The first step was to place all the necessary components for my project — including the microcontroller, connectors
for the servomotors, sensor, display, digital output, OLED, LED, and button.
All these components were taken directly from the Fab library, which I had previously added during the setup stage.
To make the schematic more organized and easier to read, I used Global labels
instead of connecting wires directly between components.
Those symbols allow the same signal name to be shared across different parts of the schematic, which keeps the design cleaner and prevents overlapping lines.
For example, power and ground lines such as
PWR_5V, PWR_3V3, and PWR_GND
were defined once throughout the entire circuit.
📝Note: While creating the schematic, I used several basic tools and symbols available in KiCad. Here are three of the most important ones and their purpose:
- Place Symbols:This icon is used to add symbols from the library to your schematic. In short: It's the tool to insert new components into your design.
- Place Power Symbols: In this icon you can find different voltage options that help define the electrical connections in your schematic.
- Place Global Labels: This icon allow you to name a connection so that it links automatically to other parts of the schematic, even if the wires are not physically drawn together.

Schematic Design:
After adding all the components to the schematic, I began connecting them using power symbols and global labels to organize everything clearly.
Little by little, the circuit started to take shape, and I could see how each part connected to the XIAO ESP32S3. To indicate the power sources,
I used the symbols from the Fab library —such as PWR_3V3, PWR_5V, and PWR_GND— so it would be easy to recognize which components worked at 3.3 V and which ones needed 5V.
Using global labels helped me avoid having too many crossing wires on the screen, keeping the design clean and easy to follow. Once everything was labeled and connected, I reviewed
the schematic to make sure that each pin matched its correct signal and power line. Seeing the complete schematic ready was a very satisfying step before moving on to the PCB design stage.
- Here is the result:

Schematic Design
PCB EDITOR:
After finishing the schematic, I opened the
PCB Editor from KiCad's main menu to start designing the physical board. The first step was to update the PCB from the schematic, using the option
found in the Tools menu. This automatically loaded all the components and their connections onto the board workspace.
Before starting the routing, I configured some important parameters in the
Board Setup menu.
I defined the trace widths, setting 0.4 mm for signal lines and 0.8 mm for the ground traces, since they
need to handle higher current. I also adjusted the design constraints, setting the clearance to 0.4 mm — this is essential to avoid spacing errors and ensure that the dimensions don't exceed the milling
tool's diameter.
- Here the workflow:
- Bring in the schematic: In PCB Editor go to
Tools → Update PCB from Schematic.

- Configure board rules (Board Setup):
-
Pre-defined Sizes: In the Board Setup window, under the Design Rules section, I customized the trace settings for my board.
To do this, I clicked on the
"+"icon to add new trace width options. This allows you to define different sizes depending on the type of signal or power line you're routing.
For this design, I created two custom trace widths:- 0.40 mm for the signal traces (standard connections)
- 0.8 mm for the power traces, since they carry more current
- Constraints: Next, in the Board Setup window, I configured the Design Constraints to define the spacing and manufacturing limits of my PCB.
Under the Design Rules → Constraints section, I set the clearance value, which determines the minimum distance between any two copper elements (such as traces, pads, or vias).
For this design, I defined a clearance of 0.40 mm ensuring that the traces would not be too close to each other — this is
especially important when milling the board, since the tool's
diameter must fit between tracks without removing unwanted material. The other parameters, were left at their default values, as they were suitable for the scale of this design.


-
Pre-defined Sizes: In the Board Setup window, under the Design Rules section, I customized the trace settings for my board.
To do this, I clicked on the
-
Starting the Routing Process:
Once all the design rules were set, I began the routing process — the stage where every electrical connection from the schematic is physically drawn on the PCB. For this design, I used a trace width of 0.4 mm for all routes, keeping the layout simple and consistent. While routing, I made sure to avoid 90-degree angles in the traces. Instead, I used 45-degree corners, which help the current flow more smoothly and reduce electromagnetic interference.
As I started connecting the components, I noticed that some traces were crossing each other, which made the layout look messy and difficult to route properly. To fix this, I began reassigning pin connections and rearranging component positions until I found a cleaner and more efficient layout. It was a bit of trial and error, but seeing how each change improved the board was actually very satisfying.
📝Note: In the end, the routing looked well-organized, with smooth connections and enough spacing to ensure a functional and visually clear design.
- Here is the result:

-
Designing the Board Shape (Edge.Cuts)
For this stage, I wanted my PCB to have a more creative and meaningful shape — not just a simple rectangle. Since this board will hold the microcontroller that represents the “brain” of my little robot, I decided to design it in the shape of a brain.đź§
To start, I measured the approximate size of the board based on the components' arrangement and space needed for connections. Then, I created the 2D outline in CorelDRAW, carefully sketching the curves to give it an organic look while keeping it functional for fabrication. Once the design was ready, I exported it in DXF format, so I could import it directly into KiCad's Edge.Cuts layer.
Once I had my design ready in DXF format, I imported it into KiCad to use it as the outline of my board.
To do this, I followed these steps:- Opened the file through
File → Import → Graphics. - Adjusted the scale and set the default line width to 0.2 mm.
- Most importantly, I made sure to select the correct layer: “Edge.Cuts”, since this layer defines the actual border of the PCB during manufacturing.
- Here is the workflow:
- Here is the result:
📝Note: After importing, I checked that the contour fit properly with the components' layout.

- Opened the file through
- Checking Design Rules:
- In KiCad, I opened the DRC panel from the
Inspect → Design Rules Checker Menu - 3D Viewer — Visualizing the Final Board
- Download or create a STEP (.step) 3D model of the component.
- Place the file inside the
fab.3dshapesfolder. - In the footprint editor, link that STEP file to the corresponding footprint.
- Here is the result:
- This week I completed the design stage of my PCB. In the upcoming weeks, when I move into the fabrication process, I will need the Gerber files, since they are essential for manufacturing the board. These Gerber files for my current design can be downloaded here:
Once the board outline and routing were complete, the next important step was to run the Design Rule Check (DRC). This tool helps detect any electrical or geometric errors that might cause problems during manufacturing — such as unconnected nets, overlapping traces, or components placed too close to the board edges.

With the routing completed and all design rules checked, I opened KiCad's 3D Viewer to see how the board would look in its final form. The 3D Viewer is a powerful tool because it allows you to visualize the PCB with all its components in three dimensions, giving a much more realistic idea of spacing, orientation, and assembly.
When the viewer loads, KiCad automatically replaces each footprint with its corresponding 3D model. Most Fab Academy components already include compatible 3D models, but sometimes a specific part may not be available.
In those cases, it is possible to add your own:
KiCad's 3D Viewer
Final Thought đź’
Designing this PCB in KiCad was a completely new experience for me, and honestly, it felt like a big step forward compared to the way I had approached electronics in the past.
Back in school, I had made a very simple PCB using the classic method: drawing the traces with a permanent marker on a copper board and then dipping it in the etching solution. It was a very
manual process—interesting, but limited.
This time, seeing the entire workflow inside a professional tool changed everything. Planning the schematic, organizing the components, setting the design rules, defining the routing, and even shaping the board like a brain
helped me understand how much thought goes into creating a functional PCB. The 3D viewer also made it exciting to visualize how the final board would look once everything is assembled.
In the end, this process helped me feel more confident and prepared for the next stages of my project. It was challenging at times, but also very rewarding—definitely an experience that pushed my skills forward and made the
project feel even more real.
Files
