The roboRIO
Jump to →
1. General roboRIO Overview
➠ What is a roboRIO?
➠ Connectors
➠ Wiring Diagram
2. Configuring the roboRIO
➠ Installing/Updating New Firmware
➠ Imaging/ Reimaging a roboRIO
3. Connecting to the roboRIO Wirelessly
4. The CAN Bus
➠Introduction
➠Wiring the CAN
General roboRIO Overview
➠ What is a roboRIO?

A roboRIO is a more recent version of the cRIO (compact Reconfigurable Input/Output) that was introduced to FRC teams in the 2015 season. It is a faster, smaller, and more powerful version of the previous controller. Like the cRIO, it acts as the brain of the robot, and connects to a D-Link router using an ethernet cable. Additionally, the roboRIO combines the functions of the digital sidecar including the digital and analog modules of the previous control system. The roboRIO is more robust than the digital sidecar, and is protected from shorts between its external pins.
Specs
Basic Overview
- Dual-Core ARM Cortex 667 MHz processor
- 256 MB RAM
- 512 MB NAND storage memory
- Linux Operating System with real-time extensions
- Supports LABVIEW, C++, and Java
Physical/Electrical Characteristics
- 6.8 V to 16 V input power (staged brownout from 4.5 V to 6.8 V)
- 3.3 V user output (with 1.5 A maximum)
- 5 V user output (with 1 A maximum)
- 6 V servo output (with 2.2 A maximum)
- Operating temperature 0°C - 40°C
- Storage temperature -20°C - 70°C
- 5.7 inches by 5.6 inches, weighs 12 ounces
I/O and Communication Ports
- 10 dedicated PWM channels
- 10 DIO dedicated channels
- 4 bi-directional Relay Control channels
- 2 USB Host ports
- 1 USB Device port
- 1 Ethernet port
- 1 CAN Port
- 1 Integrated, 3-axis accelerometer
- 12 V Robot signal light channel
➠ Connectors

Weidmuller Connectors are used to supply power to the roboRIO, PCM (Pneumatic Control Module), and VRM (Voltage Regulator Module). The connector accepts wire gauges from 16 AWG to 24 AWG. Wires can be inserted into or removed from the Wiedmuller connector by pushing down on the white tab using a tiny flathead.
➠ Wiring Diagram

Notes:
- The CAN Ports on the roboRIO are used to connect to the PCM and PDP
- The roboRIO is connected to the PDP through its input power ports. Do not connect the roboRIO directly to the robot battery.
- The USB Device port can be used to connect to a computer to update the roboRIO firmware and to reimage the roboRIO.
- The LEDs indicate the current status of the roboRIO.
- The roboRIO can be mounted using zip-ties through the mounting features.
Please see the Appendix for an example wiring of the whole control system.
Configuring the roboRIO
Before a brand new roboRIO can be put into action, you must first install the latest roboRIO firmware and then re-image the software using the latest version. Before you begin, ensure that the NI (National Instruments) suite is updated. The NI update as well as instructions for downloading it can be found below: https://wpilib.screenstepslive.com/s/4485/m/13503/l/144150-installing-the-frc-2015-update-suite-all-languages
➠ Installing and Updating the roboRIO firmware
Prior to the imaging of the roboRIO, the firmware on the roboRIO must be upgraded to the latest version. This process will provide the bootloader, safemode, and firmware for the roboRIO. While it is possible to do this using an ethernet connection, it is not recommended. The firmware can be updated using your system’s web browser in the following steps:
- As shown in the electrical layout below, connect the roboRIO to your computer using a printer USB cable and supply power to the roboRIO.
- The driver should install automatically. Once the download is complete, open a web browser on your computer.
- In the address bar of the web browser, type “172.22.11.2” and press enter.
- Click login. “admin” will be the username and leave the password field blank. Then, click “Update Firmware”
- Look for the roboRIO (. file in your National Instruments folder. The default location of this file is under “Program Files\National Instruments\Shared\Firmware\cRIO\76F2”

- Click “Begin Update”
➠ Imaging and Reimaging the roboRIO
The roboRIO Image loads the FPGA, operating system, linux file system, and default settings for the roboRIO. Now that the roboRIO has the latest firmware installed, it is now possible to image the roboRIO in the follow steps:
- Ensure that the roboRIO is still powered from the PDP (Power Distribution Panel) and is still securely plugged into the computer using a printer USB cable.
- Look for the roboRIO Imaging tool (.exe file) as shown below. It is located within the National Instruments file folder, and its default location is “National Instruments\LabVIEW 2014\project\roboRIO”

- Double click to run the “roboRIO_ImagingTool.exe” application, and the the interface will attempt to identify connected roboRIO devices.
- Enter your team number under “System Information.” Select the latest version of the roboRIO Image (indicated by the highest version number) and the name of the roboRIO you intend to image.

- Select the Format Target option but make sure that the Console Out and Disable RT Startup App options are not selected. Click “Reformat”
- Once the Imaging is complete, click “OK” on the completion message and Reboot the roboRIO using the Reset button.
Connecting to the roboRIO Wirelessly
- Change the IP address and subnet mask of your computer. The IP address should be “10.xx.yy.100”, with xx and yy being your four digit team number, and the subnet mask should “255.0.0.0”

- Connect to the team’s wireless router. It’s that easy!

Uploading Code to the roboRIO
With the introduction of the roboRIO to FRC teams in 2015, uploading code to the robot is made easy! Here’s the steps:
- Establish a network connection to your robot network. On your computer, go to your network connections and connect to the router that is connected to the roboRIO. Don’t worry if you’re already connected to another network, as you will automatically disconnect from that network connection.

Connecting to a network
- Build your Project. Click the “Project” option and then click “Build Project.” To upload code to the roboRIO, it is only necessary to build the project for uploading code that hasn’t been build in the past or was modified, but it’s a good habit to always build your projects before uploading them to the robot. Therefore, we recommended having your “Build Automatically” setting enabled.

Building an Eclipse project
- Run your code. Press Ctrl + F11, and when prompted how you would like to run your code, select the “WPILib C++ Deploy” option and press OK. Now you’re done! Wait for the Driver Station to show that communications has been established, and you’ll be on your way to testing your code!

Running your code using “WPILib C++ Deploy”
The Controller Area Network (CAN) Bus
➠ Introduction
As of the 2015 FRC game, Recycle Rush, teams are required to use the CAN bus on the roboRIO when connecting to the PCM, PDP, Talon SRXs, and Jaguars <R 60-62>.
This section will not go over how to use CAN on the Talon SRX (you can read CTR’s Talon SRX User guide) or the Jaguar, because our team does not have experience with these items.
By connecting the control system together with CAN, the PDP and PCM can communicate with each other. The PDP provides monitoring for each of its outputs. A main advantage of this system is that compressors and pressure switches no longer need to be connected to a Relay Spike.
➠ Wiring the CAN

When wiring, we recommend twisting the two wires together. There are no specific buses for input/output but by convention, we use the left bus as input and right bus as output.
If you are not using the roboRIO or PDP as terminals for the CAN chain, terminate the CAN chain by inserting a 120 Ω resistor into the Weidmuller terminals.