This is a catalog of nearly all of the projects that I have completed to date. You can click on the images for some of the projects to be directed to relevant resources.
This script was last run at Wed Feb 28 19:25:48 UTC 2024
July 2023 - Infinity (apparently)
Competing in FRC robotics taught me about the wonders of CAN networking, I decided that I wanted to learn more about it in vehicles. Following the failure of the fuel pump wiring in my dad's car I wanted to see what I could do to make cars more reliable. To that end, I purchased a 2.4L 2012 Chevrolet Malibu with engine and frontend damage of the from a local car insurance auction for $700. After fixing up front end of the car and repairing the engine, I began reverse engineering all of the onboard communications. It has been happily serving as a test platform for my automotive mechanations and car hacking. The end goal of this project is to find a way to implement preventative maintainance algorithms into passenger vehicles and to analyze driving habits in the persuit of improving fuel economy. It is a work in progress and I plan it to take ~1 year to complete it. I am also daily driving this vehicle, it is a valient chariot. More updates to come...
I purchased a new group of five servers extremely cheaply for an e-waste sale. I wanted a good way to store them so I built this rack out of modular aluminum bars I got for free from the frame of an old piece of automotive test equipment one of my dad's friends was getting rid of. It looks much nicer than the previous pile of equipment on the ground, is able to be easily moved around and gives me a nice surface to work on when I am managing my servers. All the servers are networked together and run ProxMox. They are used to host my website, personal games servers as well as run compute jobs when necessary.
Back Scatter Radio System
February - June 2023
I heard about the use of backscatter radio to measure soil quality metrics and transmit them to a base station. I was interested to see how that could work so (in the thick of robotics season) I decided to work on a backscatter radio system that could work with standard FM radio. I created this device in order to selectively reflect or absorb the signals coming from an FM radio station and induce an artificial tone into the signal. It worked alright, although I believe that the use of a dipole antenna severely limited the performance of the device and made it only work at an extremely short range. Interestingly, I was able to determine the direction of a radio tower pretty accurately by rotating a radio reciever around the backscatter antenna and taking note of where the induced tone was the loudest and where it was the weakest.
2.4ish GHz Radar System
September 2022 - July 2023
Over time I have worked with many different sensors for different projects. Among these sensors one type, the distance sensor, has always remained my favorite. Within the realm of distance sensing, one sensor was always enticing to me, the holy grail of distance sensing, the radio detection and ranging (radar) sensor. In accordance with my desire to work with one so I set out to build my own. It taught me loads about PCB design, RF technology and electronics.
May 2023 - May 2023
I had a few upcoming projects that I needed to do some basic welding on so, instead of spending money on a welder, I made this arc welder out of 2 microwave transformers. It works pretty well, it has power adjustment, a voltage meter as well as a nice, relatively safe housing. I have done some basic welds with it and it works pretty well, hopefully it doesn't kill me...
July 2022 - September 2022
In order to learn more about ray tracing and high performance APIs I decided to work on a Vulkan based games engine. It is written in C++, Bash and GLSL. As of writing this it has almost all features needed to make it capable of supporting a simple 3D game or simulation. Eventually I would like to use it to create my a 3D application or game but once I finished the engine I became somewhat bored with the project and wanted to move on to other things. Perhaps one day I will return to it and make something like 3D tetris.
July 2022 - September 2022
I had an old quadcopter lying around that was missing a flight controller. I decided to try to build my own out of a pwm controller, a Raspberry Pi and an IMU made up of a gyroscope, accelerometer and a magnetometer. I started this project in order to learn about real-time Linux and become proficient with it. My end goal is to have a simple flying quadcopter whose code runs entirely in the Linux userspace. Currently it uses preempt-rt as the realtime implementation and it runs on a custom version of buildroot.
SMD Soldering Plate
August 2022 - August 2022
I made this SMD soldering plate in order to solder very small SMD electronics for a project I am working on. Its cost of production was a whopping $7 for the cheap thermocouple that I used. Everything else, including the relay, was garbage that I found at various establishments. Update as of July 2023: I was working on a board for my car project and the soldering plate literally exploded setting a PCB on fire and filling my basement with toxic fumes. Suffice it to say I no longer recommend building something like this and I have removed the instructions regarding how to build it from my website. I suppose you get what you pay for.
FRC Robot programming demo
I made a small online IDE for a local outreach event for my robotics team and my schools computer science honors society. In order to work it has to bridge the gap between lots of different technologies, it's code base is made using three different programming languages and has to transfer data between multiple different network appliances. Despite all of the different moving parts that need to work together, it all works incredibly well.
Blockchain Aircraft Management
One of my friends told me that he was doing a hack-a-thon called GunnHack, I had nothing better to do over the weekend that it was happening so I decided that I would take part in it as well. I wanted to learn more about how blockchain technology worked so I decided to read about and implement a block chain during the 24-hours of the competition. I didn't want to do a cryptocurrency though because A) it would have been too complex to complete in 24 hours and B) it has already been done about a million times. I set out to try to use blockchain to keep track of air-plane parts instead. By the end of the contest the program I made worked flawlessly, but I didn't win anything. Personally, I thought my project was much cooler and more applicable than "wordle-solver" (the project that did win), but what do I know?
December 2021 - January 2022
For my 10th grade International Baccalaureate personal project I created a WiFi based tracking device in order to collect data about movement patterns in my school. It worked pretty well, being able to guess the location of a device to within 1-2 meters most of the time. Sadly, part of the agreement with the school was that I did not retain or aggregate any of the data that I collected during the project in order to "maintain the privacy" of the victims...I mean participants in my experiment.
Mustang Cooling Fan Controller
May 2021 - June 2022
My cousin has an old Mustang car with a mechanical AC system in it. He wanted it to be more automatic and efficent so I built this device for him. The device takes in readings about AC pressure and oil temperature inside the engine and makes a decission about whether or not to run the engine cooling fan based on that data. It was an interesting forray into embeded electronics.
Meraki Camera Video Wall
In this project I worked with the Cisco Meraki API and RTSP video streams in order to create an app (using Python) that could form a custom video wall consisting of up to 16 MV camera feeds. Among other features like taking/viewing screenshots (from the cameras) and seeing single camera full screen video feeds. Originally I wanted to display this software on my TV running it using a Raspberry PI but sadly the PI 3 I had issues downloading OpenCV so that never came to fruition.
Created for a school project this NodeMCU Amica powered miniature house incorporates many smart home features. The house included a toggleable wind turbine, a toggleable lamp, and a motion activated security system among other things. Viewers of the house could connect to a wireless SSID hosted by the Node MCU and control the features mentioned above and the state of the security system (armed or not). Although not my most impressive project, it was a hit among teachers and students alike.
P4wnP1 ALOA USB Drive
P4wnP1 ALOA (A Little Offensive Appliance) is a modified version of Kali Linux designed to run on the Raspberry PI 0 W. The device I created is runs a version of PwnP1 ALOA and can be used to first gain control of a target PC then attack it in various ways such as installing a key logger or remotely access a terminal on the target via SSH. Combined with a mini SPI OLED screen, navigation buttons and an EPIC Neo Pixel RGB led bar (because everything needs RGB) it makes for a deadly device (it's too bad the buttons suck or I might actually use it more often.)
Hacked Wireless AP
At some point I acquired an old wireless access point. I didn't have much use for it at the time so I decided to take it apart. Since this wasn't an industry rated access point I figured that it probably runs some sort of poorly secured ARM Linux. With that I cleaved off the side of the device with a Dremel and started searching for a serial port. After a few weeks of work I finally gained a root Linux shell on the device. I even was able to move files on and off of the access point using an onboard USB port. I also tried to mine Ethereum on the device, although sadly that didn't work.
Cat Detection Program
In order to combine my knowledge of machine learning and web scraping I created a program that would scrape google images for pictures of animals then it would build a machine learning model that would be able to detect if a photo had a cat in it or did not. I wrote the program in Python using the Tensorflow Keras deep learning framework for the machine learning cat detection algorithm. I used the Selenium web driver for scraping of the photos off google images.
Witten Number Detection
Interested in the detection of visual things after my previous project, I decided to try my had at machine learning. One of the more common project is to use the MNIST database (learn more about the database here) of written numbers to create a machine learning model to detect written numbers. I was successful in this journey and ended up with a program that could successfully detect 20x20 images of written numbers
Facial Detection Algorithm
In November of 2017 I first became interested in machine learning. I didn't know much about it then and the method I implemented in this program was one of the first I learned (ironically it wasn't really machine learning, more pattern matching.) This program used a database of photos of certain people and compared patterns in their faces to patterns in a video feed (or still picture.) Although it was very inefficient and not very accurate I thought it was cool at the time and it served as a good learning experience for me.
Many Small Projects
2015 - November 2017
During this time I did not take on any large programming projects. Instead I took on lots of small, learning, projects in order to improve my skills. Even though I did not accomplish anything earth shattering during this time, I would say that I learned the most about OOP and other big programming concepts during this time.
As my second foray into programming I decided to re-imagine a classic game, Pong. This game was a pong game where not only would you have to bounce the ball back and forth you could shoot missiles at the other paddle to disable it for a certain amount of time. Looking back at it the game was boring and unfair but when I created it I thought it was impressive and I had fun making it.
Seed was a small maze game with two different levels was my first ever programming project. A that time I really liked the "seed" character from Khan Academy (for some reason... leave me alone I was in 3rd grade) so I used it as the character for the game. Sadly, like many of my early projects I have no photos or the original code to the game.