Week 06 — Electronics Design

Documentation

This week I focused on learning a complete electronics design workflow for a small embedded board. I first tried several EDA tools, then chose EasyEDA for this assignment, built a schematic around the XIAO ESP32-C3 form factor, added a button and LED as input/output components, checked the fabrication rules, and exported the final board for production.

Group Assignment

Individual Assignment

Trying Different EDA Tools

I started by installing KiCad and the Fab library plug-ins. The installation itself was straightforward, but the environment felt unfamiliar and I could not move quickly yet.

KiCad installation screenshot KiCad Fab library installation
Figure. KiCad installation and Fab library setup.
KiCad plug-in setup KiCad environment after setup
Figure. KiCad was installed correctly, but the workflow still felt unfamiliar.

I also installed Autodesk Eagle, but the result was similar. I understood that I would need much more time to be comfortable in that interface.

Autodesk Eagle download page Autodesk Eagle interface
Figure. Eagle installation and first look at the interface.

After a workshop with classmates, I switched to EasyEDA. For a first electronics design assignment, the online workflow felt much easier to understand. I also looked at LCEDA and existing Fab Academy examples to understand what kind of board I wanted to make.

Reference board example from Fab Academy
Figure. Reference board research
LCEDA interface EasyEDA interface
Figure. Comparison of LCEDA and EasyEDA.

EasyEDA

On EasyEDA interface, we can also observe different projects using this icon OSHWLAB. This is a project from other users, and it's worth scrolling and exploring something interesting.

EasyEDA related links and libraries

When creating a new project, we can see two files: schematic and PCB. These two files are created together and they will reflect changes from each other. Usually, first we need to edit the schematic, and then we can adjust the PCB. For adding new electronic components in a schematic, we can press this electronic chip icon, and then we can find the library of components and select what we need.

EasyEDA project structure with schematic and PCB EasyEDA component library search
Figure. EasyEDA project structure starts from the schematic and then leads to the PCB.

Board Concept: A Universal XIAO Carrier

My idea was to design a PCB that can hold different XIAO boards with the same form factor. The exact chip can be different, but the footprint is similar, so a small carrier board with headers, an LED, and a button can be reused for several boards.

I used Adrian Torres's Fab XIAO project and the official XIAO ESP32-C3 documentation as references. I compared the board pinout, the schematic representation, and the real physical layout to understand how the pins should be mapped.

Fab XIAO reference project Seeed XIAO pinout reference
Figure. Researching the XIAO family

First, in electronic design, we can start from placing the actual microcontroller, in our case it is ESP32 XIAO C3. We can search for this electronic component using the brand name, the ship name, or company name because it's unique, such as "seeed".

Searching XIAO components in EasyEDA

Also, for one chip, we can see different examples of the electronic components' placement and with different links or providers who made it. Different links can contain different packages for this specific component. Also, I heard that the Chinese version of EasyEDA contains more electronic components, so when on the schematic it can look the same, when we can generate a PCB or 3D view, some features can be mixed. It's always good to compare the pins from the layout with the official documentation to count the number and to see the order.

Selecting the correct XIAO part in EasyEDA XIAO ESP32-C3 schematic in EasyEDA
Figure. Comparing the EasyEDA symbol with the official XIAO documentation.
XIAO documentation comparison XIAO documentation link
Figure. Documentation and design references used for the universal XIAO carrier concept.

The naming of the pins happens in a counterclockwise direction, usually from the top left corner in the schematic. The real picture can be not the same as it looks, because some pins can be behind the board. It also can be demonstrated in a 2D schematic view, as in our case we see it, XIAO ESP32 C3.

Comparing schematic and physical pin positions Pin counting direction around the board
Figure. The schematic view and the physical board view are different, so careful pin mapping is important.

Building the Schematic First

A PCB in EasyEDA starts from the schematic. I first placed the XIAO C3 component, then generated the PCB from it and continued editing only through the schematic whenever I needed to change the logical connections.

