The FRC Java Programming Hub
Welcome to Code with Kate. This curriculum is designed to take you from a complete beginner to writing structured, production-ready, and competition-hardened Command-Based code for FRC robots.
Welcome to the Lab
I have been programming FRC robots and mentoring teams (like Team 2910, Jack in the Bot) for years. FRC programming is a unique discipline: it combines real-time controls engineering, complex networking, physics, game strategy, and rapid-fire debugging under intense timeline pressures.
This course is exclusively taught in Java—the most widely adopted language in FRC. It is designed around the exact patterns used by the most successful teams in the world. As FRC programmers, we do not reinvent the wheel. Instead, we learn from the best, master standard structures, and then build onwards.
"Elite teams are not elite because they write code that nobody else understands. They are elite because they write robust, standardized, and transparent code that works every single time."
The Three Pillars of This Course
Every lesson in this curriculum is built around three core ideas that will change how you approach coding robots:
We use WPILib's modern Command-Based architecture. We don't write monolithic state machines inside a single loop; we decompose the robot into clean subsystems and descriptive commands.
This curriculum exists because teams like 2910, 254, and 6328 open-source their code. We analyze their actual repos directly in class to understand true industry-grade practices.
A programmer who doesn't understand mechanical gearboxes, electrical bus limits, and sensor physics is a programmer who writes code that burns out motors. We think in systems.
Find Your Starting Point
Select the option that best matches your programming and FRC background to find where to start your journey:
The Complete Course Roadmap
Click on any unit below to inspect its lesson directory, primary learning objectives, and the open-source team code inspiration.
Before you write a single line of code, your development environment must be rock solid. In this unit, we set up your PC/Mac for FRC Java development.
A quick orientation to frame the mindset of a successful robotics engineer. We lay out study schedules and credit the team code bases that anchor our design parameters.
A core programming foundations boot camp. We cover basic syntax, variable structures, loops, conditional paths, and simple functional definitions inside standard Java.
An introduction to source control management. Version control is the ultimate insurance policy for your robot's software stability. We learn to commit, branch, push, pull, and review pull requests safely.
Robot code maps cleanly onto real-world objects. In this unit, we connect physical hardware assemblies with their digital abstractions using OOP.
Taking your first steps into WPILib. We learn how physical motors, human controller inputs, and telemetry signals are represented in a loop cycle running every 20 milliseconds.
The FRC standard design pattern. Learn to separate your robot into clean, concurrent subsystems and write declarative commands that chain behaviors together dynamically.
Swerve drive has revolutionized modern FRC. We dive deep into kinematics, odometry, coordinate systems, and field-oriented steering algorithms.
Robots operate in physical environments with gravity, inertia, and friction. In this unit, we use mathematics to control mechanical systems smoothly and accurately.
Autonomous matches are won or lost by path tracking precision. We leverage GUI tools to generate complex trajectories that execute automatically when the match starts.
Using cameras to verify where the robot is on the field. We integrate coprocessors to recognize AprilTags and mathematically fuse these measurements with our swerve odometry.
addVisionMeasurementHow the top 1% of FRC teams design code. We explore complete hardware isolation, deterministic logging (AdvantageKit), simulation, and unit testing.
Matches are fast, stressful, and chaotic. We build diagnostic skills so you can identify brownouts, electrical CAN faults, and loop overruns inside a 10-minute pit window.
The FRC landscape moves quickly. We review upcoming control system shifts (including NI SystemCore modifications) and discuss how to keep contributing back to our open-source community.
The Inspired-By Library
This course references actual code repositories from elite FRC teams. Click any of the links below during your study sessions to look at their architectures on GitHub. They are our real-world textbooks:
🔌 Orientation Check
Prepare the following steps so we can begin coding without delay:
- A dedicated laptop: Ensure you have administrator access on the machine you are using. WPILib installations write environment keys that require elevation.
- A standard USB cable: USB-A to USB-B or USB-C (depending on your roboRIO model) to run local configurations.
- A GitHub account: Sign up for a free, public account at github.com to keep track of your progress.