Recent Updates

  • Updated on: Dec 06, 2017

    3rd Party Libraries

    New for 2017 - A number of software components were broken out of WPILib for 2017 and are now maintained by third parties. See this blog for more details.

  • Updated on: Dec 06, 2017

    Rookie USB stick

    The computer provided in the 2017 Rookie Kit of Parts comes preloaded with an existing Windows install. The computer should not be reimaged and no image is provided for doing so Veteran teams may not need to image their machines, but should see the section on Image Download if they wish to do so.

  • Updated on: Dec 04, 2017

    Wiring the FRC Control System

  • Updated on: Sep 15, 2017

    Using Generated Code in a Robot Program

  • Updated on: Jul 17, 2017

    Creating your Benchtop Test Program

    The simplest way to create a robot program, is to start from one of the three supplied templates (Sample, Iterative or Command). Sample is best used for very small sample programs or advanced programs that require total control over program flow. Iterative Robot is a template which provides better structure for robot programs while maintaining a minimal learning curve. Command-Based robot is a template that provides a modular, extensible structure with a moderate learning curve.

    The templates will get you the basis of a robot program, organizing a larger project can often be a complex task. RobotBuilder is recommended for creating and organizing Command-Based robot programs. You can learn more about RobotBuilder here. To create a command-based robot program that takes advantage of all the newer tools look at Creating a Robot Project in the Command Based Programming Chapter.

  • Updated on: Jul 17, 2017

    Strategies for vision programming

  • Updated on: Jul 17, 2017

    Off Board Vision Processing in Java

  • Updated on: Jul 17, 2017


    The standard input device supported by the WPI Robotics Library is a USB joystick or gamepad. The Logitech Attack 3 joystick provided in the KOP from 2009-2012 comes equipped with eleven digital input buttons and three analog axes, and interfaces with the robot through the Joystick class. The Joystick class itself supports joysticks with more capabilities as well such as the Logitech Extreme 3D Pro included in the 2013 KOP which has 4 analog axes and 12 buttons. Note that the rest of this article exclusively uses the term joystick but can also be referring to a HID compliant USB gamepad.

  • Once commands are defined they can run in either the teleop or autonomous part of the program. In fact, the power of the command based programming approach is that you can reuse the same commands in either place. If the robot has a command that can shoot Frisbees during autonomous with camera aiming and accurate shooting, there is no reason not to use it to help the drivers during the teleop period of the game.