Industrial FABLAB UCuenca

Week 6 – Electronic Design

Electronic design

Checklist

Group Assignment

The objective of this group assignment is to use the available test equipment in the lab to observe and analyze the operation of a microcontroller-based circuit board. This involves understanding how signals behave in real time and how different components interact within the system.

As a minimum requirement, the use of a logic analyzer must be demonstrated. This tool allows capturing and visualizing digital signals, making it possible to inspect communication protocols, timing relationships, and signal integrity between components.

Through this activity, the goal is to gain practical experience in debugging and validating embedded systems using professional measurement tools, reinforcing theoretical knowledge with real-world observation.

All findings, procedures, and results must be documented on the group assignment page. Additionally, each team member should include a personal reflection on their individual page, describing what they learned and how the experience contributed to their understanding of microcontroller systems and electronic testing.

Open Group Assignment

1. Introduction

This week’s group assignment consisted of learning how to use laboratory test equipment to observe and analyze the operation of a microcontroller circuit board.

As a minimum requirement, we demonstrated the use of:

The system under test was an ESP32-C3 development board powered via USB (5V) and operating at 3.3V logic level.

The objective was to understand how electrical signals behave in real hardware and to validate circuit functionality before moving into PCB design.

Introduction Evidence 1 Introduction Evidence 2

2. Definitions of Technical Equipment

Equipment Description Useful For
Regulated Power Supply Provides stable DC voltage independent of input fluctuations. Safely powering circuits during testing.
Multimeter Measures Voltage (AC/DC), Current, Resistance, Continuity, and sometimes Capacitance. Diagnosing circuit issues and verifying correct electrical values.
Oscilloscope Displays voltage as a function of time (Voltage vs Time). Observing waveform shape, frequency, amplitude, and signal integrity.
Logic Analyzer Captures multiple digital signals simultaneously. Analyzing digital communication and logic states.
Mixed Signal Oscilloscope Combines analog and digital signal analysis. Testing circuits with both analog and digital components.
Equipment Evidence 1 Equipment Evidence 2

3. Electrical Fundamentals

3.1 Ohm’s Law

Ohm’s Law relates voltage, current, and resistance:

V = I × R

Where:
V = Voltage (Volts)
I = Current (Amperes)
R = Resistance (Ohms)

Derived forms:
I = V / R
R = V / I

Ohm Law Evidence 1 Ohm Law Evidence 2

3.2 Electrical Power

Power is the rate at which electrical energy is consumed.

P = V × I

Alternative forms using Ohm’s Law:
P = I² × R
P = V² / R

Where:
P = Power (Watts)

Power Evidence 1 Power Evidence 2

Example – LED with ESP32-C3

ESP32-C3 GPIO = 3.3V
LED forward voltage ≈ 2.0V
Desired current = 5mA (0.005A)

R = (3.3V − 2.0V) / 0.005A
R = 260Ω

Standard value used: 220Ω

Power dissipation in resistor:
P = V × I
P = 1.3V × 0.005A
P = 0.0065W (6.5mW)

A 1/4W resistor is more than sufficient.

Example Evidence 1 Example Evidence 2

4. Using the Multimeter

4.1 Measuring Voltage

Purpose: Verify correct power supply levels.

  1. Turn on multimeter.
  2. Select DC Voltage (<20V range).
  3. Connect black probe to GND.
  4. Connect red probe to measurement point.

Measurements performed:
Working battery → 8.9V
Dead battery → 1.2V
ESP32-C3 3.3V output → 3.2V

This confirmed proper voltage regulation.

Voltage Evidence 1

4.2 Measuring Resistance

Purpose: Confirm resistor value.

  1. Power off circuit.
  2. Select Ω mode.
  3. Place probes across resistor terminals.

Measured value: 220Ω

Resistance Evidence 1

4.3 Testing Continuity

Purpose: Ensure circuit connections are closed and solder joints are correct.

  1. Turn off power.
  2. Select continuity mode (beep symbol).
  3. Touch probes across GND connections, LED terminals, PCB traces.

Beep indicates closed circuit.

Continuity Evidence 1

4.4 Measuring Current

Purpose: Determine actual current consumption.

Current must be measured in series.

  1. Disconnect power.
  2. Open power line.
  3. Set multimeter to DC mA mode.
  4. Insert multimeter in series.
  5. Reconnect power.

Measured value for blinking LED circuit: 5.4 mA

Current Evidence 1

5. Using the Oscilloscope

5.1 Setup

  1. Turn on oscilloscope.
  2. Select DC coupling.
  3. Adjust Voltage scale (Volts/div) and Time scale (Time/div).

Calibration was required to properly visualize the waveform.

Scope Setup Evidence 1 Scope Setup Evidence 2

5.2 Observing GPIO Blink Signal

The ESP32-C3 was programmed with a blinking LED (100 ms interval).

Probe connections:
Tip → GPIO pin
Ground clip → GND

Observed waveform:
Square wave
0V (LOW)
3.3V (HIGH)

GPIO Evidence 1

5.3 Changing Frequency

LOW = 500 ms
HIGH = 100 ms

The waveform width changed accordingly, demonstrating duty cycle variation.

5.4 Observing Serial Communication

We transmitted character “K”. ASCII binary: 111101011

Oscilloscope displayed Start bit (0), Data bits, Stop bit (1).

This confirmed correct digital serial transmission.

Frequency Evidence 1

6. Key Learning Outcomes

7. Conclusion

This group assignment provided practical experience using laboratory test equipment to analyze a microcontroller system. By validating electrical parameters on the ESP32-C3 board, we reinforced fundamental concepts such as Ohm’s Law, power dissipation, signal integrity, and digital waveform behavior.

These skills are essential for the upcoming PCB design and fabrication stages, where electrical validation becomes critical before hardware deployment.

Conclusion Evidence 1

INDIVIDUAL ASSIGNMENT – ELECTRONICS DESIGN

1. Introduction

For this assignment, I designed a custom electronic system using KiCad as the Electronic Design Automation (EDA) software. The project integrates a Seeed Studio XIAO ESP32-C3 microcontroller to control two servo motors.

The workflow included:

2. About KiCad

KiCad is an open-source Electronic Design Automation (EDA) tool used to design schematics and printed circuit boards (PCBs).

It allows:

KiCad Overview

KiCad is widely used in academic and professional electronics development due to its flexibility and open-source ecosystem.

3. System Description

The system consists of:

Electronic Circuit Design – LED Roulette (XIAO ESP32-C3)

This circuit is designed to simulate a roulette effect using 7 LEDs controlled by a Seeed XIAO ESP32-C3 microcontroller. The system sequentially activates each LED to create a dynamic visual pattern, similar to a spinning wheel that eventually stops at a random position.

Components Used

Pin Configuration

Each LED is connected to a dedicated GPIO pin of the XIAO ESP32-C3:

Electrical Connections

Each LED is connected in series with a resistor to protect it from excessive current:

This configuration ensures that when a GPIO pin outputs HIGH (3.3V), the corresponding LED turns ON, and when LOW, it turns OFF.

System Behavior (Roulette Logic)

The program controls the LEDs in a sequential loop:

Design Considerations

System Description System Description

4. Circuit Simulation in Wokwi

Simulation in Wokwi – LED Roulette (XIAO ESP32-C3)

The LED roulette system was first validated using Wokwi, an online simulation platform that allows testing both circuit connections and embedded code before implementing the design in physical hardware.

Step-by-Step Simulation Workflow

  1. Create a New Project:
    Access wokwi.com and create a new project selecting the ESP32-C3 as the main microcontroller.
  2. Add Components:
    Insert the required components into the workspace:
    • 7 LEDs
    • 7 resistors (220Ω)
    • ESP32-C3 board
  3. Wire the Circuit:
    Connect each LED to a GPIO pin (D0–D6). Each LED must be connected in series with a resistor, and all resistors must go to GND. This replicates the real circuit configuration.
  4. Insert the Code:
    Open the code editor in Wokwi and paste the Arduino-based program that controls the LED sequence (roulette effect). The code defines pin modes and controls the timing of each LED.
  5. Run the Simulation:
    Click the “Start Simulation” button. The LEDs will begin to turn on sequentially, creating the roulette effect. The speed variation (if implemented) will simulate acceleration and deceleration.
  6. Validate Behavior:
    Observe that:
    • Each LED turns ON and OFF correctly
    • The sequence follows the programmed order
    • The final stop occurs as expected (random or fixed)
  7. Debug if Necessary:
    If any LED does not behave correctly:
    • Check wiring connections
    • Verify correct GPIO pin assignment
    • Review delays and logic in the code

Advantages of Simulation

Using Wokwi significantly improves the development workflow by ensuring that both the circuit design and the program logic are correct before assembling the real system.

Before designing the PCB, the system was simulated using Wokwi.

Steps:

  1. Create new ESP32 project.
  2. Select ESP32-C3 board.
  3. Add two servo components.
  4. Connect:
    • Servo 1 → GPIO D9
    • Servo 2 → GPIO D10
    • 5V external power
    • Common GND
  5. Upload and test Arduino code.

5. Programming in Arduino IDE

After validating the simulation, the firmware was developed in Arduino IDE.

Steps:

  1. Install ESP32 board support.
  2. Open Preferences and add ESP32 board URL.
  3. Install ESP32 board package.
  4. Install ESP32Servo library.
Arduino IDE

The program controls two servos using PWM signals and predefined movement sequences.

6. Installing Fab Academy KiCad Library

To follow Fab Academy PCB standards, the Fab library was installed.

  1. Download FabAcademy KiCad library files.
  2. Preferences → Manage Symbol Libraries → Add Existing Library.
  3. Select fab.kicad_sym.
  4. Preferences → Manage Footprint Libraries → Add Existing Library.
  5. Select fab.pretty folder.
Fab Library Installation

This enables access to Fab-standard components such as resistors, capacitors, pin headers and microcontrollers.

7. Creating the Schematic

Schematic Design Process in KiCad – LED Roulette (XIAO ESP32-C3)

The schematic of the LED roulette system was developed using KiCad, an open-source electronic design automation (EDA) tool. This stage is essential to define electrical connections clearly before moving to PCB design or physical prototyping.

Step-by-Step Workflow

  1. Create a New Project:
    Open KiCad and create a new project. This generates the main files for schematic and PCB design.
  2. Open Schematic Editor:
    Launch the Schematic Editor to begin designing the circuit diagram.
  3. Add Components:
    Use the component library to insert:
    • Microcontroller module (XIAO ESP32-C3 or generic ESP32 symbol)
    • 7 LEDs
    • 7 resistors (220Ω)
    • Power symbols (GND)
  4. Assign GPIO Pins:
    Connect each LED to a specific GPIO pin:
    • D0 → LED1
    • D1 → LED2
    • D2 → LED3
    • D3 → LED4
    • D4 → LED5
    • D5 → LED6
    • D6 → LED7
  5. Wire the Circuit:
    Draw connections between components:
    • GPIO pin → LED anode (+)
    • LED cathode (−) → resistor
    • Resistor → GND
    This ensures proper current flow and protection of the LEDs.
  6. Add Labels and References:
    Assign reference labels (R1–R7, LED1–LED7) and optionally name signals to improve readability and organization.
  7. Electrical Rules Check (ERC):
    Run the ERC tool to detect errors such as unconnected pins, missing grounds, or incorrect connections. Fix any issues before proceeding.
  8. Assign Footprints:
    Link each schematic component to a physical footprint (for PCB design), such as SMD or through-hole LEDs and resistors.
  9. Save and Prepare for PCB Layout:
    Once the schematic is validated, it can be transferred to the PCB editor for board design and routing.

Design Considerations

This schematic design process ensures a clear and reliable representation of the circuit, serving as the foundation for both simulation, PCB fabrication, and physical implementation.

Schematic Diagram

8. Assigning Footprints

Open Tools → Assign Footprints.

Footprint Assignment

Save and update PCB.

9. PCB Layout Design

Open PCB Editor.

Step 1: Define Board Outline

Use Edge.Cuts layer to draw rectangular board shape.

Step 2: Place Components

Footprint Assignment

10. Routing the PCB

PCB Routing

11. Ground Plane (Copper Fill)

  1. Select Add Filled Zone
  2. Choose F.Cu layer
  3. Select GND net
  4. Draw polygon around board
  5. Press B to refill zones
Ground Plane

Benefits include reduced noise, better current return path and improved EMI performance.

12. Design Rule Check (DRC)

Run DRC and inspect clearance violations, overlapping pads and unconnected nets.

Ground Plane

13. 3D View and Final Inspection

Open 3D Viewer and verify component placement, connector orientation and mechanical fit.

Ground Plane

14. Generating Manufacturing Files- HERO SHOT

Ground Plane
Download PCB Files Download SVG Design Download PNG Image Download Code (IDE)

Conclusions, Challenges, and Solutions

Conclusions

This assignment provided a comprehensive understanding of the complete workflow in electronics design, from schematic creation in KiCad to PCB fabrication and embedded programming using the XIAO ESP32-C3. It reinforced key concepts such as GPIO control, circuit design rules, and the relationship between hardware and software.

Additionally, the integration of simulation tools, PCB design, and real-world testing allowed a better understanding of how theoretical knowledge is applied in practical scenarios. The LED roulette system demonstrated how multiple outputs can be controlled efficiently to generate dynamic behaviors.

Problems Encountered

How the Problems Were Solved

Final Reflection

Overcoming these challenges strengthened problem-solving skills and highlighted the importance of iterative design, testing, and validation. The experience demonstrated that successful electronic system development requires careful planning, attention to detail, and continuous debugging.