Software Component Overview
The FRC® software consists of a wide variety of mandatory and optional components. These elements are designed to assist you in the design, development, and debugging of your robot code as well as assist with control robot operation and to provide feedback when troubleshooting. For each software component this document will provide a brief overview of its purpose, a link to the package download, if appropriate, and a link to further documentation where available.
Operating System Compatibility
The primary supported OS for FRC components is Windows. All required FRC software components have been tested on Windows 10 & 11.
Many of the tools for C++/Java/Python programming are also supported and tested on macOS and Linux. Teams programming in C++/Java/Python should be able to develop using these systems, using a Windows system for the Windows-only operations such as the Driver Station and roboRIO Imaging Tool.
LabVIEW FRC (Windows Only)

LabVIEW FRC, based on a recent version of LabVIEW Professional, is one of the three officially supported languages for programming an FRC robot. LabVIEW is a graphical, dataflow-driven language. LabVIEW programs consist of a collection of icons, called VIs, wired together with wires which pass data between the VIs. The LabVIEW FRC installer is distributed on a DVD found in the Kickoff Kit of Parts and is also available for download. A guide to getting started with the LabVIEW FRC software, including installation instructions can be found here.
Visual Studio Code

Visual Studio Code is the supported development environment for C++, Java. A guide to getting started with Java and C++ for FRC, including the installation and configuration of Visual Studio Code can be found here.
FRC Driver Station Powered by NI LabVIEW (Windows Only)

This is the only software allowed to be used for the purpose of controlling the state of the robot during competition. This software sends data to your robot from a variety of input devices. It also contains a number of tools used to help troubleshoot robot issues. More information about the FRC Driver Station Powered by NI LabVIEW can be found here.
Dashboard Options
LabVIEW Dashboard (Windows Only)

The LabVIEW Dashboard is automatically launched by the FRC Driver Station by default. The purpose of the Dashboard is to provide feedback about the operation of the robot using tabbed display with a variety of built in features. More information about the FRC Default Dashboard software can be found here.
SmartDashboard

SmartDashboard allows you to view your robot data by automatically creating customizable indicators specifically for each piece of data sent from your robot. Additional documentation on SmartDashboard can be found here.
Shuffleboard

Shuffleboard has the same features as SmartDashboard. It also improves on the setup and visualization of your data with new features and a modern design at the cost of being less resource efficient. Additional documentation on Shuffleboard can be found here.
Glass

Glass is a Dashboard focused on being a programmer’s tool for debugging. The primary advantages are the field view, pose visualization and advanced signal plotting tools.
AdvantageScope

AdvantageScope is a data visualization tool for NetworkTables, WPILib data logs, and Driver Station logs. It is a programmer’s tool (rather than a competition dashboard) and can be used to debug real or simulated robot code from a log file or live over the network. For more information see the AdvantageScope section.
Elastic

Elastic is a simple and modern dashboard made by Team 353. It is meant to serve as a dashboard for competition but can also be used for testing. It was built with the goal of being a drag & drop dashboard with an easy setup and elegant UI designed for a high pressure competition environment. For more information see the Elastic section.
LiveWindow

LiveWindow is a feature of SmartDashboard and Shuffleboard, designed for use with the Test Mode of the Driver Station. LiveWindow allows the user to see feedback from sensors on the robot and control actuators independent of the written user code. More information about LiveWindow can be found here.
FRC roboRIO Imaging Tool (Windows Only)

This tool is used to format and setup a roboRIO for use in FRC. Installation instructions can be found here. Additional instructions on imaging your roboRIO using this tool can be found here.
FRC Driver Station Log Viewer (Windows Only)

The FRC Driver Station Log Viewer is used to view logs created by the FRC Driver Station. These logs contain a variety of information important for understanding what happened during a practice session or FRC match. More information about the FRC Driver Station Log Viewer and understanding the logs can be found here
RobotBuilder

RobotBuilder is a tool designed to aid in setup and structuring of a Command Based robot project for C++ or Java (Python not currently supported). RobotBuilder allows you to enter in the various components of your robot subsystems and operator interface and define what your commands are in a graphical tree structure. RobotBuilder will then generate structural template code to get you started. More information about RobotBuilder can be found here. More information about the Command Based programming architecture can be found here.
Robot Simulation

Robot Simulation offers a way for Java, C++, and Python teams to verify their actual robot code is working in a simulated environment. This simulation can be launched directly from VS Code and includes a 2D field that users can visualize their robot’s movement on. For more information see the Robot Simulation section.
FRC LabVIEW Robot Simulator (Windows Only)

The FRC Robot Simulator is a component of the LabVIEW programming environment that allows you to operate a predefined robot in a simulated environment to test code and/or Driver Station functions. Information on using the FRC Robot Simulator can be found here or by opening the Robot Simulation Readme.html file in the LabVIEW Project Explorer.
PathWeaver

PathWeaver allows teams to quickly generate and configure paths for advanced autonomous routines for differential drivetrains. These paths have smooth curves allowing the team to quickly navigate their robot between points on the field. For more information see the PathWeaver section.
System Identification

This tool helps teams automatically calculate constants that can be used to describe the physical properties of your robot for use in features like robot simulation, trajectory following, and PID control. For more information see the System Identification section.
OutlineViewer

OutlineViewer is a utility used to view, modify and add to all of the contents of the NetworkTables for debugging purposes. LabVIEW teams can use the Variables tab of the LabVIEW Dashboard to accomplish this functionality. For more information see the Outline Viewer section.
roboRIO Team Number Setter

The roboRIO Team Number Setter is a cross-platform utility that can be used to set the team number on the roboRIO. It is an alternative to the roboRIO imaging tool for setting the team number. For more information see the roboRIO Team Number Setter section.
WPIcal

WPIcal is a cross-platform utility that can be used to calibrate the Apriltags on FRC fields to correct for field setup error. For more information see the WPIcal section.