My projects projects

Hover over each tile to read a short description of the project
Click on each tile to learn more about the project

Mars Rover

As an extension to a college autonomous rover project, I sent processed images from an FPGA to a ESP32 using the I2S protocol, before sending it over the network to form a video stream.
The video streaming implementation was designed to use few IO pins and minimal CPU processing on the FPGA, ESP32 and Server and was featured in an article on hackaday. You may view the full details of the project on hackaday.io.

C to MIPS Compiler

A C90 to MIPS1 compiler, written from scratch with ANTLR4 and C++. Passed 189/202 tests (93%).
"Overall this is an exceptionally good compiler that is passing some very hard test cases such as 6-dimensional arrays and sizes of nested structs containing chars and doubles - Very impressive. " - Reviewer's feedback

MIPS CPU & Testbench

Used the Verilog Procedural Interface (VPI) to create a hybrid C++/Verilog testbench capable of testing a high volume of CPU instructions with on-the-fly generated testcaes.

FPGA Multiplayer Game

An online multiplayer game using FPGAs to send commands to an AWS server, with the game displayed on each player's screen.

Design Challenge

Took part in a design challenge to improve the lives of a remote community in Peru. My team and I came up with an implementation plan for hosting an intranet and local database to give residents access to information and useful applications.

Marlin Firmware Contribution

Made a small contribution to the open-source Marlin Firmware project that powers millions of desktop 3D Printers worldwide. Added a feature allowing printers to be locked via the LCD screen or machine commands. This new addition was featured on a popular 3D Printing YouTube channel.

Custom ISA CPU

A 32-bit CPU with a custom ISA optimized for three specific tasks.

Smart Bike Lock

A 'mini startup' project to design any useful embedded product of choice and submit a working prototype and marketing materials. Our team built a smart bike lock that alerts users if their bike is stolen while providing useful data insights for organizations.
"This IoT concept has been designed well with a strong focus on user interaction and scalability. The website and video clearly motivate the product and show it in use. The implementation is good and the embedded code is structured well." - Marker's feedback

Music Synthesizer

An embedded systems project to program an STM32 microcontroller to produce sound while meeting timing constraints