Skip to main content
WPILib Logo

Welcome to WPILib

WPILib is the comprehensive software library for programming FIRST Robotics Competition robots. It provides everything you need to build competitive robot code, from hardware abstraction to advanced control algorithms.

Our Mission

The WPILib Mission is to enable FIRST Robotics teams to focus on writing game-specific software rather than focusing on hardware details - “raise the floor, don’t lower the ceiling”. We work to enable teams with limited programming knowledge and/or mentor experience to be as successful as possible, while not hampering the abilities of teams with more advanced programming capabilities. We support Kit of Parts control system components directly in the library and strive to keep parity between major features of each language (Java, C++, and Python).

Hardware Abstraction Layer

Direct control of roboRIO hardware through a clean, consistent API that handles all the low-level details

Advanced Control Systems

PID controllers, feedforward, profiled motion, and state-space control for precise robot movement

Robot Simulation

Test and develop robot code on your desktop with physics-based simulation before deploying to hardware

Command-Based Framework

Organize complex robot behaviors into reusable, composable commands with built-in scheduling

Computer Vision

Built-in CameraServer and AprilTag detection for vision processing and field localization

Network Tables

Real-time communication between robot code, dashboard, and vision coprocessors

Core Libraries

WPILib consists of several integrated components:

Hardware Abstraction Layer (HAL)

The HAL provides low-level access to roboRIO hardware components:
  • Digital I/O, PWM, Relay outputs
  • Analog inputs and outputs
  • Encoders and counters
  • Pneumatics control (CTRE PCM, REV PH)
  • CAN bus communication
  • Power distribution monitoring

WPILibJ & WPILibC

The main robot programming libraries for Java and C++:
  • TimedRobot framework with 20ms periodic execution
  • Motor controller classes and groups
  • Drive train implementations (Differential, Mecanum, Swerve)
  • Sensor wrappers (gyros, accelerometers, limit switches)
  • Smart Dashboard integration

WPIMath

Mathematical utilities and control theory implementations:
  • Geometry classes (Pose2d, Transform2d, Rotation2d)
  • Kinematics (differential, mecanum, swerve)
  • Odometry and pose estimation
  • Trajectory generation and following
  • State-space controllers and Kalman filters

NTCore (Network Tables)

Real-time publish/subscribe communication system:
  • Automatic type handling and serialization
  • Bidirectional communication
  • Connection to driver station, dashboards, and coprocessors
  • Persistent value storage

CSCore (Camera Server)

Streaming camera framework:
  • USB and HTTP camera support
  • MJPEG and H.264 streaming
  • OpenCV integration for vision processing
  • Multiple simultaneous camera streams

Language Support

WPILib officially supports three programming languages:
Java is the most popular choice for FRC teams, offering strong typing, excellent IDE support, and extensive community resources.
import edu.wpi.first.wpilibj.TimedRobot;

public class Robot extends TimedRobot {
  @Override
  public void robotInit() {
    // Initialization code
  }

  @Override
  public void teleopPeriodic() {
    // Teleop code runs every 20ms
  }
}
Requirements: JDK 17 or later

Open Source

WPILib is an open source project, licensed under the BSD 3-clause license. We welcome contributions from the community!

GitHub Repository

View source code, report issues, and contribute to development

Documentation

Official documentation with guides, API reference, and tutorials

Community Support

Get help from the FRC community on Chief Delphi forums

Contributing Guide

Learn how to contribute code, documentation, and bug reports

Getting Started

Ready to start programming your robot? Follow our installation and quick start guides:

Installation Guide

Install the WPILib development environment and required tools

Quick Start Guide

Create your first robot program in minutes

WPILib is developed and maintained by WPI (Worcester Polytechnic Institute) in collaboration with FIRST and the FRC community.

Build docs developers (and LLMs) love