Jamie by the waterfront with the city skyline behind him

About

UBC student
AMD intern

I’m Jamie, an Electrical Engineering student at UBC and an IP Systems Engineer intern at AMD, where I work on silicon validation and debugging. I enjoy building hardware and writing the firmware that makes it work. Outside engineering, I spend my time learning about the humanities and playing games.

Piano-playing robot Updated motor driver PCB Piano robot solenoid driver board Haptic knob prototype Haptic knob PCB Haptic knob control architecture Neural network accelerator system diagram, part 1 Neural network accelerator system diagram, part 2 Assembled buck converter PCB Buck converter PCB layout

Projects

Robotics / Power Electronics

Piano-Playing Robot

Designed and debugged H-bridge and solenoid driver PCBs, integrated actuator electronics with a two-handed PID-controlled robot, and encoded music datasets for autonomous performance.

  • PCB Design
  • Power Electronics
  • Control Theory
  • Hardware Debugging
  • LTspice

Haptics / Embedded Control

Haptic Knob (Simulating Force on an Electron)

Firmware co-lead designing the control system and electrical-to-mechanical theory, and implementing ESP32-S3 haptic control with FreeRTOS and SimpleFOC.

  • ESP32-S3
  • FreeRTOS
  • SimpleFOC
  • C/C++

Digital / FPGA

Digital Neural Network Accelerator

Custom accelerators (DMA/dot‑product), Avalon interface, SDRAM + VGA, and testbench automation.

  • Verilog
  • Quartus
  • ModelSim
  • SDRAM

Digital / FPGA

Reduced Instruction Set (RISC) Computer

Extended simple RISC CPU on DE1‑SoC; SystemVerilog + testbenches; top marks across labs.

  • SystemVerilog
  • Quartus
  • ModelSim
  • DE1‑SoC

Power Electronics

48V → 24V Buck Converter PCB (TI LM5116)

High‑current DC/DC with thermal relief and efficiency tests for robotics distribution.

  • Altium
  • LM5116
  • Oscilloscope
  • Load step

Robotics

Coin Picking Robot

PIC32‑based autonomous robot with metal‑detector frontend and dual MG90S servos; <2% miss rate.

  • PIC32
  • STM32
  • Servos
  • RF link
  • LCD

Controls / Manufacturing

Reflow Oven Controller

MCU‑based temperature control with K‑type thermocouple + SSR; multi‑stage FSM reflow profiles.

  • Assembly
  • SSR
  • Thermocouple
  • FSM

Audio / Embedded

Bluetooth Speaker (Class‑AB + ESP32)

Custom Class‑AB amplifier with preamp, tone control, and ESP32 Bluetooth audio + controls.

  • Class‑AB
  • ESP32
  • PCB
  • BT A2DP

Power / Product

Wireless Charging Power Bank

Qi‑enabled bank with BMS/charging IC, LED capacity indicator, and buck/boost regulation.

  • Qi
  • BMS
  • USB‑C/USB‑A
  • Buck/Boost

iOS / Software

Empire — Productivity App (iOS)

Launched on App Store; 10k+ downloads, 4.9★ avg; Swift + Obj‑C for secure state handling.

  • Swift
  • Objective‑C
  • App Store

Skills

Silicon Validation & Debug

  • Post-silicon validation
  • Register-level testing
  • SoC interconnects
  • JTAG
  • Lauterbach TRACE32
  • Aardvark I²C/SPI
  • Firmware debug
  • DFT / scan dumps

PCB & Power Electronics

  • Altium
  • LTspice
  • PCB design / bring-up
  • Buck/boost converters
  • H-bridge / solenoid drivers
  • MOSFET gate drives
  • Flyback / transient protection
  • Decoupling / RC filtering
  • Thermal validation

Digital & FPGA

  • SystemVerilog / Verilog
  • RTL design
  • CPU architecture
  • FSM design
  • DMA / dot-product accelerators
  • Avalon bus
  • SDRAM / PLL
  • Quartus / ModelSim
  • RTL / gate-level testbenches
  • DE1-SoC

