1. The Dev Ecosystem
Before we touch a single line of Java or look at a physical robot, you must understand the toolchain we use to build, track, and deploy code. FRC development is uniquely complex because it relies heavily on offline-capable environments and cross-platform utilities.
1. Version Control (Git & GitHub)
Section titled “1. Version Control (Git & GitHub)”GitHub is the website where our Git time machine is stored. The typical workflow:
-
Pull the latest code from GitHub to your laptop via a
git pull. -
Write your new mechanism logic.
-
Commit (save) your changes using
git commit. -
Push the changes back to the cloud using
git push.
2. Build Systems & Gradle
Section titled “2. Build Systems & Gradle”Unlike standard Java projects where you right-click a file and click “Run,” FRC robots require compiling the Java into an executable and mathematically shipping it securely over a Radio connection to the RoboRIO.
We use Gradle as our build manager. You will exclusively interact with the build.gradle file to manage versions. When you run a command like ./gradlew build, Gradle locally grabs the code, links the libraries, checks for errors, and compresses it.
Vendordeps (Vendor Dependencies)
Section titled “Vendordeps (Vendor Dependencies)”Because FRC robots operate offline (you don’t have internet on the competition field!), standard cloud-based dependency management fails. Instead, WPILib uses .json files wrapped as Vendordeps. These json files command Gradle to download third-party libraries (like Phoenix 6 or PathPlanner) to your local laptop before the match so that you can compile offline seamlessly.
3. The FRC Tool Suite
Section titled “3. The FRC Tool Suite”You cannot code an FRC robot with Notepad. You’ll need the following mandatory software:
-
WPILib VS Code: The official Microsoft IDE heavily modified to support deploying code directly to the RoboRIO via Gradle.
-
The Driver Station: The official application that connects your Xbox Controllers on the laptop to the robot over the WiFi Radio. This is required to Enable/Disable the robot.
-
Phoenix Tuner X: A standalone app by CTRE. Used exclusively for flashing firmware and assigning CAN IDs to hardware.
-
AdvantageScope: An open-source 3D visualizer that parses MARSLib telemetry logs natively into beautiful graphs, field layouts, and robot renders.
-
PathPlanner: An external GUI for drawing autonomous splines on a 2D map of the field layout. It outputs
JSONcoordinates to our deployment pipeline.
📖 Further Reading & External Resources
Section titled “📖 Further Reading & External Resources”-
WPILib “Zero to Robot” Guide - The official foundational pipeline for FRC control systems.
-
FRC 0 to Auto Youtube Series - Outstanding video tutorials exploring command-based programming for novices.
-
WPILib Command-Based Documentation - Deep dive into Subsystem and Command scheduling architecture.