7-state EKF sensor fusion firmware, PCB, and simulation for UBC Sailbot's heading system. C++23, FreeRTOS, RP2040.
Autonomous robot built for UBC Engineering Physics' 2025 Pet Rescue competition.
A custom 8-bit computer designed from discrete components.
Fork of easyeda2kicad.py with fixes for API reliability, used to populate my personal KiCad library.
YOLO-to-ASIC pipeline and glasses-control PCB from a sailbot-sponsored hackathon.
Trained a custom LLM and integrated it as a discord bot.
A robot trained to read signs with OCR and drive an obstacle course with IL and other ML techniques.
RP2040-based wireless IR communicator with LED matrix, capacitive touch, USB-C, and LiPo charging.
Control circuit for a servo with speed feedback and PI control.
Non-destructive Wi-Fi-controlled dorm room light switch using ESP8266 and custom mount.
Flake-based NixOS configuration managing a ThinkPad, a Pi 4 media server, a Framework server, and an OpenWrt router from a single repo.
Simulation-based test harness for KiCad. DRC checks manufacturability, ERC checks wiring, KiTest checks intent.
Frequency discriminator bring-up and laser linewidth measurement on a silicon photonic chip.
Ultrasonic phased-array transducer board with custom power tree, H-bridge driver, and RX amplifier chain.
RISC-V CPU designed with Verilog. The successor to my 8-bit computer.
An open-source electronic speed controller with firmware written in Rust.
Communication firmware and embedded systems work for UBC Sailbot's autonomous sailboat Polaris.
UBC Submarine Design Team builds a human-powered submarine for international races.
Backyard foundry to melt down aluminum cans.
Visualizing ionizing radiation at home.