Fall 2014 Beta Testing the New 2015 Control System - A summation of what we've learned from our Fall 2014 testing, some videos demonstrating test results, photos of components/students/setups/test instrumentation/etc.

The roboRIO is between 4x and 10x faster than the old cRIO depending on operation.

The FPGA runs at 40MHz (sampling at 25ns)

A roboRIO boot or cold start takes 20 to 30 sec.

A roboRIO Reset takes ~6 sec (restarts just the user code)

A LabVIEW default program download takes 25 sec., but Building it still takes just as long and you want a good computer to run LabVIEW (the default code takes 1 min to build on an i3, but 7 min to compile on a Classmate Atom)

Brownout condition < ~6.8v, system starts cutting off PWMs to conserve overall system power

Incorporates protection against shorted 6v/5v/3.3v power pins and reverse polarity connections. A short on any of these won't bring the system down-it will just disable the power on all pins that share that voltage.

Max operating temperature is 40C or 104 fahrenheit, so outdoor parades in Arizona at noon on a summer day might produce some anomalies.

Conformal coating for protection of the circuit board from metal debris.

Processor - the roboRIO does not have a battery backup meaning a loss in power will reset the clock, so date/time stamps are affected. Initial date/time when roboRIO is booted seems to be 2/17/1970, 12:40am. When the Driver Station connects the time on the roboRIO gets sync'ed to the DS. So timestamps may vary accordingly if files are written/created before/after the DS connects after a roboRIO boot.

(1) I2C (400 kHz, 3.3v but 5v tolerant -substitute 5v from DIO power pin, MXP 5v or PI 5v. Make sure you use the voltage required by your device). The RoboRio I2C library uses 7 bit addressing (1 - 128) and 112 is the default address of the RoboRio. An Arduino and the older cRIO, for example, use 8 bit addressing.
The clock and data I2C lines on the roboRIO have 2.2kOhm pullup resistors to 3.3v, so make sure that's compatible with the I2C device.

Separate I2C, SPI, TTL communication ports are available through the MXP connection described below.

3.3v and 5v power are always available from a number of pins on the roboRIO.

(10) Digital I/O 0-9 (minimum pulse width 20ns) These pins are spaced out, still at a multiple of .1" spacing they are 4 pins distance apart. In other words, a 4-pin housing will reach between two adjacent sets of pins.

Note: the signal voltage is 3.3v, so sensors designed for a 5v signal may not work correctly.

Note: The maximum allowable DIO input voltage is 5.25 VDC. Higher voltage could cause damage to the roboRIO.
The DIO center power pins can take advantage of a jumper inside the case to select between outputs of 3.3v or 5v (default is 5v). The DIO Signal itself is actually only 3.3v, but is 5v tolerant. Some DIO devices may need 5v while others require 3.3v power. If you have DIO sensors that run on 3.3v, then you can make the switch, but it's all or nothing. The switch affects all DIO power. As an alternative, there are 3.3v as well as 5v pins available all the time from the MXP port (see below) or the SPI port. The roboRIO case isn't designed to keep opening and closing to change the jumper, so decide once and leave it that way.

(1) Robot Status Light output (can change but during Beta it is solid=Disabled, Regular blink=Enabled, whether in Teleop or Autonomous)

(1) MXP Custom Electronics Port
This port is a 34-pin IDC socket, what an old floppy ribbon cable connector used if you have one of those laying around and want to use it as the basis of a homemade breakout
(e.g.,
roboRIO MXP Developer's Guide).
Some pins are multipurpose (shared-either/or) so a pin can be configured to be a DIO or a PWM/I2C/SPI, while others are unique and dedicated.

Reset - a quick press simply reboots the processor and FPGA (cleaner than cycling the robot power).
Pressing and holding the Reset button for 5 seconds (wait for the status light to turn yellow before releasing), then releasing it, restarts the processor and
the FPGA while forcing the roboRIO into safe mode. In safe mode, the roboRIO
launches only the services necessary for updating configuration and installing software.

User - readable from user code, so you can do whatever you want with that information.

Status lights

The cRIO will operate down to 4.34v supplied to the PDP, then it will (try to) reboot

Power -

green=it's receiving >7v power

amber=<7v

red=a short on one of the power rails (center pin of the PWM, DIO, etc.)

off=no power (<4v)

Status - off for normal operation. Blinks identify conditions, e.g., no OS image, booting, or problem states.
We also see a double blink when the roboRIO has not been imaged the first time.

Radio - not used yet

Comm - roboRIO is communicating with a Driver Station. (codes could change)

Off=roboRIO is not communicating with a Driver station

red=No Robot Code. Driver Station is connected

green=DS and user code are talking normally

Mode - Indicates the operational state: (codes could change)

off- Disabled

green=Teleop Enabled

orange=Auto Enabled

red=Test Enabled

Robot Status Light (RSL) - (codes could change)

solid=Disabled (or if one of the roboRIO 3.3v/5v/6v power rails has a short, then the robot could be Enabled and the RSL would be dimmer but not blinking)

Short USB A/B cable permanently mounted on the robot to save wear and protect the roboRIO USB device port from damage by runaway tethered robots, paired with a longer USB extension cable connected just when programming.

Short Ethernet extension cable on the Ethernet port to also connect to if that is your preferred connection method.

Weidmuller Connectors

Those little wire terminals on all the new components.

The small connectors for CAN on the roboRIO and CAN/circuit on the other three new components:PDP,PCM,VRM- are Wiedmuller LSF-SMT Series.
They accept wire gauges of 16-24 AWG. Strip the wire end so that when inserted the insulation is enclosed by the cover. To use with stranded wire hold the white button while inserting or removing the wire.

Notes:

Strip your wire 8mm

While easy to use, these connectors have a tendency to cause individual strands of wire to bunch up when they are pushed into the connector. Be very watchful that these "whiskers" don't get exposed and risk shorting to the wire in the next connector.

Stranded wire should be pushed in while holding the button. Without the button the force and resistance, though light, with stranded wire will tend to catch some strands up, push them back, and bunch them around the top risking a whisker short with the connector next to it.

After insertion test the grip with a sharp tug

After insertion inspect for whiskers! If whiskers turn into a recurring problem then tinning the very tip just enough to hold the individual strands together will help. Avoid tinning the entire length of exposed wire, because a better contact is made if the strands can spread out when gripped by the connector.

If the wire comes out repeatedly with a tug, then the stripped part may be too short - needs to leave about .375 inches of bare wire exposed.

Make sure current flows, otherwise you may have gripped the wire insulation. Although that's not very likely on the largest gauge wire, it is on the smallest gauge wire where the insulation is as thick around as bare 16 gauge wire.

The two buttons associated with a wire pair can be held down at the same time to insert/remove both wires at once. The buttons can easily be depressed with a finger or fingenail too.

Good Wiring vs Bad Wiring

Here's an example of using the terminals properly vs improperly. Good termination (left) will not show any visible wire. The Bad photo (right) shows how wire strands have pushed up and bunched around the top from being pushing them into the terminal. With a little robot rattling or being pulled to the side, these Bad terminals will easily short circuit.

Power Distribution Panel (PDP)

Designed and produced by
Cross the Road Electronics (CTRE)
for FRC, this replaces the previous PDP.
The PDP does NOT control it's outputs in any way, but it does monitor them for current, battery voltage.
Note: Inductive loads (compressor, motors, etc.) should not be connected directly to the PDP, they should always be connected through a control device (Spike, PCM or motor controller).
When a motor is connected directly to the PDP, the flyback that may occur during a breaker trip or simply from hot connecting the load may cause damage to the current sense IC's inside the PDP.
For instance, the Spike has a suppression diode at the motor terminals to clamp the inductive flyback that happens during both the freewheeling period and direction changes. This also protects the PDP current monitoring circuits.

Rough dimensions: 7.5" x 4.75" x 1.75"tall (w/ breakers installed)

Weight: 1 lb, 5.3 oz (no breakers)

(4) mounting holes at the corners. (smaller than 1/4-20 and larger than 10-32 fasteners)

(10) 20/30a Wago power outputs (note: the breakers for these sit high, so be extra careful that nothing conductive gets trapped underneath)

status lights - color and blink are usually in tandem and always a steady regular blink

STAT - status (if voltage drops below 6.5v this will stay yellow even when the battery voltage recovers to let you know that the voltage did drop too low for normal operation. It's called a sticky voltage fault and once a sticky fault is set it stays set until you explicitly clear it (via webpage or using the ClearStickyFaults API).

COMM - communications

Color Code:

Off = low or no power

Green = powered

Yellow = low power < 6.5v (this is a sticky voltage fault and remains until cleared by the user through the CAN web interface)

Red = critical power < 5v

Red irregular blinks = too little power to operate

12v power input, studs are socket cap M6x10mm with a spring washer and protected by a removable cover. The protective cover screws (flat head, internal hex, 6-32, 3/8 in) are removed with a metric 2mm allen wrench and the power lugs inside need a 5mm allen wrench. Because of the close fitting cover the lugs cannot accommodate the screw-type sometimes used by teams, but must be crimped. The crimp lug cannot be too large either (0.44" wide), so measure before buying. The premade battery cables at AndyMark or Cross-the-Road Electronics are the proper size, as are these
lugs .

(1) 20a mini-auto fuse (this in turn is protected by short circuit and over current circuits)

(1) 10a mini-auto fuse (this in turn is protected by short circuit and over current circuits)

Good Fuses vs Bad Fuses

Turns out that most folks at competition don't realize just how hard the Two PDP fuses (not the breakers) have to be pressed in before they are seated.
Pressed in far enough and you'll feel them snap into place.
If they are properly inserted, then they are impossible to remove by hand.
Left loose and your robot will die or sputter as the fuses rattle loose.

Here are some examples.
The first shows properly seated fuses. At least a third of the plastic case should be inside the PDP fuse slots.
The second shows one of the fuses as most teams insert them (you can even see the bare metal of the prongs).

Voltage Regulator Module (VRM)

Used for additional components that require special protected power, e.g., wireless bridge, camera, sensors.
The power output is protected from battery voltage fluctuations and maintains a steady 12v & 5v for electronics sensitive to supply dips.

There are two independent power supplies in the VRM, one 5v and one 12v and each protects itself against continuous power draws above ~1.5a and peaks momentary currents above 2a.
Each of these two power rails also incorporate a current limiter of .5a for two sets of terminals, such that a short on a .5a connection will not affect the corresponding 2a connection, however, a short on a 2a terminal will also shutdown the .5a circuit.

Note: the 5v rail has just enough power to run both the robot radio (peak 725ma) and one Axis M1011 camera (peak 1.3a) for a combined peak of 2.025a for a short period of time. The 2a outputs are rated for 2a peak only, not continuous, but it is a total 2a between the combined 2a/.5a outputs.

Pneumatics Control Module (PCM)

Designed and produced by
Cross the Road Electronics (CTRE)
for FRC, this replaces the previous cRIO solenoid module and breakout.
(optional) only required if pneumatics are used.
Provides automatic closed loop for control of compressor according to pressure sensor state.

Rough dimensions: 2.75" x 2.25" x 0.75"tall

Weight: 2.3 oz

(4) mounting holes (6-32 fasteners) at the corners.

(8) Solenoid outputs, sum of all channels is 500mA. Note that the PCM is low side switched-that means the signal is coming from the ground wire to the solenoids.

Jumper Selectable 12/24v output power. No jumper defaults to 24V.

The 24v for solenoids is guaranteed down to 5.5v input. The 12v just follows battery voltage, and so is more susceptible to erratic response.

Wireless

2017 Version-OM5P-AC

The best orientation to mount the radio in on the robot is horizontally away from metal and sources of electronic RF noise, such as the VRM and battery.
The antennas are positioned along the edges of the case (the three sides without the connectors).
So mounting this radio horizontally will maximize the antenna radiation in the horizontal plane of the playing field.

In 2017 the AN model has been superceeded by an almost identical AC model.
This one has a completely flat top and vents only on the sides, not on the bottom, allowing for easier and more varied mounting options.

Both of these radios can be powered either by a barrel connector and/or a passive
POE injector, but the 12v power required should come from a competition legal VRM. In fact, for redundant power you can connect both POE and a barrel connector 12v power, if one flickers the other takes over preventing and avoiding a time consuming radio reboot.
WARNING: This is a 12 volt device (unlike the old DLink) and requires the use of the VRM 12v/2a power for use on the competition robot.

2016 Version-OM5P-AN

Both the OpenMesh OM5P-AC, and the discontinued OpenMesh OM5P-AN can be used in competition.
This is the older OpenMesh OM5P-AN Access Point:

To switch between Brake/Coast momentarily push the Brake/Coast/Calibrate button. The button is illuminated red when the Victor-SP is in Brake mode and un-illuminated when in Coast.

To calibrate, hold the button until the the status LEDs (the LEDs on the sides) begin to rapidly blink between red and green. While continuing to hold the button, move the joystick to full forward then to full reverse. This can be repeated if desired. Allow the joystick to return to neutral then release the button. If the calibration succeeded you should see the Status LEDs blink green, if it failed they will blink red.
To restore default calibration, with the controller unpowered, press and hold the button while applying power to the controller until the status LEDs blink green.

To switch between Brake/Coast momentarily push the Brake/Coast/Calibrate button. The button is illuminated red when the Victor-SP is in Brake mode and un-illuminated when in Coast.

To calibrate, hold the button until the the status LEDs (the LEDs on the sides) begin to rapidly blink between red and green. While continuing to hold the button, move the joystick to full forward then to full reverse. This can be repeated if desired. Allow the joystick to return to neutral then release the button. If the calibration succeeded you should see the Status LEDs blink green, if it failed they will blink red.
To restore default calibration, with the controller unpowered, press and hold the button while applying power to the controller until the status LEDs blink green.

Talon SRX

The Talon SRX, is a CAN enabled motor controller with CAN, SPI, Digital IO, and USART (serial) communication protocols and a variety of internal control modes inluding feedback PID.
Available at
VexPro
&
Cross the Road Electronics (CTRE)

Spark MAX motor controller

REV Robotics
This unique smart motor controller can drive either standard brushed motors or the
Rev Neo brushless motor
via PWM or CAN control.
It also has a USB interfacethat can be used to set configuration parameters.
It also offers a USB interface for control and configuration.

Closed-loop control or Follower mode

User configurations save/load

60a continuous current supporting up to a 2 second peak 100a surge (100a firmware limited).

Data ports for a quadrature encoder, limit switches, and analog sensor, as well as, the NEO brushless motor internal position & temperature sensors.

Spark

REV Robotics
has a modern motor controller called a Spark.
60A continuous current with passive cooling, bi-directional limit switch inputs for smart mechanism control, an RGB LED status indicator, and a button-activated brake/coast mode.

Special Note:
When the SPARK is not receiving a PWM signal (robot Disabled or PWM disconnected) it temporarily reverts to coast mode, no matter what the button setting is.

Wiring Connections:

A red/white connector goes to a PWM output (red=signal, white=ground) This is only used as a signal to Enable/Disable the motor with the robot.

A black/blue connector goes to a DIO (blue=signal,black=ground) This produces a PWM signal to control the direction and speed of the motor.

Bare Red/white wires connect to the PDP (20a breaker) and provide the power.

If Tach/Direction wires have been added to the Nidec harness, then they each go to signal DIO pins. No ground or power wires are required.

There is a caution with the brushless wiring.
**** If the DIO connection comes loose, then the motor will race uncontrollably while the robot is Enabled. ****

It is designed to be disabled when the robot is disabled, so it can be quickly halted if this happens. But remember that if it happens during a match, then the only way to Disable the runaway motor is by eStop and your role in the match is over.
Consider your application carefully to account for this possibility. A racing beater bar isn't a problem, but a racing gripper might burn out the motor or damage the mechanism.
You can program in a safety override to disable the motor with a button, or to automatically disable the motor whenever it's in neutral.

Note also that the integrated tachometer does not operate while the motor is disabled.

Automation Direct Solid State Relays

12v power comes from a PDP Wago output, using appropriately sized wiring, and the power inputs are reverse polarity protected.
The control typically connects to a roboRIO relay output, but can also be connected to a (DIO) Digital output.
This relay is legal for FRC use beginning in 2019.
12a, 25a, or 40a versions are FRC legal (momentary surge peaks of 27a/50a/90a respectively).
Metric terminal screws.

CAN interface as well (Jaguar CAN is NOT LEGAL for FIRST competition use any longer)

Status LED indicates run, direction, and fault conditions

Limit switch inputs for forward and reverse directions (MUST have jumpers or limit switches connected for the Jaguar to operate in forward or reverse)

Brake/coast mode selection

Larger than an IFI Victor 884 Speed Controller

Calibration feature

NOT reverse polarity protected

Terminals use 6-32

Valid CAN IDs 1-63 with ID 1 being the factory default. Jag IDs should be set to something other than the factory default of 1, since any new Jag plugged into the CAN network would be in conflict with any already existing device at address 1.
Note that the Jaguar CAN ID can be the same as any different device type (e.g. PCM or PDP), because the IDs only have to be unique by device type.

The Jaguar provides smoother control and is especially valuable at fine-tuned low speed control and it self-protects against over-current/temp. The Victor can handle some higher current stress
for longer periods of time, but in a severe over-current case it would fail catastrophically. There are also reports of the Jaguar not working well with the Denso window motors. In any case
new applications should be throughly tested to see which speed controller is more appropriate.

Fault Conditions

A slow flashing Red LED indicates that the MDL-BDC detected one of the following fault conditions:

Power supply under-voltage

Over temperature

Over current

Limit switch activated in the current direction of motion

When a fault condition occurs, the motor shuts down and the LED indicates a fault state during the
fault condition and for 3 seconds after the fault cause is cleared (except for the limit switch fault,
which is cleared instantly). A slow flashing Yellow LED indicates that the MDL-BDC is not receiving a
valid control signal.

CALIBRATION PROCEDURE

To calibrate the servo-style PWM input for a specific range,
connect a PWM source, then:

1. Hold down the USER switch with a straightened paperclip.

2. After 5 seconds, the LED flashes Red and Green quickly to indicate Calibration mode.

3. Instruct the controller to send a full-forward signal.

4. Instruct the controller to send a full-reverse signal.

5. Instruct the controller to return to a neutral signal.

6. The LED flashes Green and Yellow quickly to indicate a successful calibration. (Red & yellow means failure to calibrate)

7. Release the USER switch.

The MDL-BDC samples these signals and centers the speed
range and neutral position between these limits. A calibration
failure will be signaled if an out-of-range signal is detected.
To reset the servo-style PWM input to the default factory range:

1. Disconnect the power to the MDL-BDC.

2. Hold down the USER switch with a straightened paperclip.

3. Reconnect power to the MDL-BDC

4. After 5 seconds, the LED flashes Red and Green slowly to indicate a successful calibration reset to factory settings.

5. Release the USER switch.

To use a CAN interface with the Jaguar, see the
Jaguar Getting Started
document for CAN wiring instructions.
In addition, the roboRIO no longer uses the RS232 port for CAN communications, so the wiring for the first Jaguar in a CAN chain just requires that the two CAN wires
be connected to one of the PDP CAN ports.

Note: FIRST software support for Jaguar CAN has been dropped as of the 2018 season.

Source: Discontinued

Speed Controller-Victor

Note: This model has been discontinued
This has been around longer than the Jaguar and has different characteristics. The Victor allows high current for longer than the Jaguar, while the Jaguar permits finer control. The Jaguar also does not seem to work well with the Window motors under certain circumstances, causing the Window motors to heat up unusually and be shutdown by the Window motor's thermal overload protection.
The Victor has improved models over the years (883/884/888), and the current model 888 have improved response.

Speed Controller-Talon

Note: These models (Talon & Talon SR) have been discontinued
Brushed DC motor speed control featuring a sealed design with passive cooling and a footprint slightly smaller than a Victor. Without the optional fan it is also much shorter.
From
Cross the road electronics

HiTec Servo

The HiTec servo is a small motor that can be commanded to rotate to a particular position in a range of ~270 degrees.
It has a varied of "horns" or the white part in the accompanying photo that are interchangeable, and are often used with homegrown mechanical linkages to increase their effectiveness.
This attaches to the roboRIO PWM outputs and is powered by the 6v power from the PWM connection,

Driver Station (DS) Application

First, The Driver station is really a custom FRC application that can be run on most Windows OS's
The Driver Station application is closed source to secure dependable robot safety protocols and must be used by all teams to compete.
The Driver Station provides feedback on PC to robot communications (overall and ping statuses for components in the network).

Some useful capabilities include:

Setup tab

Click on the arrow next to the team number to list any robots that are responding to the existing team number filter. Holding shift will show all responding devices on the network. Selecting from the list will choose that robot co connect to.

A companion application called the Dashboard can be created by the team from tools provided by FIRST or completely generated on their own.
A fully operational and comprehensive default Dashboard LabVIEW application comes from FIRST, which can be used as-is, modified, replaced completely, or eliminated, as the team desires.
The default Dashboard provides:

Two robot camera displays

data feedback on joystick positions&buttons

Driver Station (DS) (2012/2013/2014/2015 version) Hardware

FRC provides teams starting out with a rugged low-end netbook called a Classmate to serve as host to the Driver Station software.
It has enough power to support all the basic Driver Station and Dashboard operations.

Any laptop is now legal with only the Driver station application a requirement.
Rookies are still provided with a Classmate. FIRST provides new (optional) Classmate images to update older Classmates to Windows 7 (if necessary) and pre-install the current year's
programming environment(s).
The oldest E09 only installs the Driver Station, because the very limited disk space does not leave enough room for today's larger programming tools.

It is important to install the proper image for the model Classmate. The wrong image will give you an operational netbook, but the drivers will be incorrect. Usually the first indication that the wrong image was loaded is that the video appears stretched and is limited to 800x600 or 640x480 rather than the normal 1024x600.
You can find the Classmate model number inside the battery compartment.

A rolling press of all three [ ] \ keys will Enable the robot
Enter key = Disable robot

The built-in Ethernet port will eventually get damaged with the typical rough handling they get being connected/disconnected for each match. The cable retention clip breaks on many machines. Employ an Ethernet pigtail tied down to a driver station panel to reduce stress on the built-in Ethernet port. A usb-Ethernet adaptors works as a substitute when the regular port is broken or your laptop doesn't have a port.

Triple check that your IP settings are exactly what is required by the playing field:

Ethernet port IP - DHCP

Disable wireless and all other unused network cards.

Keep your laptop battery fully charged and plugged in at ALL times. Many failures are due to a lack of laptop battery power - USB ports brown-out, laptops slow down or sleep to conserve power or go to sleep/hibernate while a match is in progress.

Disable all power saving features and keep your laptop plugged in at all times instead: in the pit, on a power inverter in match queue, in the field Player Station power outlet.

Windows is notorious for cutting power to external ports while the laptop is on battery or after hibernating/sleeping.

USB safeguards:

Set USB power saver settings to avoid power cutbacks.

Step 1: Device Manager

Open the Device Manager. Win 8, hold the Windows key and press the 'x' key to open a menu in the lower-left and select "Device Manager." Using Win 7, open the Start Menu, type "Device Manager" in the search field, and click it.

Expand "Universal Serial Bus controllers"

Right-click each entry titled "USB Root Hub" and select "Properties"

Change to the "Power Management" tab

Uncheck the check box next to "Allow the computer to turn off this device to save power"

Press "OK"

Repeat this for each "USB Root Hub" entry

Reboot the computer

Step 2: Power Options

Search for "Power Options" and open them or go to Control Panel -> Power Options

For your current Power Plan choose "Change Plan Settings"

Select "Never" for everything if you know what's good for you (okay this isn't a USB thing, but hey). (Note: this means you have to be really conscientious about keeping the laptop plugged in at ALL times (Pit, Queue, Field).

Choose "Change advanced power settings"

Choose "USB Settings" -> "USB selective suspend setting"

-> On battery: Disabled

-> Plugged in: Disabled

If using more than one USB device, i.e., multiple joysticks, distribute the USB load across all the laptop USB ports that you have. Keep critical joysticks on their own USB port.

Avoid ganging multiple USB devices up on a single USB hub. Bigger hubs are worse, because larger hubs and more devices require more power and USB has a 500mA limit. If used, small hubs are best.

Avoid complicated joysticks that draw an excess of USB power. Power hungry fancy sticks or ones with glittery LEDs require more power and won't fare as well as plain vanilla generic joysticks when a brown-out occurs.

Ethernet port safeguards:

The same as for USB, set the Ethernet port power saver settings to avoid power cutbacks.

Open the Device Manager. Win 8, hold the Windows key and press the 'x' key to open a menu in the lower-left and select "Device Manager." Using Win 7, open the Start Menu, type "Device Manager" in the search field, and click it.

Expand "Network adaptors"

Right-click each entry and select "Properties"

Change to the "Power Management" tab

Uncheck the check box next to "Allow the computer to turn off this device to save power"

To control the robot the Kit of Parts includes the classic Attack3 Joystick and others through FIRST Choice or the physical kit.
Any USB wired game controller can be used, such as Xbox 360 or Playstation 3 USB compatible game controllers.
It just has to be recognizable by the Windows OS with an appropriate hardware driver on the Driver Station laptop as a game controller.
Non-game controllers such as keypads are not recognized by the Driver station application.

Note: Some game controllers (like the F310 above) have mode buttons and switches that change how the buttons and axes are mapped.
This can inadvertently lead to a mysterious loss of control if the driver hits the button/switch accidentally.
Controllers without such a switch are more foolproof to use.

Warning: power hungry controllers and loaded down USB hubs may brown out during competition. Basic controllers connected directly to the laptop USB ports with power saving turned off are safest.
When the driver station is running on laptop battery it begins to cut power to USB ports starting with the ports with the highest power drain.
Usually, that means starting with ports connected to bigger drain USB hubs that have several devices hanging off them, or LED heavy game controllers.
Changing Windows USB Power Settings

Source: Game console retailers like Best Buy, GameStop, Target, Walmart

Texas Instruments MSP430 Launchpad (2015)

The Launchpad requires custom firmware provided by TI to set it up to behave like a standard HID joystick (or two joysticks), making buttons and dials available for user custom designed control board extensions.
The board itself is powered by and communicates through a USB connection to the laptop/netbook running the Driver Station application.

Texas Instruments Stellaris Launchpad Evaluation Kit LM4F120 (2014)

The Stellaris requires custom firmware provided by TI to set it up to behave like a standard HID joystick (or two joysticks), making buttons and dials available for user custom designed control board extensions. The unit is stackable with other breakout boards to add capability or simplify screw terminal connections.

Cypress CY8CKIT-049-42xx

This year's version of the Cypress demo board can be used for driver station buttons and potentiometers.
One end of the board itself is a USB connector that can be plugged directly into a laptop, but it needs to be supported somehow. It can also connect to a standard A/A USB cable that then plugs into the laptop making a somewhat more secure connection.
The board has through holes where wires must be soldered to make use of the connections you want.

Rockwell Robot Status Light

Part #: 855PB-B12ME522
This is an LED light that only pulls 62mA (12v), but is quite bright.
Wired one way it will flash forever, but wired correctly it will repeat exactly what the RSL LED on the roboRIO does.
Ground, Power and most importantly-a jumper MUST be used.
RSL Wiring

The RSL blink pattern tells what state the robot is in. The patterns can be changed year-to-year but in 2015 they are:

solid=Disabled

regular blinks=Enabled

Main Breaker/Robot Power Switch

The battery connects through Anderson connectors to this 120 amp breaker used as the main robot power switch.
It is very unlikely that this will ever trip under normal conditions as it withstands amperage much greater than 120a for some period of time before tripping.
If it does trip you have a serious electrical problem, or ill designed overloaded power draws.

Snap Action Breakers

These mount in the Power Distribution Panel and are self-resetting 40/30/20 amp breakers for individual circuit protection. It's important to remember that these only safeguard the wiring, and it's critical that they each be used with the properly rated wire gauge (or better). They do not protect devices like the speed controllers.
Snap-Action 30/20a Breaker Spec. Snap-Action 40a Breaker Spec.

EnerSys NP18-12 or MK ES17-12 Batteries

FRC robots are restricted to specific 12v batteries approved by FIRST for competition.
FIRST greatly expanded the list of approved battery models and has been willing to consider approving different models, but direct communication with FIRST including battery specs are required.
All battery models used in competition must appear on an approved FIRST list checked by inspectors.
One or two batteries are provided in the Kit and if they are the same past years batteries can be used as spares.
It's a good idea to have several (4-5) batteries (and chargers) for competition.

Sensors

The choice of sensors is generally wide open.
These are sensors that have appeared in the KOP in past years or that are commonly encountered on FRC robots.
FIRST generally places only a few rules restrictions on sensors, such as limitations on potentially hazardous higher powered laser-based sensors and a $400 max price per unit.
FRC 2011 Sensor Manual

USB Cameras

Any USB camera will work with the roboRIO that is
Linux UVC compatible (there's a list of compatible USB cameras at that link).
We tested both the Microsoft HD3000 LifeCam (shown) and the Logitech HD Pro Webcam C920 on the roboRIO.

Since it is a USB device connected directly to the roboRIO you must have user code to process and/or forward the video stream to the Dashboard for viewing.

Axis 206/M1011/M1013 Webcam

This optional network camera is connected through the DLink network bridge (any cable/camera model). For the default camera code to work with it there must be a special user account - username: FRC/password: FRC

Note: the screw mount on the camera back takes an M4 metric nut.
The power plug is size H: Tip size: 3.4mm O.D.x1.3mm I.D.

Kit Gyroscope

The gyro positive direct is shown on the board.
The second triplet of pins returns temperature (not commonly used).
FRC Gyroscope Specs

Kit Accelerometer

Analog Devices ADXL345 3-axis Digital Accelerometer.
Maximum of 250 degrees per second for the Analog Devices ADW22307. Nominal output is 2.5V at standstill, plus 7mV/¡/s.
This connects to either the roboRIO SPI or I2C communication ports.
SPI output (J4):
wire to Digital I/O pins on the roboRIO

Connect CK, DI, DO, CS in order to four Digital I/O pins

Connect 0V to a ground (-) pin

Connect 5v to a power pin

The alternate I2C output (J2):
wire to the pins on the roboRIO found next to the input power connector.
By default, the I2C address of this accelerometer board is 0x3A. The address can be changed to 0xA6 by shorting J1 with a blob of solder.

Connect 5V to 5V from a DIO power pin. Not that the I2C 3.3v pin doesn't have enough power for this particular sensor board.

Pneumatic Pressure Sensor

The pressure switch sensor is used as part of the pneumatic sub-system. It tells the controller when to turn the compressor on as the air pressure drops, and when to turn it off as pressure reaches maximum.
It connects to a specific reserved input on the PCM. The terminals are interchangable.

Potentometer

Potentiometers (or "pots") in robotics are most frequently coupled to a mechanism to measure the angle of rotation or a distance of mechanism travel.
It is a simple analog device that's a little noisy, so doesn't return an exact value and has a certain amount of flicker in it's readings.
Think of a volume control knob (avoid "audio tapers" for robotics use though) or a light dimmer.
Pots come in several useful varieties:

Linear - limited travel, typically used as faders on sound or lighting boards.

String - the most expensive type has a spring loaded wire reel that measures how far it is pulled out.

They have three terminals:

ground (-)

signal

power (+)

with two wiring options: 1) voltage divider, or 2) variable resistor
The voltage divider (used when connected as a cRIO Analog input) uses all three terminals.
The variable resistor only requires the ground and signal terminals.

Limit Switch

Limit switches are intended to be pressed by some mechanical mechanism to signal a stop or limit of movement.
The switch connects to a roboRIO digital input and is marked on the side with a simple wiring diagram.

NC stands for "Normally Closed" and means the switch will read as closed until it is activated

NO stands for "Normally Open" meaning the switch will read as open until it is activated

There are design reasons that you may want one over the other, but often it doesn't matter which is chosen.
Normally Closed is desirable when you want to know if the switch is broken as a safety measure. This might be helpful if you have a mechanism that destroys itself if you cannot detect the limit.
If the switch gets ripped off or otherwise becomes disconnected, then it will read as if the mechanical limit has been reached and your code can prevent the mechanism from moving in the direction of the limit switch.
Normally Open is how most people typically think of switches operating.
There are two wiring options. The switch only requires two connections: