This quickstart walks you through obtaining the REBUILT 2026 source code, building it locally, running it in the WPILib simulator, and deploying it to a physical RoboRIO. It also covers the optional Gradle build properties and what to verify on SmartDashboard after a successful deploy.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/robototes/REBUILT2026/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before you begin, make sure the following are installed and available on your development machine.| Requirement | Notes |
|---|---|
| JDK 17 | WPILib bundles its own JDK; alternatively use any JDK 17 distribution |
| WPILib 2026 | Install via the WPILib installer — provides Gradle toolchains, VS Code extension, and simulation GUI |
| VS Code with WPILib extension | Recommended IDE; the extension adds build/deploy/simulate commands to the command palette |
| RoboRIO with 2026 firmware | Required for on-robot deployment; team number must be 2412 (or match .wpilib/wpilib_preferences.json) |
If you only want to build or simulate locally, you do not need a physical RoboRIO. The WPILib simulation GUI (
simgui) launches automatically when you run simulateJava.Steps
The repository root contains
build.gradle, vendor dependencies in vendordeps/, deploy assets in src/main/deploy/, and the WPILib project metadata in .wpilib/wpilib_preferences.json (team number 2412, year 2026).Open the cloned folder in VS Code. The WPILib extension detects the GradleRIO project automatically and populates the WPILib command palette (Ctrl+Shift+P → “WPILib:”).
Alternatively, import the project into any IDE that supports Gradle by pointing it at the root
build.gradle. The project uses sourceCompatibility = JavaVersion.VERSION_17.This compiles all Java sources under
src/main/java/, runs the generateBuildInfo task (which writes a build-info.txt file with the current git hash, branch, and commit message into src/main/deploy/), and packages everything into a fat JAR via the jar task. Vendor library JNI binaries are bundled into the JAR so it is self-contained for deployment.The default main class is
frc.robot.Main. Passing -PautomatedTest=true switches it to frc.robot.test.AutomatedTestMain (see Build variants below).The simulation task launches the robot code in a desktop JVM with
-Xmx2G -Xms2G heap settings (configured in build.gradle). The WPILib simulation GUI (simgui) opens automatically because wpi.sim.addGui().defaultEnabled = true is set in the build file. A virtual DriverStation window is also available via wpi.sim.addDriverstation().In simulation,
RobotType.TYPE is always RobotTypesEnum.SIM and Robot.isSimulation() returns true. The SimWrapper is instantiated and simulationInit() automatically zeros the hood (subsystems.hood.zero()).During simulation you can inject odometry drift (POV-right on the driver controller) or reset the robot to the selected auto start pose (POV-left) to test vision correction behavior.
High-fidelity vision simulation can be enabled by passing
-PhighFidelityVision=true to the simulate task. The highFidelityVision system property is forwarded to the JVM automatically.GradleRIO reads the team number from
.wpilib/wpilib_preferences.json ("teamNumber": 2412) and connects to the RoboRIO over USB or the team’s network (10.24.12.x). It uploads the fat JAR as an FRCJavaArtifact and deploys static files from src/main/deploy/ to /home/lvuser/deploy/ on the RoboRIO.The RoboRIO must be running 2026 firmware and must be reachable on the network before deploying. If the deploy fails, verify the USB or radio connection and confirm the team number in
.wpilib/wpilib_preferences.json matches your RoboRIO’s configured team number.CommandScheduler (SmartDashboard)GCCount (SmartDashboard)Field (Shuffleboard Field2d)/vision/limelight-a_Last timestamp/Turret/PositionBuild variants
Two Gradle project properties change what gets compiled or how the simulation runs.| Property | Default | Effect |
|---|---|---|
-PautomatedTest=true | false | Switches the JAR main class to frc.robot.test.AutomatedTestMain for CI/hardware-in-the-loop test runs |
-PhighFidelityVision=true | false | Passes the highFidelityVision system property into the simulation JVM, enabling additional vision simulation fidelity |
DataLog
On a real robot,DataLogManager starts automatically in the Robot constructor:
DATA_LOG_FLUSH_PERIOD_S = 1.0 / 14.0). The DataLog is also resumed every second in robotPeriodic() to recover from any transient pauses. Struct schemas for Pose2d, Pose3d, ChassisSpeeds, SwerveModuleState, and SwerveModulePosition are explicitly registered so log viewers (e.g., Advantage Scope) can decode them.
Command lifecycle events (initialize, interrupt, finish) are also logged automatically via CommandScheduler callbacks:
Before enabling the robot for a match or tuning session, zero the hood and turret using the Start button on the driver controller. The
disabledExit() callback will warn via DriverStation.reportWarning if the hood has not been zeroed when exiting disabled mode.