W6 | Electronics Design

GROUP ASSIGMENT

  1. 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).
  2. Document your work on the group work page and reflect what you learned on your individual page.

INDIVIDUAL ASSIGNMENT

  1. 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.

  1. Downloading the libraries:
    The first step was to download the folder kicad-master from 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.3dshapes and fab.3dsource: Optional 3D models for visualizing the board in three dimensions.

    • Then, I saved this folder on my computer, inside a dedicated project directory.
  2. Adding the Symbol Library
    • Next, I opened KiCad and went to Preference → Manage Symbol Libraries
    • In that window, I clicked the "+" 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.

      • Here is the example:

      Adding Symbol Libraries

  3. Adding the Footprint Library
    • After thar I went to Preference → Manage Footprint Libraries
    • and added the following folder 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.

      • Here is the example:

      Adding Footprint Libraries

  4. 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:
    1. Bring in the schematic: In PCB Editor go to Tools → Update PCB from Schematic.

    2. 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.

    3. 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:

    4. 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:

      1. Opened the file through File → Import → Graphics.
      2. Adjusted the scale and set the default line width to 0.2 mm.
      3. 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:
        📝Note: After importing, I checked that the contour fit properly with the components' layout.

        • Here is the result:

    5. Checking Design Rules:
    6. 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.

      • In KiCad, I opened the DRC panel from the Inspect → Design Rules Checker Menu
      📝Note: After running the check, the software automatically highlighted a few small issues — mostly traces that were too close or slightly misaligned pads. I carefully reviewed and corrected each one until the message “No errors found” finally appeared on the screen ✅.

    7. 3D Viewer — Visualizing the Final Board

    8. 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:
      1. Download or create a STEP (.step) 3D model of the component.
      2. Place the file inside the fab.3dshapes folder.
      3. In the footprint editor, link that STEP file to the corresponding footprint.
      📝Note: Once linked, the component will appear correctly in the 3D Viewer as part of your board.
      • Here is the result:

      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

    • 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: