Group Assignment

For this week group assignment we should use the test equipment in your lab to observe the operation of a microcontroller circuit board. 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:

  • Bandwidth: 200 MHz
  • Channels: 2 Analog
  • Sample Rate: 1 GSa/s (Max)
  • Memory Depth: 14 Mpts
  • Waveform Capture Rate: 100,000 wfm/s (Normal mode)
  • Serial Decoding: Free standard support for I2C, SPI, UART, CAN, and LIN.
  • Display: 7-inch color TFT-LCD with 256-level intensity grading.
I used two led bulbs with 200 ohm resistors and connected it to 3-4 digital pins on arduino uno board. I've installed digitalWriteFast by Watterott library
and used this code to compare digitalwrite and digitalwriteFast.

	#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:

  • Grounding: Connect the probe’s ground clip to the Arduino GND.
  • Coupling: Use DC Coupling.
  • Horizontal Scale (Timebase): Start at 5us for standard digitalWrite and dial down to 100ns for the fast version.
  • Trigger: Set the trigger to Rising Edge and adjust the level to about 1.5V.

Test Results:

Device DigitalWrite Speed DigitalWriteFast Speed Speed Factor
Arduino Uno ~6000 ns ~125 ns ~48x faster
ESP32 ~500 ns ~50 ns ~10x faster

Individual Assignment

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:

  • Microcontroller: Seeed Studio XIAO ESP32C3.
  • Input: 1x Push Button (OMRON B3F-1000).
  • Output: 1x LED (1206 SMD) with a 330 ohm current-limiting resistor.
  • Power: $10\mu F$ Decoupling Capacitor to stabilize the voltage.
  • Connectors: 1x6 Pin Header for external communication/FTDI.

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.

  • Assigning Footprints: I matched the schematic symbols to SMD 1206 footprints for resistors/LEDs to make soldering easier.
  • Routing: I used a 0.4mm trace width to ensure the board can be easily milled on our lab's CNC (e.g., Roland SRM-20).
  • DRC (Design Rule Check): I set the clearance to 0.4mm (the size of our smallest milling bit) and ran the DRC. Zero errors found.