
Not Loading?
If you can see this message for more than a few seconds please view this static page instead
The HMI is mounted on the dashboard of the truck and acts as the primary medium of communication to the driver regarding information from the main unit mounted at the back of the truck. The HMI consists of a custom 2-layer PCB board with two microcontrollers one that handles the wireless communication with the main unit and the other that controls the, 4 push buttons, a speaker, and a 7” display. From mechanically modelling the plastic casing to designing the electrical PCB, to writing the firmware for the two boards I was responsible for all aspects of its development.
HMI PCB
-
Modeled casing to be minimal and ergonomic
-
Created a zone mapping algorithm to project a detected object to one of 12 zones so it could be visually displayed on the HMI
-
Developed button debouncing logic for reliability
-
Result is the driver is successfully able to interpret current system behavior and change system settings wirelessly
Automated Measurement System

What does it do?
This project was developed for automated factory tolerance inspection. I and 3 other group members designed the measurement system for an industrial automation line to perform quality assurance validation on parts without any human interference. The way it works is a part is placed, presumably right after manufacturing, onto the rotary platform, using computer vision the system is then able to rotate the part to the correct orientation to measure a critical dimension. A moving clamp connected to a rotary encoder then shuts on the part using force sensing to automatically stop when it makes firm contact with the part. The rotation of the encoder is then mapped into a linear distance yielding the measurement of the part. Finally, if the part is not within spec, an image of the part along with the dimension in error is logged to a remote server, and a visual notice is displayed on the machine's display.



Testing Custom Communication Protocol
What did I do?
I was fully responsible for the firmware of the project, this involved writing code to control both motors (all system movement), derive object dimensions, user GUI, and custom communication protocol between ESP32 and the main brain (most similar to I2C). I used C++ both to write code for the ESP32 and the main brain. I was also heavily involved with the OpenCV object rotation recognition along with 1 other group member. Here we used Python and relayed the rotation information to the C++ code on the ESP32 via web sockets.
Rocket Airbrakes
Rocket Launch
My Presentation On Airbrakes


​Developed embedded C firmware (STM32), for a custom 4-layer PCB I designed in KiCAD, implementing Kalman filters and PID controllers to precisely manipulate aerodynamic surfaces which protruded out of the rocket body (Airbrakes). My board design increased power efficiency by 29% compared to it's predecessor and integrated an on board IMU over I2C. This board and firmware flew on Canada's first liquid rocket and resulted in the rocket reaching 1,500 ft closer to it's target apogee than it would have otherwise.
​
I also worked completely independently on the mechanical design of the airbrakes in Solidworks and worked with a peer to simulate aerodynamic effects of the Airbrake panels on the rocket in Ansys.
​
Currently working on canards to control the roll of the rocket.
Welcome
Welcome to my website, here you can find all the info you need about me! From projects, to work experience, this website has a lot, so feel free to hop around. I have shown off 5 projects here, but 20+ projects can be found in the projects section! If you don't see something you need, feel free to contact me.