RoboRIO Documentation

RoboRIO

The RoboRIO is an industrial robotics controller built by National Instruments, and contracted by FIRST for use by FRC teams from 2015 to 2021.

Hardware

RoboRIO without cover

The RoboRIO is based on a Xilinx Zynq-7020 SoC. This chip both contains an ARM Cortex-A9 CPU, and an FPGA.

Specifications

The RoboRIO has a dual core ARM Cortex-A9 processor, running with a clock speed of 667mhz. The RIO also has 512 MB of on-board storage, and 256 MB of RAM, clocked at 533mhz.

A full overview of the the RoboRIO I/O and device info can be found on the RoboRIO Specification sheet.

Software

The RoboRIO runs a Linux + Busybox OS with realtime extensions for interaction with the FPGA. This OS also comes with it’s own package manager, OPKG, which can be used to install additional tools onto the RIO (Like GCC, or Python).

The OS, by default, has two notable users. admin, the system administrator, and lvuser. lvuser is the user that runs all software on the RoboRIO. Upon startup, the Bash script located at /home/lvuser/robotProgram is executed by the lvuser user, and the contents of this script should run the main user program.

By default, the RIO will only run LabVIEW or native programs. Other languages and tools can be installed and configured by the user. To run Java software, tools like GradleRIO will load a custom JVM onto the RIO. Some FRC teams choose to develop with ROS, and can use tools to deploy an ROS environment to their RoboRIO.

Hardware Access Layer

National Instruments provides a Hardware Access Layer (HAL) library for interacting with the FPGA. The HAL contains hooks for the following:

  • I/O
    • PWM
    • DIO
    • AIO
    • Relays
  • Networking

Software libraries

Multiple software libraries exist for interacting with the RoboRIO FPGA:

Extension libraries

Many libraries also exist to extend the functionality of the libraries listed above. For example: