High School Projects

This page contains some of my highschool projects throughout high school! A lot of these are fundamental projects that helped me apply the general basics of programming that I've learned, taking something new and completely adapting and building upon it!

GIF TFT Cycle Project July 2023

Task: Use a TFT Display to display and cycle through 3 different GIFS with a button

Goals

  • Understand how Images Display / Render (Used image to C command line tools)
  • Get use to using display libraries for TFTs
  • Expirement with what I can do by adding a button scroll function for the GIFs

Key Components

  • Adafruit ESP32-S2 TFT Feather

Docs/Code

Final Thoughts

Although the code is very messy, I learnt a lot about the process of looking at uknown libraries and figuring out how to use their interface.

Two things I would do better going back:

  • Clean up the code and make it wayyy more readable
  • Tie the button press switch to an interrupt pin instead of polling it in the loop

The loop polling works, however, there is a slight delay when pressing the button to change the image.

TFT display cycling through GIFs with button control
Rhythm Game Controller Build September 2023

Task: Build a budget friendly rhythm game controller (The usual ones average around $188!!)

Custom rhythm game controller in action

Goals

  • Understand the electronics behind a controller
  • Understand button interrupts and debouncing
  • Understand how a rotary encoder works and how can be used to move mouse position for software with a microcontroller
  • Alter and mess around code to get controller to have a mode switching function for different software's reading input
  • Fully build and execute first big project!

Skills Learnt

  • Soldering
  • How to Crimp + Learn what is a Daisy Chain

Key Components

  • Arduino Leonardo
  • No Detent Rotary Encoders x2
  • Beatmania Arcade Buttons (Repurposed)
  • SDVX DIY Knob

Docs/Code

Final Thoughts

This was one of my most favorite projects since it was the first biggest step I had ever taken toward building and working with custom hardware. I was so scared that I would have purchased incompatible parts, or I would mess up the soldering (which I did do a few times), and would never finish this project. However, after a lot of trial and error, I managed to get everything working and it was such a rewarding experience!

If I were to go back:

  • Would have used wire crimps instead of alligator clips. The fact that I used alligator clips is silly (made wiring a mess), but was worried I would do something wrong with crimps. Thankfully comfortable with using them now
Quaver Achievement Fetch on TFT (API) December 2023

Task: Tft display that fetches rhythm game data from Quaver API and displays my achievements.

TFT display showing Quaver API achievement data

Goals

  • Understand what an API is
  • Understand how to use APIs from a specific source (POSTMAN)
  • Understand how to use WiFi on an ESP32-S2 to fetch this data
  • Understand TFT refreshing and getting more comfortable with the display library

Skills Learnt

  • API usage and WiFi basics for microcontrollers

Key Components

  • Adafruit ESP32-S2 TFT Feather

Docs/Code

Final Thoughts

These skills definentely became critical in later projects where I needed to fetch data from other interfaces such as AdafruitIO and local servers. I also got more comfortable with the TFT display library and how to render text on the screen.

If I were to go back:

  • With the experience now, I would've messed around a little more with the TFT display library and get my username and profile picutre to display on the screen as well (I was having trouble with this at the time)
  • Would've handeled the screen referesh better. When fetching data from the API, the number is blacked out on the screen. I would have waited for the API to first recieve data before refereshing the screen so the screen doesn't have to empty itself first.
CodexScope Learning Board January-March 2024

Task: Develop a learning board for microcontrollers and TFT displays

IMPORTANT: This project was not fully finished, however it was useful in figuring out content for CircuitCharm and teaching electronic basics while also reviewing my current understanding of electronics. CodexScope learning board manual page

Goals

  • Understand how I would want to learn electronics if I could start again to develop a good learning device
  • Design the device
  • Make a manual laying out how to use it

Key Components

  • Raspberry Pi Pico WH
  • TFT Driver Board
  • Large TFT Display
  • Piezo Buzzer
  • Arcade Button

Skills Learnt

  • A tiny bit of OnShape for Cases
  • EasyEDA and PCB design process (BASICS)
  • C++ File Application for I/O Sensors

Docs/Code

Final Thoughts

Although I didn't get to finish the full project and manual, the experience gained helped me format some of the curriculum for Tech Club and CircuitCharm.

Two things I would do better going back:

  • Create a more organzied project plan (was kind of figuring it out as I go)
  • TFT screen got cracked twice through travel, stopped the project after since cost for part is high and was a large time time setback.

If I were to continue this project:

  • Complete the interactive software tutorials on the TFT display
  • Add more sensor modules and expansion options

Photo Gallery

SkillTree Management System June 2024

C++ terminal script. Sample version uses JS and manages tasks randomizing the selection of uncompleted tasks.

NOTE: The simulation version doesn NOT run off of original C++ code Original runs off of Replit under a simulator enviornment.

Features

  • Task dependency management (prerequisites system)
  • Random task selection by category
  • Progress tracking and completion marking using a saving and parsing system on a saveState file.
  • Categories: Projects, Skills, Studies, Workout

Skills Learnt

  • Application of OOP from Computer Science A class
  • Basics on how file saves work and how data is parsed

Technologies Used

  • C++
  • JS (Web Simulator)

Docs/Code

SkillTree management system diagram with task categories
SkillTree Terminal
SkillTree Prototype Ready!
skilltree$

How to Use

Available Commands:

  • help - Show all available commands
  • list - Show all available tasks
  • roll [projects] [skills] [studies] - Get random tasks (e.g., "roll 2 1 1")
  • done [task_name] - Mark a task as completed (browser version does not store memory)
  • clear - Clear the terminal output

Example Usage:

  • Type roll 2 1 1 to get 2 projects, 1 skill, 1 study task, and a mandatory workout type
  • Type done Github And Git to mark a task as completed
  • Completed tasks won't appear in future rolls

Note: This is a simplified prototype. For the full version with file-save based storage with task tracking, visit the GitHub repository. Original code worked on terminal on replit, however since Replit moved to a premium service for publishing, the working version is not able to be used without me paying for a subscription.

Project Architecture

This prototype demonstrates:

  • Random task selection by category
  • Clean command-line interface design

Full Version Features:

  • Object-oriented design with Task and SkillTree classes
  • Task dependency management (prerequisites system)
  • Persistent progress storage using txt file storage
HackNight Project Pomodoro Quest June 2024

Prompt: Life often requires us to juggle side quests alongside main objectives. Create a project that emphasizes one of these "side-quests". Context: 60 people competition in BB&N with teams of 2-4. This was a 24 hour competition.

Close-up of hackathon project setup

Goals

  • Brainstorm ideas for prompt
  • Create a project plan (What both of us should priortize)
  • Crllect (teamate) -> App Dev for interface with hardware timer
  • Me -> Hardware project dealing with recieving time from app, displaying it, and indicating end
  • Develop protocol to communicate between app and hardware controller through Adafruit API

Skills Learnt

  • Messed around with different ways and protocols to communicate from controller to app Tried serial and a few different ways to communicate time
  • First team project for engineering! Met some really cool people and made a new friend!

Key Components

  • Adafruit ESP32-S2 TFT Reverse Feather
  • Adafruit IO API

Docs/Code

Final Thoughts

This was a really good capstone project for skills built up from microcontrollers with APIs, TFT display graphics, and timer/millis functionality. When went to Boston for this hackathon got really inspired by others and like minded interested high schoolers!

If I were to go back:

  • I originally was trying to get the project done with USB data transfer (Serial), however getting it to work with the app itself when talking with crllct was a pain to handle in the moment. Would've skipped this part and gone straight to bluetooth to have more time for other features.
  • After Serial shenanigans, did not have time to implement bluetooth functionality (more realistic for users with multiple devices), so going back would have definently focussed on that.
  • Going back with bluetooth, would have also convinced Crllct to build app in using Expo Go so we could use bluetooth between app and server easy.

Photo Gallery

Confetti Popper Launcher - Tech Club Fair Project July 2024

Idea: Build a confetti popper launcher for the Tech Club Fair to attract people to the booth. Context: Built for Tech Club Fair to attract people to the booth to sign up.

Confetti popper launcher with string mechanism

Goals

  • Design and build a confetti popper launcher
  • Utilize drill motor for pulling mechanism
  • Build a timer display app that can communicate with raspberry pi GPIO pins
  • Use Flask for app backend communication on localhost
  • Code CPP file for triggering GPIO pins
  • Code LED blinker to draw suspense and attention Using a bit of math!

