Introduction
Welcome to the Team 5817 Programming Guide. This GitBook captures the lessons learned over years of programming FRC robots.
As a programmer you should understand almost everything about the robot:
Mechanical systems (Inertia, gear ratios, basic physics)
Electrical systems (power distribution, sensors, networking).
Software systems (subsystem control, autonomous routines, safety features).
Before diving into code, make sure to review the design and eletrical resources(TODO link). Programming decisions are only as good as your understanding of the hardware.
What This Guide Covers
We’ll start by breaking down how the robot works and how to model it in software. From there, you’ll learn:
Fundamentals – Gear ratios, current limits, subsystem control, autonomous routines.
Seasonal Workflow – What you should be doing at each stage of the season.
Competition Readiness – What you should be doing to succeed at competition.
Programming Language
We use Java as our primary programming language.
WPI (the creators of WPILib) maintain the libraries and frameworks that all FRC robots run on. Their resources are super useful:
Learning Java
If you are new to Java, here are the recommended starting points:
Basics and Syntax: Java Programming Basics and Syntax (Skim the rest if you’re curious.)
Full Video Course (highly recommended): Learn Java – Full Course
Skip the starred sections and sections #10, #58, #59, #62, and #64.
This course covers far more than Mason’s guide and will give you a strong foundation.
Key Mindset
You’ll spend your time not only writing code but also:
Debugging hardware/software interactions.
Testing and simulating before the robot is built.
Iterating quickly to match evolving mechanical designs.
Collaborating with design and electrical teams.
The better you understand the full system, the more effective you’ll be as a programmer.
Last updated