Verilog Platformer

Here is a video game programmed in Verilog running on a Basys3 FPGA device. Where the objective is to jump (via the physical buttons) and catch the yellow flying squares to get a point. The physical 7-segment display on the FPGA reflects the current score. The VGA video output (H-sync, V-sync) utilizes a counter for each pixel.

Gyro Bluetooth Mouse

Using an ESP32 and its ESP-IDF framework, I used the accelerometer's readings and set certain thresholds of tilt to determine the speed of the mouse -- allowing very precise movements. Since its bluetooth, it can be paired with a bluetooth-enabled computer.

End-to-End Wildfire detection IoT system

PDF paper

In my captsone course (group of 3), we connected three sensor-equipped Raspberry Pi’s (RPi) via Ad-Hoc in both a Polling and Token-Ring topology. The sensors measure wind-speed, relative temperature/humidity, and soil temperature/humidity. Sensor data is sent to a MySQL database hosted on a local computer, that also hosts a website displaying current Wildfire risk and plots for each RPi.

Distributed Computing Multi-threaded Password Cracker

Wrote in C++ a password cracker, where the hashes to crack are distributed across three network computers and their threads, greatly speeding up cracking compared to asycronous processing. Each computer runs the same source code, and uses one thread to crack each hash. Cracker function was given.