For this week group assignment we should use the test equipment in your lab to observe the operation of a microcontroller circuit board. The complete group testing report is available on the Fablab Dilijan Group Assignment Page. I'm using Siglent SDS 1202x-e digital oscilloscope for testing arduino uno board two led digitalwrite to digitalwriteFast comparison.
Siglent SDS 1202x-e Specifications:
#include "digitalWriteFast.h"
void setup() {
// put your setup code here, to run once:
pinMode(3,OUTPUT); // led 1 pin
pinMode(4,OUTPUT); // led 2 pin
}
void loop() {
// Test Digitalwrite on led 1
digitalWrite(3, HIGH);
digitalWrite(3, LOW);
// Test DigitalWriteFast on led 2
digitalWriteFast(4,HIGH);
digitalWriteFast(4,LOW);
}
Oscilloscope Setup:
| Device | DigitalWrite Speed | DigitalWriteFast Speed | Speed Factor |
|---|---|---|---|
| Arduino Uno | ~6000 ns | ~125 ns | ~48x faster |
| ESP32 | ~500 ns | ~50 ns | ~10x faster |
The goal this week was to design a custom development board from scratch. The board must include a microcontroller and peripherals to allow for interaction (input/output) and communication (serial/programming).
I chose KiCad 9.0 as my EDA (Electronic Design Automation) tool, because i had a little experience with Easyeda and wanted to try something new.
Before designing, I integrated the Fab Academy 2026 library to ensure all parts used are available in our lab's inventory.
Symbols: Preferences > Manage Symbol Libraries -> Added fab.kicad_sym.
Footprints: Preferences > Manage Footprint Libraries -> Added fab.pretty.
I designed a board based on the Seeed Studio XIAO ESP32C3 (or your preferred MCU from the inventory). Components Used:
To verify the circuit before fabrication, I simulated the LED trigger logic.
I also exported the netlist to LTspice to perform a more granular stress test on the power regulation, simulating the voltage drop when the ESP32 switches from Sleep to Active mode.
I connected the XIAO pins to peripherals: GPIO2 is mapped to the output LED, GPIO3 to the input push button (with an internal pull-up resistor enabled in software), and the UART TX/RX pins are routed to the 1x6 header for serial debugging and firmware flashing.
0.4mm trace width to ensure traces can be milled reliably on our CNC router without lifting. Power traces (VCC and GND) were routed with 0.6mm width to support higher current spikes.0.4mm (based on our 1/64" PCB milling bit size) and ran the DRC. No errors or disconnected nets were found.
Download the KiCad project files and schematic exports below:
| File Name | Format | Description | Download Link |
|---|---|---|---|
| dashboard_mcu.kicad_sch | KiCad Schematic (.kicad_sch) | Schematic capture file for the ESP32C3 dashboard board. | 📥 Download SCH |
| dashboard_mcu.kicad_pcb | KiCad PCB (.kicad_pcb) | PCB layout and copper routing file. | 📥 Download PCB |
| power_transient.asc | LTspice Schematic (.asc) | Simulation model for power regulator transient load spikes. | 📥 Download ASC |
.kicad_sch, .kicad_pcb, and LTspice .asc models are in the Original Design Files section.This week focused on EDA schematics, routing constraints, and testing. Here is a summary of the accomplishments:
Used digital oscilloscopes to profile digitalWrite timing, showing a 48x performance gain with static direct register writes.
Designed a custom XIAO ESP32C3 dashboard development board schematic using the Fab Academy library.
Routed all copper traces with 0.4mm clearances and passed all Design Rule Checks for CNC mechanical isolation.
Performed SPICE transient simulations in LTspice to verify power supply decoupling stability under microcontroller wakeup cycles.