Skip to content

6. Electronics design

Group assignment:

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

To see our group assignment click here

Individual assignment:

  • Simulate a circuit

  • Use an EDA tool to design an embedded microcontroller system

using parts from the inventory, and verify its design rules for manufacturing

  • Bonus: Try another design workflow

  • Bonus: Design a case study

Prelude

For this individual assignment, we will design a development board based on the ESP32-WROOM-32D microcontroller, similar to the project by Kone Zie. The goal is to create a board capable of interacting with sensors and communicating via Wi-Fi/Bluetooth.

Software Selection: Why KiCad?

Although the reference project uses Autodesk Eagle, I chose KiCad for the following reasons:

  • Open-source: No license or board size restrictions.
  • Performance: Native 3D management and intuitive routing.
  • Compatibility: Seamless use of Fab Academy libraries.

Kicad installation

Installing KiCad is fairly straightforward, but depending on your operating system, there are a few specifics you need to know in order to get the most stable version (currently 8.0).

Always visit the official website to avoid outdated versions: 👉 : Kicad

Choose your system:

  • Windows: Download the .exe installer (often via the GitHub link).

  • macOS: Download the .dmg file.

  • Linux: KiCad is available on almost all distributions (Ubuntu, Fedora, Arch). On Ubuntu, it is recommended to use the official PPA to get version 8.

Image

Installation procedure

On Windows: Launch the installer.

  • Important: At the Choose Components stage, leave everything checked, especially Main Application and Footprint Libraries.

  • The installation takes up about 5 GB of space because it includes 3D models.

  • At the end, the installer may offer to install the help libraries, but this is optional.

Adding the “Fab” library (For your project)

Since you want to redo the Fab Academy project (like Kone Zie), you need to add the lab-specific library:

  1. Download the kicad-fab folder from Gitlab Fabcloud.

  2. In KiCad (Main Menu):

    • Go to Preferences > Manage Symbol Libraries.

    • Click on the Global Libraries tab.

    • Click on the Folder icon (+) and search for the fab.kicad_sym file.

  3. Repeat the same thing in Manage Footprint Libraries for the fab.pretty folder.

Image

Image

Image

Image

Schematic Entry (Eeschema)

Kone's project uses an ESP32-WROOM-32.

  • Adding components: Press the A key to add a component. Search for ESP32-WROOM in the fab library.

  • Connections: Use the W (Wire) key to connect components.

  • Labels: Like Kone Zie, use labels (L key) to avoid crossing too many wires. Name your lines (ex : TX, RX, GPIO0, EN).

  • Key components to remember:

    • 3.3V regulator (SOT-223).

    • lash button (GPIO0 to ground) and Reset button (EN to ground).

    • Decoupling capacitors (10uF and 100nF) between 3V3 and GND.

Here is a summary table of the essential tools for designing your electronic schematic (Eeschema) in KiCad. I have included keyboard shortcuts, as these are what make KiCad much faster than Eagle once you have mastered them.

Schema entry tools (Eeschema)

Tool Name Icon Description Function Keyboard Shortcut
Place Symbol Op-amp / component symbol icon Add electronic components (resistors, ICs, capacitors, etc.) to the schematic A
Place Power Port Power symbol icon Add power symbols (VCC, GND, +5V, etc.) P
Place Wire Green line icon Draw electrical connections between component pins W
Place Bus Thick blue line icon Draw buses to group multiple signals B
Place Bus Entry Diagonal small line icon Connect wires to a bus Shift + B
Place No Connect Flag Blue X icon Mark intentionally unconnected pins Q
Place Junction Green dot icon Add a junction between crossing wires J
Add Label Label icon Name a wire (local label) L
Add Global Label Globe label icon Create global signal labels across sheets Ctrl + L
Add Hierarchical Label Hierarchy label icon Create labels for hierarchical sheets H
Place Text Text icon Add graphical or informational text T
Draw Rectangle Rectangle shape icon Draw graphical rectangles Ctrl + Shift + R
Draw Circle Circle shape icon Draw graphical circles Ctrl + Shift + C
Place Hierarchical Sheet Sheet icon Add a hierarchical sheet S
Annotate Schematic Annotation tool icon Automatically assign reference numbers (No default shortcut)
Electrical Rules Checker (ERC) Bug/check icon Check schematic for electrical errors (No default shortcut)
Assign Footprints Footprint icon Assign PCB footprints to symbols (No default shortcut)
Move Cross arrow icon Move components or objects M
Drag Drag icon Move component while keeping wires connected G
Rotate Circular arrow icon Rotate selected component R
Mirror Mirror icon Mirror component horizontally X
Delete Trash icon Delete selected item Delete
Undo Undo arrow icon Undo last action Ctrl + Z
Redo Redo arrow icon Redo last undone action Ctrl + Y
Zoom In Magnifying glass + Zoom in Mouse Wheel Up
Zoom Out Magnifying glass - Zoom out Mouse Wheel Down

Design circuit board

Before beginning the circuit design, we conducted a detailed study of the ESP32 microcontroller to identify the most suitable pins for our project and determine the essential external components required for proper operation.

We first consulted the official ESP32 datasheet, carefully reviewing the description and electrical characteristics of each pin. This analysis enabled us to understand the specific functions, limitations, and multiplexing capabilities of the GPIOs, and to select the terminals that best match our application requirements.

During this review, we also identified an important note in the datasheet regarding certain pins that are not recommended for general use. These pins have specific constraints (such as boot configuration functions, internal flash connections, or special startup behavior) that may cause unexpected operation if improperly used. Recognizing these restrictions early in the design process helped us avoid potential hardware conflicts and ensured a more reliable circuit implementation.

Image

Another key piece of information found in the datasheet is the section titled Peripheral Schematics (Page 19). This section provides essential design recommendations and reference circuits for integrating the ESP32 properly into a hardware system.

It outlines the fundamental external components required for reliable operation, such as decoupling capacitors for power stability, pull-up and pull-down resistors for boot configuration pins, crystal oscillator connections (if applicable), and guidelines for the EN (enable) and reset circuitry.

By following the recommendations in this section, we ensured that our schematic includes all the necessary supporting components to guarantee stable power supply behavior, correct startup configuration, and overall reliable performance of the ESP32 in our circuit design.

Image

schematic design

This table lists the components used to design our card.

Reference Value Name
U1 ESP32-WROOM ESP-WROOM-32U
U2 Voltage regulator 3.3 V 100 mA LDO Regulator
R1 10 kΩ 10 kΩ NTC Thermistor
R2 100 Ohm 100 Ohm Resistor
R3 100 Ohm 100 Ohm Resistor
R4 10 kΩ 10 kΩ NTC Thermistor
R5 100 Ohm 100 Ohm Resistor
C1 0.1 µF 0.1 µF Ceramic Capacitor 250 V
C2 10 µF 10 µF Ceramic Capacitor 50 V
C3 10 µF 10 µF Ceramic Capacitor 50 V
LED1 Transparent Green LED
LED2 Transparent Green LED
LED3 Clear Red LED → Green
S1 Push Button Switch
S2 Slide Switch
S3 Push Button Switch
M1 FTDI SMD Pin Header Connector SMD CON HEADER

Using the Kicad tool summary table, add the various components to your workspace.

Image

Use the Wire and Label tools to achieve the following:

Image

Once your diagram is clean and each symbol is associated with its footprint, save your work.

Routing design

Routing is the stage where you transform the logical connections in your schematic (the hairy or ratsnest) into physical copper tracks on your printed circuit board. It is a mixture of logical puzzle-solving and compliance with the laws of physics.

Click on the symbol indicated by the red arrow to go to the routing area.

Image

Image

Once in the routing space, KiCad requires the user to perform an update. To do so, do the following:

Click on the symbol indicated by the red arrow to go to the routing area.

Image

This is precisely where we move from theoretical electronics to manufacturing. Component placement accounts for approximately 70% of successful routing. If the placement is poor, no routing tricks will save the board.

Do not place components randomly on the PCB. Group them by function:

  • Power block: Regulators, filter capacitors, input terminals. Place them near the edge of the board to dissipate heat and facilitate wiring.

  • ogic/core block: Your microcontroller or main integrated circuit in the center.

  • Interface block: Connectors, buttons, LEDs. They must be accessible at the edges.

The white wires (the hairy ones) are your guides.

  • The rotation game: Select a component and press R. Watch the white wires cross or uncross. Your goal is to have the straightest and shortest lines possible before you start routing.

  • Alignment: Align the integrated circuits in the same direction (notch facing up or left). This makes it much easier to route data buses and solder.

Image