

A chronicle of my two-year journey with VEX Robotics Competition Team 2813B NOVA. This project details our team's evolution through two competitive seasons, highlighting the growth in mechanical design, programming sophistication, and the invaluable lessons learned from the engineering process.
2022-2024
Lead Developer & Designer
C++ (PROS, LemLib), Fusion 360
For two years, I was the Lead Programmer and Designer for VEX Robotics Competition (VRC) Team 2813B NOVA. This project is a reflection on that journey—a story not of trophies won, but of invaluable lessons learned. It tracks our evolution from a rookie team navigating the fundamentals to a seasoned squad engineering complex solutions. Spanning two distinct VRC seasons, "Over Under" and "High Stakes," this experience was a deep dive into the iterative cycle of design, build, test, and fail. It taught me that in engineering, true success is measured by growth, resilience, and the relentless pursuit of a better solution.
Our first year was a trial by fire. The game, "Over Under," involved maneuvering "Triballs" into goals and elevating our robot on a bar at the end of the match. As newcomers, our focus was on the fundamentals.
We started with an H-drive chassis for enhanced agility, a simple roller intake to collect Triballs, and a catapult for scoring. This season was also our first encounter with pneumatics, which we used to deploy a hanging mechanism. Integrating this new system was a significant challenge, involving countless hours of troubleshooting air leaks and optimizing piston force. The design was functional, but our competition experience revealed its limitations in durability and efficiency.
My programming approach was as foundational as our robot. I wrote everything in a single main.cpp file using VEX's standard C++ environment. The autonomous routines were built on "dead-reckoning"—relying purely on timed motor movements and preset turn angles.
This method quickly proved unreliable. Minor variations in battery voltage, floor friction, or initial robot placement would cause cascading errors, leading to inconsistent performance. I implemented a basic P (Proportional) controller to help the robot drive straight and a PD controller for more stable turns. While these were significant improvements, they were merely patches on an inherently flawed system. We were treating the symptom, not the cause.
The biggest lesson from "Over Under" was clarity. We now understood the gap between a robot that could work and one that could perform reliably under pressure. This understanding became the blueprint for our second year.
Armed with the lessons from our rookie season, we approached "High Stakes"—a game centered on collecting and scoring rings on mobile goals—with a completely new philosophy. Our goal was no longer just to build a robot, but to engineer a robust, maintainable, and predictable system.
The most significant change was a complete overhaul of our software workflow. I migrated our codebase from the standard VEX environment to PROS (PROS for V5), a more powerful and flexible development environment.
This move unlocked three critical improvements:
main.cpp structure and re-architected the code into distinct, modular subsystems (arm.cpp, intake.cpp, chassis.cpp). This made the code cleaner, easier to debug, and allowed for parallel development.Our robot's design reflected this new maturity. We opted for a robust 6-motor tank drive for superior defensive capability. The intake was redesigned into a "Counter Roller" system to handle rings more efficiently, and the arm was built as a stable four-bar linkage, controlled by a fine-tuned PID loop to ensure fast and precise movements. Every mechanical decision was a direct answer to a problem we had faced the previous year.
Although we never stood on the podium as champions, my two years with 2813B NOVA were an unparalleled success. The journey taught me more than any victory could have. It was a hands-on education in the engineering process—a constant cycle of confronting problems with creativity, rigor, and teamwork.
Technically, I evolved from writing simple scripts to designing and managing a complex software architecture. I learned that robust systems aren't built on clever hacks, but on sound principles like modularity, feedback control, and versioning.
More profoundly, I learned how to function as part of a dedicated team. I learned to find motivation in setbacks, to debug a faulty mechanism minutes before a match, and to collaborate on strategy with alliance partners I had just met. This experience was the beginning of my journey in engineering, and it has equipped me with a mindset of persistent problem-solving that I will carry into all my future projects.
A heartfelt thank you to every member of Team 2813B NOVA. Our shared passion and perseverance turned challenges into opportunities for growth. I am also deeply grateful to our mentors and coaches, whose guidance was instrumental in shaping our team and my own development as an engineer.