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
GitHublink). -
macOS: Download the
.dmgfile. -
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.

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:
-
Download the
kicad-fabfolder from Gitlab Fabcloud. -
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_symfile.
-
-
Repeat the same thing in Manage Footprint Libraries for the
fab.prettyfolder.




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.

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.

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.

Use the Wire and Label tools to achieve the following:

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.


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.

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.