Skills Learnt

  • Electron JS basics
  • Some CAD used OnShape
  • Flask basics Concept of server and localhost
  • Raspberry Pi GPIO pin control
  • Some Linux for permission requirements

Key Components

  • Raspberry Pi 4B+
  • PVC Pipe
  • 3D printed parts
  • Drill Motor
  • Computer Monitor
  • Light-Bulb and a few Relays

Docs and Code

Docs have all code explained!

Final Thoughts

Such a fun project and definently drew a lot of attention to the Tech Club booth and got 25 signups! Was happy I got to apply some math, learn about servers and step into ElectronJS for the first time.

If I were to go back:

  • Definetly would've designed a better mechanism for pulling the confetti poppers. The drill motor worked, however it was a bit janky since the pvc pipe spinner was not stable at all.
  • Now with some Physics knowledge and calculations would have calulated the torque the drill could pull so could have a little more consistency and smoothness with the pulling.

Photo Gallery

MetroTag MIT Blueprint Project March 2025

Idea: MetroTag is a real-world game of tag using GPS locations. Players can be either taggers (who chase) or runners (who flee), and they use their mobile devices to track each other's positions. Context: Built for MIT Blueprint Hacakathon 2025 on a team of 4 within 12 hours. Credits: Adao(me), Crllct, Artificer, RamK (Discord and Github Handles)

MetroTag mobile app interface showing game lobby

Goals

  • Redesign tag, but make it city wide.
  • Have an arrow pointing interface for tagger to track runners
  • Have a distance from tagger function for runners
  • Have create and join game functionality
  • Figure out how to give angle bearing for runner location
  • Code a GPS Map to track all players in a game

Skills Learnt

  • Expo Go basics
  • Bearing Latitude and Longatude Calculation
  • Flask setup for lobbies
  • GPS Tracking with LeafletJS

Key Components

  • iPhone or Samsung Phone

Docs and Code

Docs have all code explained!

Final Thoughts

Completely new experience workign with mobile app development and using a lot of JS and python in Flask. Although we had a bunch of git merge errors, 2 coding beginners, and a lot of fights, we eventually made up and go to work really well together!

If I were to go back:

  • Would have started with Flask server at first. Took a long time trying to use another service.
  • Know how to handle git merge conflicts from the start.
  • Add some cool powerup features around the map along with a border area.

Photo Gallery

LockApp WIPJuly 2025

Idea: Create an app along with program a microcontroller to completely lockdown phone when button is pressed. This means no exiting the app at all.

Locked Demo

Skills Learnt

  • Android Kotlin Basics
  • XML Files and phone permissions
  • Learn XML Files and phone permissions
  • Bluetooth Server Hosting + Characteristics between Microcontroller and Phone App

Key Components

  • Adafruit Qualia ESP32 with TFT
  • Android Phone with Dev Permissions Enabled

Docs/Code

Final Thoughts

Learning about permissions, making something that I actually still use daily, and implementing a bluetooth server was fun! I am working on adding a tracking subsection with specific categories like subjects for tracking time spent.

If I were to go back:

  • Honestly might redesign the whole app with new knowledge on Kotlin since I was learning through the process. Some parts are messy.
  • Make a way nicer UI on both phone app and Qualia TFT
  • Whole subject time tracking system on the app

Photo Gallery

Cookie Buzz Game - Tech Club Fair Project August 2025

Idea: Create a simple two player buzzer game for the Tech Club Fair to attract people to the booth. Winner gets a cookie! Context: Because of a hectic week, ended up building this in about 4-5 hours night before. Was fun!

Locked Demo

Key Components

  • Raspberry Pi 4+
  • Monitor
  • Arduino Leonardo
  • Two Arcade Buttons
  • Relay(For vibrating buzz box)

Docs/Code

lost when resetting raspberry pi :(

Final Thoughts

Wish I could've done something bigger, however still fun to build something quick that was a little different. 25 signups achieved again!

If I were to go back:

  • Definetly would have given myself more time to add sound effects, cooler UI, and a more complex game.

Photo Gallery