Embedded Systems

  • C/C++
  • FreeRTOS
  • ESP32-S3
  • STM32 / PIC32
  • ARM / 8051 Assembly
  • UART / SPI / I²C
  • Interrupts / watchdogs
  • Bootloaders

Controls & Instrumentation

  • PID control
  • SimpleFOC / BLDC control
  • PWM
  • Encoder feedback
  • Current sensing
  • Oscilloscope / multimeter
  • Electronic load
  • MATLAB
  • Hardware debugging

Software & Tools

  • Python
  • Git / GitHub
  • Swift / Objective-C
  • Java
  • HTML / CSS / JavaScript
  • Matplotlib / Pandas
  • Test automation
  • App Store releases
← Back to Projects

48V → 24V Buck Converter (TI LM5116)

High-current synchronous buck used in robotics power distribution. Focus areas: thermal management and efficiency across load.

  • Measured efficiency and thermal performance across load.
  • Designed and tested a 48V→24V buck converter (TI LM5116, 15A) using Altium; developed a detailed test plan and project documentation, and validated performance with an oscilloscope and variable load.

Tech: Altium, LM5116, DMM, Oscilloscope, Electronic load

← Back to Projects

Digital Neural Network Accelerator

Designed for DE1‑SoC FPGA platform with custom accelerators connected to Avalon bus. Implemented DMA, dot‑product acceleration, SDRAM controller, and VGA visualization, with automated testbenches.

  • Memory‑mapped Avalon interface
  • Custom DMA engine for data movement
  • Dot‑product accelerator for neural net inference
  • SDRAM + VGA integration for visualization

Tech: Verilog, Quartus, ModelSim, Avalon, SDRAM, VGA

← Back to Projects

Bluetooth Speaker — Class‑AB Amplifier + ESP32

Custom Class‑AB audio amplifier with preamp and tone control. ESP32 handles Bluetooth streaming and UI.

  • Thermally‑biased Class‑AB output stage with low-noise preamp.
  • ESP32 for BT pairing and telemetry

Tech: Class‑AB, ESP32, A2DP, PCB layout, Audio measurement

← Back to Projects

Coin Picking Robot — Group Project

Built a PIC32‑based autonomous robot with a custom metal‑detector front end and dual MG90S servos.

  • Developed 2k+ lines of C firmware: interrupt frequency capture, PWM control
  • Implemented a radio link to an STM32 handheld displaying live stats on a 4‑bit LCD
  • Custom make/flash toolchain for rapid iteration

Tech: PIC32, MG90S, RF link, STM32, LCD, C

← Back to Projects

Wireless Charging Power Bank

Qi‑enabled power bank featuring a BMS and charging IC for safe operation, LED battery capacity display, and a buck/boost converter regulating between USB‑C (in) and USB‑A (out).

  • Charge/discharge protection and cell balancing via BMS + charger IC
  • Qi Coil Receiver module integration and thermal management
  • LED fuel gauge and USB‑C sink negotiation

Tech: Qi, BMS, USB‑C, Buck/Boost, Thermal

← Back to Projects

Reduced Instruction Set (RISC) Computer

October 2024 – November 2024. Designed and implemented an extended simple RISC machine CPU on the DE1‑SoC. Achieved top scores on all labs, demonstrating proficiency in microprocessor architecture.

  • Created and tested assembly programs to validate functionality
  • SystemVerilog for hardware description and test benches
  • Used ModelSim/Quartus for simulation and synthesis

Tech: SystemVerilog, ModelSim, Quartus, DE1‑SoC

← Back to Projects

Empire — Productivity Manager (iOS)

August 2022 – Present. Developed and launched on the iOS App Store using Swift; 10k+ downloads, 4.9/5 average rating.

  • Low‑level proprietary algorithm adjusts in‑app currency based on device state
  • Used Objective‑C functions to detect when protected data became unavailable
  • Telemetry and crash monitoring for releases

Tech: Swift, Objective‑C, iOS, App Store Connect

← Back to Projects

Reflow Oven Controller