Generate PCB from schematic button Update schematic to PCB dialogue
Figure. The PCB is generated from the schematic

When PCB view is generated, we also can generate 2D and 3D view of the board. There are icons 2D and 3D for generating the graphics based on PCB.

2D PCB preview in EasyEDA 3D PCB preview in EasyEDA
Figure. EasyEDA can immediately show both 2D and 3D views of the generated board.

The next step - to add pin headers. Because I wanted to support the XIAO footprint, I needed a one-row, seven-pin header with 2.54 mm pitch. This standard pitch is a common electronics connector size.

Pin header category in EasyEDA Selecting a 1x7 header
Figure. Choosing the right header count and 2.54 mm package.

By pressing Add company and icon, we also can use a filter and choose "Connectors" - "Pin headers" section In the EasyEDA library, we can find different types of headers. In this case, we need a one-row, seven-pin header with 2.54 mm pitch. This standard pitch is a common electronics connector size.

Choosing 2.54 millimeter package
2.54 millimeter pitch explanation Rotating and flipping components
Figure. Component orientation and basic schematic wiring tools.

After placing a component, we can rotate it, Flip it, move it, and position on our canvas as we need for our base design.


Wire tool in EasyEDA

I tested two connection methods. The first was drawing wires manually. By pressing the icon with lines between two squares from the menu. Also, it's possible to move the whole pin header component and touch the pins from the shower component, then move it back, and all touched pins will be connected. he better method was using unified net names, because the schematic stays cleaner and the logic is easier to understand. In the EasyEDA, we can name the nets by pressing the net name icon and then typing the name.

Connecting pins by touch in the schematic Unified net naming in EasyEDA Naming nets to match the documentation
Figure. Wiring by hand works, but named nets are cleaner and easier to manage.

After finishing connection and naming the pins, we can generate the PCB view again. Then it will be a dialog that says a new connection was found, and would we like to apply changes. After applying changes, the connection will be established, and we can see it on the PCB and 3D view.

Importing schematic changes into PCB 3D PCB view after updates
Figure. After changing the schematic, the PCB can be updated and checked again in 3D.

Matching the Footprints

When I first generated the board, the header positions did not match the actual XIAO board location. I had to compare the footprints against the official documentation and then move or modify the footprint so the board would align with the real hardware.

Header placement not matching the XIAO board yet Footprint menu in EasyEDA
Figure. The first PCB placement did not align with the real XIAO footprint.

For best practice, we can find the official footprint from documentation and use it to place the microcontroller on the PCB board. For the current case, it was a bit complicated to find the right footprint for Xiao ESP32-C3, so I just moved it manually.

Footprint details in the documentation Modified footprint based on documentation
Figure. I used the documentation as the reference to correct the board footprint.

Adding an LED and Button

To satisfy the input/output requirement, I added an LED and a pushbutton. For the LED I also added a resistor as a current-limiting resistor. I used 1206 SMD components, because they are large enough to handle more comfortably during a first board design and later soldering.

Adding LED component in EasyEDA Selecting 1206 package 1206 chip resistor selection
Figure. Adding the LED and choosing a 1206 resistor package.

It's useful to check more details about the existing schematic from Fab-Xiao and also to understand how the button actually works for better connection.

Reference schematic with LED and resistor Pushbutton article reference
Figure. I checked reference schematics for both LED and button connections.

The button connection needed more attention, because it can easily create a wrong or unstable circuit if it is wired carelessly. I followed the reference logic and kept in mind that the XIAO board works at 3.3 V, so the external circuit should also stay within that limit.

Button circuit logic and resistor placement Pushbutton selection in EasyEDA 3.3 volt reminder for the circuit
Figure. Button logic, component choice, and the reminder to stay within 3.3 V limits.
Final PCB layout sketch in EasyEDA
Figure. Final PCB layout before moving to the milling rules and fabrication checks.

Design Rules for Milling

Single-sided SMD board approach
Figure. Example of the milling rules PPT

