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.

FRC 2019 Game Manual

Robot Quick Build Instructions

Drive System

Pneumatics

Motors

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!)

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

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

Close Menu