Skip to content
@wpilibsuite

WPILib Suite

The official repositories of the WPILib Suite, a robotics software library used in the FIRST Robotics Competition

What is WPILib?

The WPI Robotics Library (WPILib) is the standard software library provided for teams to write code for their FIRST® Robotics Competition (FRC®) robots. A software library is a collection of code that can be imported into and used by other software. WPILib contains a set of useful classes and subroutines for interfacing with various parts of the FRC control system (such as sensors, motor controllers, and the driver station), as well as an assortment of other utility functions.

Supported languages

There are three versions of WPILib, one for each of the three officially-supported text-based languages: WPILibJ for Java, and WPILibC for C++, and RobotPy for Python. A considerable effort is made to maintain feature-parity between these languages - library features are not added unless they can be reasonably supported for both Java and C++ (with the C++ able to be wrapped by pybind for Python), and when possible the class and method names are kept identical or highly-similar. Java, C++, and Python were chosen for the officially-supported languages due to their appropriate level-of-abstraction and ubiquity in both industry and high-school computer science classes.

In general, C++ offers better high-end performance, at the cost of increased user effort (memory must be handled manually, and the C++ compiler does not do much to ensure user code will not crash at runtime). Java and Python offer lesser performance, but much greater convenience. Python users should take care to test their program to ensure that typos and other issues don't cause robot crashes, as Python is interpreted. New/inexperienced users are encouraged to use Java.

Source code and documentation

The primary documentation for WPILib is the FIRST Robotics Competition Control System Documentation.

WPILib is an open-source library - the C++ and Java source code is in the allwpilib mono-repo and python source code is in the mostrobotpy mono-repo. The Java and C++ source code can be found in the WPILibJ and WPILibC source directories:

While users are strongly encouraged to read the source code to resolve detailed questions about library functionality, more-concise documentation can be found on the official documentation pages for WPILibJ and WPILibC and RobotPy:

Installation

WPILib has a unified installer. See the WPILib Installation Guide for step-by-step installation instructions.

Pinned Loading

  1. allwpilib allwpilib Public

    Official Repository of WPILibJ and WPILibC

    C++ 1.1k 612

  2. WPILibPi WPILibPi Public

    Forked from RPi-Distro/pi-gen

    WPILib Raspberry Pi images designed for FRC (formerly FRCVision)

    Shell 90 40

  3. frc-docs frc-docs Public

    Official FRC Documentation powered by Read the Docs

    JavaScript 153 266

  4. shuffleboard shuffleboard Public

    A modern dashboard for FRC

    Java 80 84

  5. GradleRIO GradleRIO Public

    The official gradle plugin for the FIRST Robotics Competition

    Java 265 70

  6. vscode-wpilib vscode-wpilib Public

    Visual Studio Code WPILib extensions

    TypeScript 112 52

Repositories

Showing 10 of 123 repositories