After the functional schematic was ready, I shifted to fabrication constraints. For PCB milling I needed to think about the two exported files, the board material, the milling bit diameter, and the minimum spacing between pads and traces. For future export, we will need Outline cut PNG file and traces PNG file. Outline cut PNG file will be used for the board outline, and traces PNG file will be used for the copper traces. Later on, we will use tool path generation software for PCB milling. For this case, we are about to use two end mills: 1. 1/32 in. bit for outline cut 2. 1/64 in. bit for traces and pads It will be two jobs for the CNC machine, and we will need to change end mills.

Two exported files for PCB production Traces and outline file explanation
Figure. The board needs separate logic for copper traces and the outline cut.
FR1 and FR4 board material note Opening design rules in EasyEDA
Figure. Material choice and the design-rule setup stage.

Before exporting in metadata, we need to check design rules, and it's possible from the easy EDA environment. Based on the milling constraints, I used 0.4 mm as a safe value for spacing and treated that as the minimum practical clearance for this beginner board. I also reviewed stroke width and track settings so the board would be easier to fabricate. Because it's my first experience and due to the time issue, I will just add a 0.4 constraint for each possible dimension.

Setting 0.4 millimeter spacing in design rules Applying 0.4 millimeter values across the rule set Track width settings in design rules
Figure. I used conservative values and set the main rules to 0.4 mm.

For drawing board outline, it's better to keep visible only two layers because it's a simple board: only traces and only outline. Also, for the board outline, it's possible to use: Rectangle shape, Circle shape, Polygon shape For a cool design, it's possible to export DXF format with some custom design.

Top, bottom, and board outline layers Drawing the board outline
Figure. Preparing the layer set and drawing the board outline.

Routing the Board

While routing, I kept the traces as far apart as possible and avoided sharp 90 degree corners. I changed the working width to 0.4 mm and used autorouting as a starting point, then reviewed the result manually to make sure the paths were still reasonable.

Changing track width to 0.254 millimeter Routing advice about spacing and 45 degree turns Autorouting setup in EasyEDA
Figure. Trace width, routing rules, and autorouting configuration.
First autorouting result Adjusted routing result Checking soldering clearance and short circuit risk
Figure. Reviewing the routed board and checking the clearances for soldering.

DRC, Export, and Final Board

Once the board looked complete, I ran design rule checks and then exported the fabrication data. EasyEDA reported two errors, but these were related to the LED setup and not to the overall board layout. The production output is a Gerber package that can be sent to a PCB manufacturer directly.

Export menu in EasyEDA Design rule check in EasyEDA Export options for fabrication DRC result showing two LED-related issues
Figure. Export and DRC checking before production.

For future milling, we need to export a gerber file, and then we can use it for generating PNGs and toolpaths.

Gerber export output
Figure. Preparing the Gerber output and checking manufacturing options.

It's possible to order the board already milled on FR4, but for this case, I would like to do it by myself on the future classes. I will order another board from the board house. For this case, it's just needed to upload the Gerber file, select the amount of boards and other options, and then pay. And after several days, the board will arrive at my home.

Manufacturing quotation window
Figure. Fabrication options and production cost preview.

My final schematic, PCB view, 2D and 3D design

Final board schematic view Final 2D PCB layout Final 3D PCB view
Figure. Final schematic, 2D PCB layout, and 3D board preview.
Final board design overview
Figure. Final electronics design result for Week 06.

Reflection

The main thing I learned this week is that electronics design is not only about drawing a board shape. The real workflow starts from the schematic, then moves through footprints, placement, routing, fabrication rules, and final export. I also learned that documentation and official pinout references are essential, especially when the schematic symbol and the physical board layout do not look the same.

KiCad and Eagle are still worth learning, but for this first pass EasyEDA helped me understand the sequence more quickly. The most important practical lessons for me were using named nets, checking footprint dimensions against documentation, staying conservative with clearances, and always running DRC before export.

Files

Download the fabrication output for this board here: