Skip to content

7. Electronics design

Summary

Group assignment

Multimeter

We used a multimeter from the company UNI-T to measure voltage, current, and resistance. It’s a convenient, compact device with a backlit display, which makes it easy to work in dark or low-light environments.

We first studied what Ohm’s Law is and how resistors work. We used two types of resistors — one in a DIP package and the other in an SMD package.

Then we measured the resistance of each resistor using a multimeter and analyzed how they behave in different types of connections. When resistors are connected in series, their total resistance increases because the current must pass through each resistor sequentially. However, when they are connected in parallel, the total resistance decreases, as the current can flow through multiple paths at once.

We also learned that resistors do not have polarity, meaning there is no positive or negative side — they can be connected in any direction. This makes them one of the most fundamental and versatile components in electronic circuits.

In fact, a resistor is made of a long, thin conductive wire (or a special resistive material) wound inside a protective casing to limit the flow of electric current and control voltage levels. Understanding this principle helped us better grasp how current and voltage behave in real circuits, which is essential for all future electronics design and testing tasks.

After that, we started learning about the voltage divider principle, which is one of the most fundamental concepts in electronics. To explore this, we built a simple voltage divider circuit on a breadboard using 10 kΩ and 1 kΩ resistors. We connected the circuit to a 12 V power supply from the laboratory bench power source and carefully measured the output voltages using a digital multimeter.

We observed that the voltage values were different across each resistor, depending on their resistance values. This experiment clearly demonstrated how voltage is distributed in proportion to the resistor values according to Ohm’s Law.

Through this experiment, we learned that a voltage divider can be used to generate reference voltages, reduce signal levels, and power sensors or modules that require lower operating voltages. It was a very practical and exciting experience because it showed how simple resistor networks can be used to control voltage levels precisely.

Understanding how voltage dividers work will be extremely useful for our future electronics and embedded projects, especially when designing circuits that interface between different components such as microcontrollers, sensors, and analog input pins. It also gave us hands-on experience in circuit analysis, measurement techniques, and safe lab practices when using a power supply and test equipment.

Oscilloscope

After that, we worked with the oscilloscope, which is one of the most essential tools in electronics. Before this exercise, I often faced issues with unstable or noisy signals in my previous projects — electromagnetic interference, voltage fluctuations, and signal distortion — but I couldn’t fully understand the cause because I wasn’t able to see the actual signals. Using the oscilloscope changed that completely. It allowed me to visualize the signals in real time and understand what was really happening inside the circuit.

During this exercise, we connected the oscilloscope and measured two types of signals. The first one was a digital signal, which alternated between HIGH and LOW states, showing a clean square wave on the display. The second was a PWM (Pulse Width Modulation) signal, which is commonly used to simulate analog behavior by changing the pulse width. We first generated an analog-like waveform using PWM and then observed it on the oscilloscope screen, comparing its shape and frequency with the digital signal.

This hands-on experiment helped me clearly see how PWM signals can represent analog voltages and how different frequencies or duty cycles affect the output. It also gave me a deeper understanding of how to analyze, troubleshoot, and stabilize signals in my future embedded projects. For example, if I ever encounter noise or unstable readings again, I now know that I can check the waveform using an oscilloscope and use solutions like adding capacitors for filtering or replacing noisy wires to achieve a smoother signal.

Working with the oscilloscope was an eye-opening experience — it allowed me to “see” electricity for the first time and gain a much deeper intuition about how electronic systems really behave.

Digital signal:

Analog signal

Conclusion

Working with both the multimeter and the oscilloscope was a very valuable experience. Through these experiments, I not only learned how to measure voltage, current, and resistance, but also how to visualize and analyze real signals in a circuit. The multimeter helped me understand the basic electrical parameters, while the oscilloscope allowed me to actually see how signals behave over time — including noise, fluctuations, and PWM waveforms.

This week’s practice gave me a much clearer understanding of how electronic components interact and how important precise measurement is when designing or debugging circuits. Now I feel more confident using laboratory equipment, and I can apply these skills in my future embedded systems and robotics projects to diagnose problems, optimize signal quality, and improve circuit performance.

Individual assignment

KiCad

This week, I started designing my custom PCB board using an EDA tool. It was my first real experience in creating a schematic and laying out the board completely by myself. I’m very happy with this step because it marks the beginning of my journey toward building more advanced embedded systems and professional hardware projects.

Before starting the design, I explored several EDA software options such as Eagle, EasyEDA, Altium Designer, and KiCad. After comparing their features, I decided to use KiCad, since it’s free, open-source, and supports multiple operating systems, including macOS — which is important for me because I work primarily on a Mac.

I installed KiCad 9.0, which includes many useful features for schematic design, component management, PCB layout, and 3D visualization. The interface is intuitive and makes it easy to connect components, define nets, and prepare the board for later fabrication.

This week’s work helped me understand the importance of good design practices — keeping traces short, organizing the schematic clearly, and following design rules to avoid future errors. Even though I didn’t fabricate the board yet, I now have a strong foundation to move on to the next steps: milling, soldering, and testing.

Designing in KiCad was a very exciting and educational experience, and I can already imagine how this skill will help me create more powerful and efficient boards for my future robotics and embedded projects.

Setting up KiCad

Next, I downloaded the Fab Lab’s official component library for KiCad from this repository.

This library contains all the standard components used in Fab Academy projects, which makes it much easier to design boards that can be milled and assembled using the equipment available in the lab.

In my project, I specifically used fab.kicad_sym for schematic symbols and fab.pretty for footprints and fab.3dshapes for 3d model comoponents. These libraries helped me to quickly add accurate component symbols and matching footprints while keeping the design consistent with Fab Lab standards.

This setup step was very important before starting the actual schematic design, ensuring that my board would be compatible with Fab production workflows and ready for fabrication later on.

Add library files

Add symbol file

Add footprint file

Add 3d model file

Designing Schematic

I am going to design a development (debug) board based on the ESP32-WROOM-32U microcontroller. The board will include GPIO pin headers for testing and prototyping different peripherals, as well as a boot and reset circuit to enable easy firmware flashing directly from the computer.

This custom board will serve as a testing platform for my future embedded projects, allowing me to experiment with sensors, actuators, and communication interfaces. By designing it myself, I will better understand the hardware design process, including power routing, pin mapping, and programming mode configuration of the ESP32 module.

Here are the main tools that I used for designing.

1️⃣ Save – saves the current schematic or project to make sure no progress is lost.

2️⃣ Annotate Schematic – automatically assigns reference designators to all components (for example R1, C1, U1), giving each part a unique ID.

3️⃣ Place Symbol – used to add electronic components to the schematic, such as resistors, capacitors, microcontrollers, and other parts.

4️⃣ Place Wire – connects components with lines to create electrical connections between them.

5️⃣ Place Power Port – adds power symbols such as VCC, GND, or +3.3V to indicate the power source in the circuit.

6️⃣ Place Label – adds text or net labels (like SDA, SCL) to name the connections and keep the schematic clean and easy to understand.

Here I started designing my PCB. As shown in the image, I marked the main components with red lines. My first step was to select the microcontroller — I chose the ESP32-WROOM-32U module — and placed it on the workspace in KiCad. This component will be the core of my board, handling all processing, communication, and control tasks. Placing it first helped me organize the schematic layout and plan where the other components (such as power supply, connectors, and sensors) will be connected later.

Next, I added a UART connector to my circuit, as shown in the image where I marked the elements with red labels. The UART connector (J1) will be used for serial communication between the ESP32 microcontroller and the computer or other devices.

I also worked with labels to clearly mark each pin connection — such as VCC, GND, TX, and RX — and link them correctly to the corresponding pins on the microcontroller. Using labels helped keep the schematic clean and well-organized, making it easier to follow the connections without long or overlapping wires.

Here I finished designing my first complete schematic. In the image, each section is marked with red numbers for clarity:

