Felo Mousa
Computer Engineering

👋🏼👋🏼 I'm a Computer Engineering student at Simon Fraser University. I like building things where software meets hardware: FPGAs, embedded systems, you name it. Let's connect!

Education
Bachelor of Applied Science — Computer Engineering Expected Jan 2028
Simon Fraser University, Burnaby BC

3.36 GPA · 4x Dean's Honour Roll: Fall 2024, Summer 2025, Fall 2025, Spring 2026

Relevant coursework
  • ENSC 351 — Embedded & Real-Time System Software
  • ENSC 254 — Introduction to Computer Organization
  • ENSC 252 — Fundamentals of Digital Logic & Design
  • ENSC 350 — Digital System Design
  • ENSC 452 — Advanced Digital Systems
Projects
FPGA-Based Sonar Jan – Apr 2026
Zynq-7000 SoC, ZedBoard

Real-time dual-core sonar system that sweeps an ultrasonic sensor via a stepper motor, acquires (angle, distance) pairs, and renders them as a sweep animation over VGA.

  • Custom AXI4-Lite IP core in VHDL for stepper pulse generation, exposing PS-configurable registers for step rate, direction, and status
  • Partitioned across both ARM cores: sensor reading, motor control, and interrupt servicing on Core 0; sweep state machine and VGA rendering on Core 1
  • Lock-free inter-core communication via a seqlock in shared OCM, allowing the rendering core to take coherent snapshots of (angle, distance) samples without blocking acquisition
  • Non-blocking driver state machines for the ultrasonic sensor and I2C ADC, preventing stalls in the acquisition loop and timing-sensitive audio output
Embedded C/C++ · VHDL · Vivado · Vitis · Interrupts · AXI4-Lite · I2C · UART · Multi-Core
CNC Pen Plotter Sept – Dec 2025
BeagleBone Y-AI

A 2-axis pen plotter that parses coordinate files and physically traces vector drawings using two NEMA 17 steppers for X/Y positioning and a servo for pen lift, driven by a multithreaded pipeline.

  • Plotting pipeline that streams coordinate commands, clamps each against axis bounds, then dispatches X/Y targets to motor threads and synchronizes on completion
  • Each axis in a dedicated thread with mutex-protected command queues and condition variables, allowing X and Y to step in parallel rather than sequentially and reducing total travel time by up to 50%
CNC plotter in motion
C · Multithreading · Mutex Synchronization · GPIO · SPI · I2C · PWM · Linux
Transparent Ethernet Bridge Jan – Mar 2026
RP2350

Inline two-port Ethernet bridge with dual W5500 controllers, forwarding raw L2 frames between two nodes.

  • Register-level W5500 driver from scratch over a shared SPI bus, handling link bring-up and MACRAW configuration
  • Interrupt-driven forwarding path with a drain loop, preventing frames queued during a transfer from stalling
Embedded C · SPI · W5500 MACRAW · Interrupts
HUB75 RGB LED Matrix Controller Dec 2024
DE10-Standard FPGA

VHDL driver for a 64×32 HUB75 RGB dot matrix display, handling row addressing, pixel shifting, and refresh timing over GPIO.

  • 4-state FSM sequencing shift, latch, and output-enable signals to meet the panel's strict timing requirements
  • 1/16 multiplexed row scanning, validated on a physical panel without visible flicker
  • Timing and FSM behaviour verified with ModelSim testbenches
HUB75 RGB LED matrix controller
VHDL · FSM · Quartus Prime · ModelSim
Parking Space Availability Dec 2023
Raspberry Pi 4

Camera-based parking occupancy detector using a Raspberry Pi NoIR camera that processes a live feed to identify open stalls under varying lighting and weather conditions.

  • Vehicle detection pipeline using Gaussian blur and contour analysis to isolate cars from the camera feed
  • Adaptive thresholding to adjust detection sensitivity across changing lighting and weather conditions
Parking stall detector
Python · OpenCV · Image Processing