Skip to content

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.

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.

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.

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.

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 JSON coordinates to our deployment pipeline.