Projects


CTHULHU Project Board

Cancer-Targeting Hyperspectral Ultraprecise LASER Handling Unit (CTHULHU)

Second Place EECE Capstone Winner A 6-person capstone project created for Northeastern’s Spring Lab and Embedded Systems to create a data pipeline that quickly processes 32-channels of photometric data from a brain cancer-probing LASER while simultaneously controlling it. The system uses an AUBoard-15P to process the channels from a custom oscilloscope board connected via LVDS connection, which it sends to a host PC over a PCIe DMA.

For this project, I designed and programmed a high-level C++ firmware library to abstract the AXI4-S data stream and ADC’s SPI initialization sequence so it could be used by Northeastern’s Embedded Systems Lab. I also implemented a PCIe interface on the FPGA that processes frames of 32 channels of ADC data from a custom oscilloscope board and sends them to the host PC through AXI4-Stream protocol and receives control data from the host PC for a piezo motor-controlled LASER.

Download - CTHULHU Final Report

FPGA Audio Mixer Block Diagram

FPGA-Based Audio Mixer

A hardware-based audio mixer built with an AUP-ZU3 Zynq FPGA. The Zynq processor runs python code to pack 8 stem files in wave format into a single AXI-Stream of audio samples. That is streamed to the fabric, where a module programmed using Vitis HLS mixes the stem files together based on which on-board switches are on and applies audio compression and limiters to ensure there isn’t distoration that occured during mixing. The final audio stream is outputted to the on-board audio codec using an I2S transmitter. Example with one stem streamed through the fabric:

Example with two stems mixed together in-fabric:

Stems obtained from Jamie Paige under Creative Commons BY-NC-SA license

Starship Theremin

A theremin instrument that is internally powered, has a built-in speaker for use anywhere, and changes lights in a constellation based on the theremin’s volume. Programmed in C++ on an Arduino Uno with a modified theremin PCB. The enclosure was created in Fusion 360 to house the battery, Arduino, and theremin PCB, and to expose the dials and antennas.

First Robotics Scouting App

An app for First Robotics Competition teams to gather extensive data on opponents during a match and generate QR codes that can be shared with a central phone to coallesce data and analyze it in an environment absent of Wi-Fi. I programmed the app in Flutter for cross-platform use and it was used extensively by teams 1360 and 1218 to help bring both teams to Worlds.

A Day in the Park

A social game created for the Stay Safe! game jam. Created in Unity and programmed in C# over the course of two days, the game uses an AWS DynamoDB to store messages published by players and then display them on an island in space. The game won 7th place for mood, 12th place for creativity, and 21st place for innovation out of 250 submissions.