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:

  1. Fundamentals – Gear ratios, current limits, subsystem control, autonomous routines.

  2. Seasonal Workflow – What you should be doing at each stage of the season.

  3. 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:

WPILib Official Site


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