Team MasterDoom · University of Pennsylvania ESE 5160

Custom Embedded PCB & Firmware

An embedded systems project centered on a custom SiWG917 PCB and the firmware/system integration around it. The repository documents Altium schematic/layout work, board fabrication and assembly, bench bring-up, power validation, MQTT communication, LCD/joystick UI, camera capture, and a FastAPI/YOLOv3 inference tradeoff.

Altium DesignerSiWG917PCB DesignJLCPCBHardware Bring-UpMQTT

Overview

Project Strengths

  • Custom SiWG917 PCB spanning hierarchical schematics, PCB layout/routing, component placement, power architecture, USB/protection, battery charging, regulated 3.3 V and 5 V rails, and peripheral interfaces.
  • Manufacturing preparation followed by board fabrication, assembly, optical inspection, manual soldering/rework, and electrical validation.
  • Bring-up workflow centered on subsystem checks, test points/jumpers, power-mode validation, oscilloscope captures, electronic-load testing, thermal imaging, and programming/debug attempts.
  • Firmware and system integration across MQTT messaging, ST7735R LCD UI, joystick input, camera capture/upload, Node-RED dashboard flow, and OTA-oriented command handling.

My Contribution

  • Designed and brought up the custom SiWG917 PCB through schematic capture, layout, 3D verification, power-path validation, thermal checks, and rework.
  • Integrated and debugged firmware paths across MQTT/networking, LCD UI, joystick input, camera upload, and game-state behavior.
  • Validated board power behavior and documented the engineering tradeoffs behind reference-hardware firmware execution.
  • Team MasterDoom included Yunzhe Deng and Jilu Wang; the site presents the work as a team ESE 5160 project.

System / Architecture

Architecture

  1. 01Problem / goal: build a connected embedded poker assistant while designing a custom SiWG917 PCB rather than treating the project as only development-board firmware.
  2. 02PCB design: integrate MCU, 3.3 V and 5 V power, battery charging, USB/protection, SD card support, LCD/camera interfaces, motor/encoder-related interfaces, test points, and jumpers.
  3. 03Manufacturing and assembly: prepare manufacturing outputs, fabricate and assemble the board, inspect it, and rework population/orientation issues recorded in bring-up notes.
  4. 04Hardware bring-up: validate power paths and subsystems with oscilloscope captures, electronic loads, thermal imaging, peripheral checks, and programming/debugging attempts.
  5. 05System integration: continue final firmware execution on reference SiWG917 development hardware after custom-board flashing remained unreliable, while retaining the custom PCB as a validated hardware artifact.

Implementation

Implementation

  • Created Altium Designer schematic/layout/manufacturing artifacts for the custom SiWG917 board and reviewed the design through PCB layout and 3D render evidence.
  • Validated 3.3 V and 5 V rails under 50 mA through 600 mA electronic-load tests, oscilloscope startup/steady-state captures, and thermal imaging.
  • Retained main-controller firmware modules for board/BSP mapping, GPIO/I2C/SPI wrappers, ST7735R display rendering, joystick ADC/switch input, MQTT, vision bridge, simulation, and strategy logic.
  • Retained camera-node firmware for OV2640 register/SPI/I2C control, image capture, HTTP upload, retry handling, and local JPEG inspection.
  • Moved card recognition off-device after SiWG917 memory constraints made useful on-device YOLO detection impractical; FastAPI/YOLOv3 results return through MQTT.
3D PCB render used for design review before fabrication.

Visual Evidence

Hardware and system artifacts

PCB layout evidence from the custom SiWG917 board design.
Fabricated PCBA back view after manufacturing and assembly.
Top-level schematic showing board-level hardware integration.
Power-rail validation during board bring-up.
Camera-to-cloud-to-embedded architecture used for final system integration.

Results / Validation

  • Custom PCB was designed, fabricated, assembled, visually inspected, reworked, and electrically validated.
  • 3.3 V and 5 V power rails were tested with oscilloscope captures and electronic-load testing from 50 mA through 600 mA.
  • Working prototype architecture demonstrated on reference SiWG917 development hardware with OV2640 capture, MQTT messaging, LCD output, joystick input, Node-RED dashboard interaction, and OTA-oriented firmware logic.
  • The public repository preserves the custom-board flashing issue explicitly rather than implying that final firmware ran from the custom PCB.

Challenges / Decisions

  • Custom-board firmware flashing remained unreliable, so final application development continued on reference SiWG917 development hardware.
  • MCU memory limits pushed the card-detection workload off-device to FastAPI + YOLOv3.
  • End-to-end integration depended on Wi-Fi, HTTP upload, inference service availability, MQTT broker reliability, and display-state synchronization.
  • The public firmware snapshot is curated and excludes generated SDK trees, build output, credentials, and third-party font data without clear redistribution permission.