FIRST Robotics Competition Resources
NOTE: this section of the page is to quickly redirect you to the official resource areas on the WPILib and First site.
All things below are snippets from the main website. To go to the source site click the section title.
Yes, that does mean we just copied all the resource sites, but all links go directly back to the original source. Think of this as a table of contents of resources.
Robot Quick Build Instructions
Drive System
- Drive System Designs Presentation by Paul Ventimiglia
- FRC Drive Systems by Ken Stafford
- Chassis Design Considerations by Zan Hecht
Pneumatics
- 2017 Pneumatics Manual
- Effectively Using Pneumatics by Ken Stafford (New Link Coming Soon!)
Motors
- 2017 Motor Performance Data
- Denso Window Motor Specification
- Motor and Gearbox Selection by Ken Stafford (from Behind the Lines)
Other Resources
- Designing Competitive Manipulators: The Mechanics & Strategy by Greg Needel (New Link Coming Soon!)
- Manipulator and Appendage Design by Andy Baker (New Link Coming Soon!)
General Hardware
FRC Control System Hardware Overview
Wiring the FRC Control System
Wiring Best Practices
Wiring Pneumatics
Updating and Configuring Pneumatics Control Module and Power Distribution Panel
Status Light Quick Reference
Robot Preemptive Troubleshooting
FRC CAN Addressing
RoboRIO
RoboRIO Web Dashboard
RoboRIO FTP
RoboRIO User Accounts and SSH
RoboRIO Brownout and Understanding Current Draw
Need Help?
Connecting and Deploying to the RoboRIO
Setting up the Development Environment
Installing C++ and Java Development Tools for FRC
Installing the FRC Update Suite (All Languages)
3rd Party Libraries
Creating and Running Robot Programs
Visual Studio Code Basics and the WPILib Extension
WPILib Commands in VSCode
Creating a robot program
Creating your Benchtop Test Program
Building and deploying to a roboRIO
Viewing Console Output
Debugging a robot program
Importing an Eclipse project into VS Code
FRC Java References
FRC Java WPILib API Documentation
C++\Java Plugin Changelog
FRC Java Basics
Java conventions for objects, methods and variables
Multithreading in Java
Basic WPILib Programming features
What is WPILib
Choosing a Base Class
Using actuators (motors, servos, and relays)
Actuator Overview
Driving motors with PWM speed controller objects
WPILib Drive classes: Drivetrain types
WPILib Drive classes: Conventions and Defaults
Driving a robot using Differential Drive
Driving a robot using Mecanum drive
Repeatable Low Power Movement – Controlling Servos with WPILib
Using the motor safety feature
On/Off control of motors and other mechanisms – Relays
Operating a compressor for pneumatics
Operating pneumatic cylinders – Solenoids
Using CAN Devices
Using the CAN subsystem with the RoboRIO
Pneumatics Control Module
Power Distribution Panel
Talon SRX CAN
WPILib sensors
WPILib Sensor Overview
Switches – Using limit switches to control behavior
How do I do _______? – Selecting the right sensor for the job
Accelerometers – measuring acceleration and tilt
Gyros – Measuring rotation and controlling robot driving direction
Ultrasonic Sensors – Measuring robot distance to a surface
Counters – Measuring rotation, counting pulses and more
Encoders – Measuring rotation of a wheel or other shaft
Analog inputs
Potentiometers – Measuring joint angle or linear motion
Analog triggers
Operating the robot with feedback from sensors (PID control)
Driver Station Inputs and Feedback
Driver Station Input Overview
Joysticks
Displaying Data on the DS – Dashboard Overview
Command based programming
What is Command based programming?
Creating a robot project
Adding Commands and Subsystems to the project
Simple subsystems
PIDSubsystems for built-in PID control
Creating Simple Commands
Creating groups of commands
Running commands on Joystick input
Running commands during the autonomous period
Converting a Simple Autonomous program to a Command based autonomous program
Default Commands
Synchronizing two commands
Scheduling commands
Using limit switches to control behavior
Setting up the Development Environment
Installing C++ and Java Development Tools for FRC
Installing the FRC Update Suite (All Languages)
3rd Party Libraries
Creating and Running Robot Programs
Visual Studio Code Basics and the WPILib Extension
WPILib Commands in VSCode
Creating a robot program
Creating your Benchtop Test Program
Building and deploying to a roboRIO
Viewing Console Output
Debugging a robot program
Importing an Eclipse project into VS Code
FRC C++ References
C++ WPILib API Documentation
C++\Java Plugin Changelog
FRC C++ Basics
C++ conventions for objects, methods, and variables
Namespacing in C++
Pointers and addresses
Basic WPILib Programming features
What is WPILib
Choosing a Base Class
Using actuators (motors, servos, and relays)
Actuator Overview
Driving motors with PWM speed controller objects
WPILib Drive classes: Conventions and Defaults
Driving a robot using Differential Drive
Driving a robot using Mecanum drive
Repeatable Low Power Movement – Controlling Servos with WPILib
Using the motor safety feature
On/Off control of motors and other mechanisms – Relays
Operating a compressor for pneumatics
Operating pneumatic cylinders – Solenoids
Using CAN Devices
Using the CAN subsystem with the RoboRIO
Pneumatics Control Module
Power Distribution Panel
Talon SRX CAN
WPILib sensors
WPILib Sensor Overview
Switches – Using limit switches to control behavior
How do I do _______? – Selecting the right sensor for the job
Accelerometers – measuring acceleration and tilt
Gyros – Measuring rotation and controlling robot driving direction
Ultrasonic Sensors – Measuring robot distance to a surface
Counters – Measuring rotation, counting pulses and more
Encoders – Measuring rotation of a wheel or other shaft
Analog inputs
Potentiometers – Measuring joint angle or linear motion
Analog triggers
Operating the robot with feedback from sensors (PID control)
Driver Station Inputs and Feedback
Driver Station Input Overview
Joysticks
Displaying Data on the DS – Dashboard Overview
Command based programming
What is Command based programming?
Creating a robot project
Adding Commands and Subsystems to the project
Simple subsystems
PIDSubsystems for built-in PID control
Creating Simple Commands
Creating groups of commands
Running commands on Joystick input
Running commands during the autonomous period
Converting a Simple Autonomous program to a Command based autonomous program
Default Commands
Synchronizing two commands
Using limit switches to control behavior
Scheduling commands
Creating more robust commands with timeouts
Setting up the Development Environment
Installing LabVIEW for FRC 2019 (LabVIEW only)
Installing the FRC Update Suite (All Languages)
Creating Robot Programs
Creating, Building and Loading your Benchtop Test Program
Tank Drive Tutorial
Command and Control Tutorial
LabVIEW Resources
LabVIEW Resources
Waiting for Target to Respond – Recovering from bad loops
Talon SRX CAN
How To Toggle Between Two Camera Modes
LabVIEW Examples and Tutorials
Add an Independent Motor to a Project
Keyboard Navigation with the roboRIO
Making a One-Shot Button Press
Adding Safety Features to Your Robot Code
How to Use Joystick Buttons to Control Motors or Solenoids
Local and Global Variables in LabVIEW for FRC
Using the Compressor in LabVIEW
Resources for vision programming
Strategies for vision programming
Read and process video: CameraServer class
2017 Vision Examples
Background
Target Info and Retroreflection
Identifying and Processing the Targets
Setup
Configuring an Axis Camera
Using the Microsoft Lifecam HD-3000
Camera Settings
Calibration
Axis M1013 Camera Compatibility
Using the Axis Camera at Single Network Events
Vision programming
Using the CameraServer on the roboRIO
Using multiple cameras
GRIP
Introduction to GRIP
Reading array values published by NetworkTables
Generating Code from GRIP
Using Generated Code in a Robot Program
Using GRIP with a Kangaroo Computer
Processing Images from the 2009 FRC Game
Processing Images from the 2014 FRC Game
Processing Images from the 2016 FRC Game
Processing images from the 2017 FRC Game
This is the direct link the Wiring the FRC Control System Guide on wpilib.screenstepslive.comp plus a few basic wiring diagrams.

Image Credit: WPILib

Image Credit: Mr. McTavish