Group assignment

We set up the bench with power supply, oscilloscope, and a dev board. We powered the board, probed GPIO and power rails, and used the scope to confirm reset behavior and I/O timing. We also checked button debouncing and LED drive current to understand the basic I/O characteristics.

Bench setup and instruments
Oscilloscope and power supply
Soldering and wiring
Probing the board

Individual assignment

I designed a small embedded board in the EDA tool using inventory parts. I sketched the schematic, assigned footprints, and routed the PCB. DRC was kept clean with the fab’s rules (trace/space, hole sizes). Finally, I simulated the logic on Wokwi: a pull-up button on D0 drives an LED on D1.

MCU choice

I selected the Seeed XIAO ESP32-S3 because I plan to put this project online later. Following Anthony’s advice, the ESP32-S3 gives reliable 2.4 GHz Wi-Fi and Bluetooth in a tiny footprint, native USB for easy flashing and logs, enough GPIO for an LED and button, and leaves room for future OTA or cloud logging without a hardware redesign.

Computer settings screenshot
Project setup and libraries.
Board layout view
Early board layout pass, parts placed for short return paths.
Schematic diagram 1
Schematic: MCU, LED, button with internal pull-up.
Schematic diagram 2
Net labels and headers to simplify routing.
Final routed board
Final routed board; DRC clean for milling.
Wokwi simulation: button on D0 drives LED on D1.

Simulation code (Wokwi)

// Simple button → LED test
const int LED_PIN = D1;
const int BTN_PIN = D0;

void setup() {
  Serial.begin(115200);
  pinMode(LED_PIN, OUTPUT);
  pinMode(BTN_PIN, INPUT_PULLUP); // button to GND
}

void loop() {
  int pressed = (digitalRead(BTN_PIN) == LOW); // active-low
  digitalWrite(LED_PIN, pressed ? HIGH : LOW);
}
        

Board files (.zip): Download 10.3.zip