Designed and programmed a microcontroller‑based system (Assembly) for precise temperature control using a K‑type thermocouple and SSR. Implemented an FSM for multi‑stage reflow profiles and safety checks; built a dynamic website (HTML/CSS/JS) with Python graphing (Matplotlib/Pandas) for real‑time visualization.

  • Thermocouple interface + SSR drive; safety interlocks
  • FSM profiles: preheat, soak, reflow, cool‑down
  • Web UI + Python backend for plotting

Tech: Assembly, SSR, K‑type, HTML/CSS/JS, Python, Matplotlib, Pandas

← Back to Projects

Haptic Knob (Simulating Force on an Electron)

UBC Open Robotics · Firmware Co-lead

A motorized knob that turns electrical circuit behavior into physical feedback. Rotating it lets users feel resistance, spring-like restoring force, and inertia through a mechanical analogy: voltage corresponds to torque, current to angular velocity, and charge to angular displacement. As firmware co-lead, I designed the control system and its high-level theory, including how electrical circuit behavior maps to mechanical torque feedback. I also implemented the embedded firmware and designed the control loops, encoder feedback, and current-sensing integration.

Firmware architecture

  • Developed C/C++ firmware for the ESP32-S3 using FreeRTOS and SimpleFOC. The control architecture combines the inner motor loop with an outer haptic-model update every fifth cycle, holding the latest current command between model updates.
  • Organized measured state, runtime settings, motor commands, and fault flags through shared-state interfaces, with separate telemetry and watchdog modules.

Motor control and feedback

  • Integrated an MT6701 magnetic encoder over SSI/SPI and MCP3204-based phase-current sensing on separate SPI buses.
  • Implemented FOC-based BLDC torque control using a six-PWM driver interface. The hardware layer configures 30 kHz PWM and d/q current-loop PID gains, translating model torque requests into bounded q-axis current commands.

Circuit models and tuning

  • The model code includes resistor, capacitor, inductor, diode, and RLC modes. It uses velocity-dependent resistance, displacement-based restoring torque, filtered acceleration feedback, and state updates for virtual RLC current and capacitor voltage.
  • Filtering, deadbands, damping, and torque/current limits condition the feedback commands. Serial telemetry and command handlers support model selection, angle zeroing, parameter adjustment, and per-mode PID tuning.

Tech: ESP32-S3, C/C++, FreeRTOS, SimpleFOC, PlatformIO, BLDC, FOC, SPI/SSI, MT6701, MCP3204, current sensing, PID

Control architecture

Prototype and mechanical design

PCB design

Team hardware schematics

← Back to Projects

Piano-Playing Robot

Jan 2026 – Apr 2026 · ELEC 391 · Robo-Maestro

A two-handed robotic system that combines PID-controlled rail positioning with solenoid actuation to perform piano pieces autonomously. My primary responsibility was designing the H-bridge and solenoid driver boards, integrating them with the mechanical and firmware systems, and verifying reliable operation under demanding PID commands.

Actuator board design

  • Designed and tested 12 V H-bridge and solenoid driver PCBs, implementing MOSFET gate-drive circuitry, flyback protection, decoupling, and transient suppression.
  • Validated designs in LTspice before schematic capture, PCB layout, and fabrication.
  • Revised the motor PCB to incorporate changes identified during debugging, including additional capacitors, into a cleaner board design.
  • The actuator electronics included a dual H-bridge motor board and separate eight- and four-actuator solenoid boards for the two hands.

Debugging and system integration

  • Bench-tested and debugged actuator PCBs with multimeters and oscilloscopes, then validated operation under 20 kHz PWM.
  • Integrated the boards with the mechanical assemblies and firmware to coordinate rail positioning and solenoid actuation.
  • Checked circuit performance and overheating under high PID demands, focusing on dependable actuator operation during changing motor loads and repeated solenoid switching.

Music datasets

Created datasets encoding multiple pieces performed by the robot, including Viva la Vida, Swan Lake, and Waltz in A Minor.

Tech: PCB design, power electronics, control theory, hardware debugging, LTspice, MOSFETs, H-bridge, solenoid drivers, 20 kHz PWM, PID, oscilloscope

Robot video

Robot photos

Actuator boards

PCB layouts and revisions

Circuit design

Team system integration