This page contains projects that I’ve created or contributed to. They are ordered reverse-chronologically. (This page also needs to be updated ._.)

Computing Platform Multirotor with FPGA Acceleration thumbnail

Computing Platform Multirotor with FPGA Acceleration (2020)

As machine learning is employed in more portable and remote devices, programmable digital circuits such as field-programmable-gate-arrays (FPGAs) are attractive given the speed and flexibility they provide. In this project, we explored integrating an object detection model (YOLOv2) onto a portable package with an FPGA, camera, and processor. To demonstrate its portability, the system is mounted to a drone, showcasing its potential deployability in remote or highly-portable situations. This project won the UBC APSC Capstone Faculty Award.

FPGA, Raspberry Pi, C, Python, JavaScript, Autodesk Inventor, APM 2.6, Electronic Tools, 2.4/5.8 GHz Radio

FB Messenger Visualizer thumbnail

FB Messenger Visualizer (2019)

An animated visualizer that visualizes entire Facebook messages archive in chronological order. Where people are drawn as nodes and exchange of messages are drawn as as beams of light.

Processing 3, Python 3

Github page
2-DOF Motorized Laser Controller thumbnail

2-DOF Motorized Laser Controller (2018)

Built and programmed PID controllers in C++ and MATLAB for 2-DOF spherical wrist controlled laser pointers that draws shapes, using DC commutating motors built from scratch.

Arduino, C++, SolidWorks, Autodesk Inventor, MATLAB, SimuLink, Altium Designer, 3D Printer, Laser Cutter, Waterjet, Node.js, p5.js, Electronic Tools

Blog 1 Blog 2 Report
Mandelbrot Set on FPGA thumbnail

Mandelbrot Set on FPGA (2018)

An interactive Mandelbrot Set fractal via VGA on the DE1-SoC FPGA development board written in SystemVerilog.

SystemVerilog, DE1-SoC FPGA Dev. Board, Quartus II Synthesizer, ModelSim

Project page
Fast Grader thumbnail

Fast Grader (2018)

Desktop app used to help grading C programming lab submissions more efficiently. Runs cross-platform and features dockable UI.

Python 3, Qt

Project page
Sleep Logger thumbnail

Sleep Logger (2017)

Web application with real-time database and authentication to keep track of sleep statistics, featuring beautifully animated front-end.

Firebase, Android SDK, p5.js, chart.js


3D Game with DIY Serialized Game Controller (2017)

DIY game controller using custom microcontroller that communicates via serial with a 3D game programmed in Processing.

Oscilloscope, H-Bridge, Soldering iron, Processing, SPI Protocol

InsectNN (2016)

Simulation of a simple insect with antennae staying on a road using a shallow neural network.

Processing 3

FPV Racing Quadcopter / Drone (2015)

DIY FPV 250 mm drone with live video feedback via 5.8GHz radio transmission. Capable of reaching up to 60km/h for 10 minutes.

Naze32 Cleanflight, BLDC Motors, 2.4/5.8 GHz radio, Electronic tools, LiPo Batteries

Other Projects

Here are some more (smaller) projects that I’ve done through out the years.

Lab Tracker iOS App (2020)

A simple Swift app written for iOS as a way for me to learn iOS development with Swift. It allows me to do my TA duties for APSC 160 easier by tracking and logging activities during a lab section.

Swift, UIKit, XCode

Augmented Reality Minesweeper (2020)

A Minesweeper-type game except implemented in Augmented Reality (AR), which allows the mine field to be augmented realistically over real surfaces.

Swift, ARKit, RealityKit, XCode

VGACoreSim thumbnail

VGACoreSim (2018)

Interactive browser app for simulating the FPGA VGA-core where user can input custom drawing scripts.


Project page
SLS 3D Printer System Model thumbnail

SLS 3D Printer System Model (2017)

A Selective Laser Sintering 3D printer designed and accurately modelled in MATLAB and SimuLink. Controlled via tuned PID controller and maximized print speed and minimized error.

MATLAB, SimuLink

Report part 1 Report part 2
FWView thumbnail

FWView (2017)

3D simulation visualizer for Thunderbot's physics based firmware simulator.

Processing 3, Python 3

CircuitDraw thumbnail

CircuitDraw (2017)

Circuit drawing web app with has all basic electrical components and features saving and reloading circuits.



DIY 3D Printer (2017)

Soldering iron, multimeter

Magnetic Field Tracking Robot thumbnail

Magnetic Field Tracking Robot (2017)

Microcontroller robot that follows magnetic field generated by a wire; can be wirelessly controlled via the magnetic field.

AVR, 8051 Assembly, C, Make, Circuit prototyping, Soldering iron, multimeter, Signal generator, Oscilloscope

Read report

Temperature Monitor (2017)

Microcontroller controlled temperature monitor using temperature sensor and ADC, serialized output is visualized in Processing.

8051 Assembly, AT89 Microcontroller

Reflow Oven Controller (2017)

Microcontroller powered SMT reflow oven controller that follows a temperature profile.

8051 Assembly, AT89 Microcontroller, Thermocouple, OP-AMP, Soldering iron, Oscilloscope, Signal generator

Read report

Ticker LCD with Music (2017)

First project using AT89 microcontrollers, used memory access, timers, and interrputs to make looping animation and music.

8051 Assembly, AT89 Microcontroller

Simple RISC Machine (2016)

Reduced-Instruction-Set-Computer CPU created using System Verilog HDL. Runs basic OS programmed in ARM assembly.

ARM Assembly, Quartus II, ModelSim, SystemVerilog

SmartRocket Evolution Simulator (2016)


Minesweeper in C (2016)


Rainwater Harvesting System (2016)

Obtaining the best configuration for a rainwater harvetsting system design to maximize user satisfaction.

Microsoft Excel, C

Autonomous Claw (2016)

Arduino powered, custom made alumium chasis, autonomous operation to pick up objects.

Arduino, SolidWorks, Autodesk Inventor, Shop tools

Adaptive Device for Disabled (2015)

Designed guitar picking accessory for the disabled and written technical documentation.

SolidWorks, Autodesk Inventor

Cardboard Chair (2015)

Foldable cardboard chair that supports up to 200 pounds.

Autodesk Inventor

Architecture Project (2015)

Autodesk Revit

Provincial Skills Canada 2015 (2015)

Autodesk Inventor, Precision Tools

Arduino Exploration thumbnail

Arduino Exploration (2014)

Experimented with tinkering and building using Arduino microcontrollers. I made various small projects using photo-sensors, servo motors, speakes, and LCD. I also wrote journals to keep track of my learning progress.

Arduino, C

Microscope CAD thumbnail

Microscope CAD (2014)

Reverse engineered a microscope assembly by precisely measuring the parts and replicating them in Autodesk Inventor in 3D. I also produced standard part drawings and parts list.

Autodesk Inventor, Precision Tools