1️⃣ Microcontroller (ESP32-WROOM-32U) – This is the main component of the board. It will handle all processing, communication, and control tasks for the system.

2️⃣ GPIO Pins – These are general-purpose input/output pins. I will use them to connect various external components such as sensors, motors, and other peripherals.

3️⃣ Reset and Enable Buttons (RST and EN) – These buttons are used to put the microcontroller into boot and programming mode. Each button is connected through pull-up resistors to prevent false triggering or unstable signals during operation.

4️⃣ LED Indicator – A simple LED with a current-limiting resistor connected to one of the GPIO pins. It’s used to test the board’s functionality — for example, by making it blink to confirm that the microcontroller and power supply are working correctly.

5️⃣ UART Pins – These pins are used for firmware uploading and serial communication. Through the UART interface, I can program the board, send debugging data, and establish communication between the ESP32 and other devices.

This schematic represents the foundation of my custom ESP32 development board, combining all essential circuits needed for programming, debugging, and testing future embedded projects.

ERC test

In this step, I ran the Electrical Rules Checker (ERC) in KiCad to verify my schematic for possible connection issues. As shown in the image, the ERC detected several warnings (96 in total), but no critical errors. Most of these warnings are related to “Symbol pin or wire end off connection grid”, which usually happens when a wire is slightly misaligned with a pin or not snapped exactly to the grid point.

These are minor issues that don’t affect the overall functionality of the circuit, but it’s still good practice to review and correct them to ensure a clean and reliable design. Running the ERC helped me double-check all my connections before moving on to the PCB layout stage, ensuring that every component and signal line is properly connected.

PCB Editor

In this step, I opened the PCB Editor in KiCad and started connecting all the components using wires (tracks). As shown in the image, I routed each connection carefully according to the schematic, making sure that every pin and signal line was properly linked. This process helped me understand how to organize the layout efficiently and avoid crossing traces or short circuits.

I also paid attention to track width and component placement, ensuring that all connections were clean and logical. This was my first experience creating a complete PCB layout, and it was exciting to see how the schematic turned into a real board design ready for fabrication.

In this step, I created the board outline for my PCB design. Using the Edge.Cuts layer in KiCad, I drew a rectangular shape around the circuit to define the physical dimensions of the board. As shown in the image, I set the line width to 0.8 mm and used a solid line style to make a clean and visible edge.

The board outline is very important because it defines where the milling machine will cut the PCB during fabrication. By adjusting the size and shape, I made sure that all components fit properly inside the boundaries and that there was enough space for connectors and mounting holes.

In this step, I added a copper zone (ground plane) to my PCB design. As shown in the image, I opened the Copper Zone Properties window and selected the F.Cu (front copper) layer. Then I assigned the GND net to this zone so that all components connected to ground would automatically link to the same copper area.

I used the Solid fill option to create a continuous surface of copper instead of a hatched one, which helps reduce electrical noise and improves circuit stability. The clearance and minimum width parameters were set to 0.5 mm and 0.25 mm to ensure safe spacing between traces and the copper area.

Adding a ground plane is an important step because it helps to minimize electromagnetic interference (EMI) and provides a stable reference voltage for all components. This makes the board more reliable, especially for projects that involve communication modules like the ESP32-WROOM-32U.

Conclusion

This week I finally completed my custom PCB design, and the result is shown in the images above. It was a challenging but very rewarding experience. Working with KiCad and creating a PCB from scratch was something completely new for me. At first, it felt quite stressful because I had to learn many new tools, rules, and design principles. However, step by step, I managed to understand the workflow — from schematic design to PCB layout and 3D visualization.

Through this process, I learned how to properly route traces, assign footprints, create board outlines, and add ground planes. It gave me a deeper understanding of how professional electronic boards are designed and how much attention to detail is needed at every step.

Even though it was difficult at first, I’m proud that I completed it successfully. Now I feel much more confident in designing and fabricating my own PCBs for future embedded systems and robotics projects. This experience truly pushed my technical and problem-solving skills to a new level.

Files for download — click here