Programming Resources
Browse docs, tutorials, and tools for FIRST programming. Filter by section and topic, or submit a link for maintainer review.
Section
Topic
Abdullah's TutorialsVideo series on FRC Java programming: command-based structure, subsystem examples, control tuning, and competition code organization.Advanced Programming NotesCommunity FRC programming notes covering project structure, command-based patterns, control loops, and common subsystem implementations with worked examples.AdvantageKit Swerve TemplateAdvantageKit Talon FX swerve template: pre-wired odometry, module optimization, SysId hooks, and log replay for CTRE swerve drivetrains.Android Studio Official SiteDownload Android Studio IDE, SDK Manager, and official guides for installing the Android SDK used to build and deploy FTC Robot Controller apps.Auto Align TutorialStep-by-step reef auto-align using Limelight target offsets, rotation-first alignment, and PID drive commands — includes code structure and tuning notes.Autonomous Programming (Video)Video intro to FRC autonomous: timed sequences vs sensor-based moves, chooser setup, and when to add path following to a baseline auto.BoVLB Tips: CommandsOblarg (BoVLB) command tips: default commands, requirement conflicts, parallel and sequential command groups, and common command-based pitfalls with concise examples.CD Tuning GuideChief Delphi PID tuning thread: practical kP/kI/kD workflow on real mechanisms, oscillation diagnosis, and when feedforward matters more than integral gain.CTRE Control RequestsPhoenix 6 control requests: DutyCycle, Velocity, Position, Motion Magic, and TorqueCurrent — how to replace legacy set() calls with explicit request objects.CTRE DocumentationCTRE Phoenix 6 documentation for Talon FX, CANcoder, and Pigeon — configuration, control requests, Motion Magic, telemetry, and migration from Phoenix 5.Deep Blue RoboticsDeep Blue (Team 384) training docs: swerve odometry, auto routines, command-based conventions, and advanced control topics used in their open-source projects.EveryBot Commands IntroEveryBot code manual: starter command-based project layout, intake and elevator examples, and patterns used in low-resource EveryBot build guides.Exponential Profiles (YAMS)YAMS exponential motion profiles: configure max velocity/acceleration and generate smooth setpoints for mechanisms that need curved velocity ramps.FRC Git TutorialSlide deck on FRC Git workflow: branches, remotes, merge conflicts in robot projects, and coordinating code changes across subteams.FTC Android Studio TutorialFIRST FTC Android Studio tutorial: install SDK, clone FtcRobotController, open TeamCode, deploy OpModes, and connect to Control Hub over ADB/Wi‑Fi.FTC OpMode DocumentationFTC OpMode reference: @TeleOp vs @Autonomous, linear vs iterative lifecycle, hardware map access, and gamepad/telemetry patterns in the SDK.FTC SDK GitHub RepositoryOfficial FTC SDK repository: FtcRobotController module (do not edit) and TeamCode template for season-specific OpModes, Gradle build, and OnBot Java compatibility.Limelight DocumentationLimelight 2+/3 docs: static IP setup, pipeline tuning, AprilTag and retroreflective tracking, robot pose estimation, and NetworkTables integration.Limelight LibLimelightHelpers / LimelightLib: Java API for pose estimates, target alignment, and pipeline data over NetworkTables without writing raw HTTP or JSON parsers.Motion Magic®CTRE Motion Magic: trapezoidal motion profiling on Talon FX with cruise velocity, acceleration, and jerk limits for smooth mechanism moves without a separate profile generator.PathPlanner DocsPathPlanner hub: GUI path authoring, PathPlannerLib API for holonomic and differential autos, event markers, and integration with WPILib pose estimation.PathPlanner Getting StartedPathPlanner GUI tutorial: draw paths and constraints, set ideal starting pose, export to deploy folder, and wire PathPlannerAuto in RobotContainer.PID SimulationHands-on PID simulation exercises using WPILib physics sim — tune elevator and arm gains with recorded plots before moving to hardware.Problem Solving Guide | FRC 167Team 167 Iowa City robotics programming guide: debugging workflow, Git usage, command-based structure, and subsystem design patterns for competition code.Pull Requests OverviewPull request walkthrough: fork/branch workflow, opening a PR on GitHub, review comments, and merging safely into a shared robot repository.REV Robotics APIREV Java API reference for Spark Max, Spark Flex, and REV sensors — motor configuration, closed-loop control, encoder interfaces, and CAN bus usage.Simple Limelight TutorialVideo walkthrough: Limelight pipeline setup, reading tx/ty/ ta in code, and driving rotation-to-target for vision-assisted teleop or auto.Spectrum TrainingSpectrum 3847 team site: technical blog posts, CAD/software release notes, and links to their training materials and open repositories.State Machines IntroState machine concepts for FRC: states, transitions, entry/exit actions, and replacing nested if-chains in teleop and auto with explicit state charts.The Compass AllianceCompass Alliance curriculum: staged FRC learning paths from mechanical basics through programming, scouting, and team management resources.Tracking AprilTagsLimelight AprilTag pipelines: family selection, multi-tag pose solve, field layout JSON, and tuning exposure for reliable FRC field localization.WPILib DocumentationOfficial WPILib docs: robot project setup, command-based framework, control theory, kinematics, vision, simulation, and hardware APIs for FRC Java/C++ teams.WPILib: Git IntroWPILib Git intro: clone WPILib projects, commit workflow, .gitignore for build artifacts, and collaborating without breaking Gradle vendor deps.WPILib: What Is Command-Based?WPILib explains command-based architecture — Subsystems, Commands, triggers, and RobotContainer — and why it separates robot logic from scheduling.YAMS DocumentationYAMS (Yet Another Motor Simulator): WPILib mechanism sim for elevators, arms, and intakes — plant tuning, visualization, and validating gains before deploy.