Getting started¶
This page gets a clean checkout to the point where you can build, simulate, and identify the robot-specific files. It does not try to tune the robot in one sitting. Good bring-up is staged.
Install prerequisites¶
Use the WPILib 2026 toolchain and Java 17. The project is a normal GradleRIO Java project with vendor JSON files committed in vendordeps/.
You need:
- WPILib 2026
- Java 17 from the WPILib installation or another compatible JDK
- CTRE Phoenix 6 vendor libraries
- AdvantageKit
- PhotonLib
- PathPlannerLib
- BLine-Lib
- AdvantageScope for calibration and log review
- PhotonVision for camera calibration and AprilTag detection
The vendordep JSON files are committed so Gradle can resolve the expected robot dependencies. If a dependency cannot resolve, check that your WPILib installation and vendor cache match the project year before changing code.
First commands¶
From the repository root:
If you are on Windows, use gradlew.bat instead of ./gradlew.
The simulation GUI is disabled by default because this project is AdvantageKit-first and supports replay workflows. The Driver Station simulation still starts.
Set the team number¶
Set the team number in .wpilib/wpilib_preferences.json.
Use your real team number before deploy. Do not bury the team number in random robot code; keep it in the WPILib preference file unless there is a deliberate reason not to.
Know the important configuration seams¶
The most common robot-specific edits are:
frc.robot.generated.TunerConstants: CTRE drivetrain constants.frc.robot.subsystems.vision.VisionConstants: camera names, transforms, layout, and vision trust constants.frc.robot.config.FieldTargets: named field poses for scoring, intake, and teleop navigation.frc.robot.config.NavigationConfig: PathPlanner teleop pathfinding constraints.frc.robot.auto.AutoManager: BLine auto routine registration and mechanism event command registry.src/main/deploy/autos: BLine auto config and path JSON.src/main/deploy/pathplanner/navgrid.json: teleop pathfinding static obstacle field.
The important non-seam is the drivetrain implementation. Do not start by editing Drive, Module, TalonFX IO, or the Phoenix odometry thread. Configure the constants first.
Understand robot modes¶
The template uses the usual AdvantageKit mode split:
- Real mode uses CTRE/Pigeon and real camera IO.
- Sim mode uses drivetrain simulation and PhotonVision simulation.
- Replay mode uses no-op hardware IO so logs can be replayed deterministically.
When adding hardware, keep this split. New hardware code should not make replay depend on a CAN device, a camera, or a live NetworkTables server.
Safe first robot checklist¶
Before putting the robot on the floor:
- Build succeeds.
- Unit tests pass.
- Module IDs match CTRE Tuner X.
- Pigeon ID and CAN bus name are correct.
- Each module reports a sane absolute encoder position.
- Wheels drive in the expected direction.
- Steering inversion is correct.
- Current limits are conservative.
- Joystick axes are correct.
- Emergency stop and disable behavior are understood by the driver.
- Logs are being written.
Do the first powered checks on blocks. The first carpet drive should be boring.