Skip to content
Programming, Controls & Sensors·Lesson 5 of 51

The FRC Software Stack: What Runs Where

A map of the software pieces in an FRC robot — from your laptop to the roboRIO — and how they talk to each other.

Sign in to track progress, earn XP, and save lessons.

The big picture

An FRC robot is a small distributed system. Understanding which piece runs where keeps you from being lost later.

  • roboRIO — the robot's main controller (a real-time Linux computer made by NI). Your robot program runs here. Two versions are in use: the roboRIO 1.0 and the newer roboRIO 2.0 (which boots from a microSD card).
  • Your development laptop — runs Visual Studio Code with the WPILib extension, where you write, build, and deploy code.
  • Driver Station laptop — runs the FRC Driver Station (Windows only), the only legal way to enable/disable the robot during a match. It also forwards joystick/gamepad inputs to the robot.
  • Radio — the robot's wireless link to the field/Driver Station. For 2025 and later, most regions use the VH-109 radio from Vivid Hosting, which replaced the older OpenMesh OM5P-AC (the OM5P is still used in a few regions).
  • Motor controllers (Talon FX, SPARK MAX, etc.), the Power Distribution Hub (PDH) or legacy Power Distribution Panel (PDP), the Pneumatics Hub (PH), and sensors — connected over the CAN bus and addressed by ID in your code.

WPILib: the official library

WPILib is the free, open-source software library that FIRST and the community maintain. It provides the classes you use for everything: motor outputs, sensor reads, joystick reads, kinematics, control loops, and simulation. You almost never talk to the roboRIO's hardware directly — you call WPILib.

WPILib ships with a build system based on Gradle (called GradleRIO) that compiles your code and deploys it to the roboRIO over the network.

How a robot program runs

  1. You write code in VS Code.
  2. "Build Robot Code" compiles it with Gradle.
  3. "Deploy Robot Code" copies the program to the roboRIO and restarts the robot program.
  4. The Driver Station enables the robot in Autonomous, Teleop, or Test mode.
  5. Your code reacts: reading sensors/inputs and setting motor outputs on a fixed loop (typically every 20 ms).

Communication glue: NetworkTables

NetworkTables is WPILib's publish/subscribe system that shares values between the robot and dashboards (like Elastic, Glass, Shuffleboard, or AdvantageScope). This is how you graph a sensor, tune a value live, or pick an autonomous routine before a match.

Why this matters

When something breaks, the first question is always which computer is responsible? A deploy failure is a laptop-to-roboRIO problem; a robot that won't enable is usually a Driver Station or radio problem; a value that won't update on the dashboard is a NetworkTables problem. Keeping the map in your head turns debugging from guesswork into a checklist.

Key takeaways

  • WPILib is the official open-source library; your robot code is built on it.
  • The roboRIO runs your program; VS Code deploys to it; the Driver Station enables it.
  • Motor controllers, the PDH/PDP, and sensors live on the CAN bus and are addressed by ID.
  • For 2025+, most teams use the VH-109 (Vivid Hosting) radio, replacing the OM5P-AC.
  • NetworkTables shares live data between the robot and dashboards.

Lesson quiz

Required

Answer all 3 questions correctly to complete this lesson.

1.Where does the robot program your team writes actually execute during a match?

2.What is the role of the Driver Station software in the FRC control system?

3.During an official match, what does the Field Management System (FMS) do?

Answer every question to submit.