Evan Pratten

Software Developer

An overview of the tech on a complex FRC robot

This document is aimed at a small handful of people, but published publicly as reference material for anyone that needs it. All contents are highly specific to the FRC robotics electrical and programming environments.

Table of Contents

Types of devices

There are three types of devices found on an FRC robot:

  • Computers
  • Microcontrollers
  • Peripherals

On-robot computers

The main computer on-robot is of course the roboRIO. The roboRIO is a standard Real-Time Linux device running a custom Kernel, built on Busybox. The main system users are admin (the administrative user with full system write access), and lvuser (this user is the one that executes the robot program).

If you SSH into the roboRIO (ssh admin@10.TE.AM.2), and navigate to /home/lvuser/, you will find the robot program (probably a .jar), along with the deploy folder, and a script that starts it all. You can stick anything in this script and it will run when the roboRIO boots.

Other on-robot computers include the Limelight (which is just a Raspberry Pi Compute Module v3), the router (although you can't really run custom code on it), and any Raspberry Pis that might be used.


Aside from the obvious, Arduinos, other on-board microcontrollers include any CTRE devices or "smart" REV devices. Each speed controller and control module is running some pre-compiled firmware on its own. Some of these devices (like the Talon SRX and the Spark Max) allow us to push custom code to them at runtime (like an off-board control loop) over the CAN bus. The NavX is also a microcontroller, communicating over Serial-over-MXP.


Things like AD Gyroscopes, buttons, rangefinders, color sensors, etc. are all dumb peripherals. These behave exactly like any device you would connect to an Arduino.

"The list of blinky things"

The list of blinky things is a list I came up with years ago for quickly answering the question of "what does that blinking light mean?".

OpenMesh Radios

The current fleet of robots are using OpenMesh radios for 2.4GHz and 5GHz communication.

These radios come in two models (found on the bottom of the radio). First is the OM5P-AN and the second is the OM5P-AC. The AC variant is the newer (and faster) model. It is also more locked down. You can flash OpenWRT to the AN model and use it as a practice field router (which I have done before).

These are consumer routers designed for home use! They are not in any way good at robotics applications. You will want to follow this guide to protect your routers before putting them on the field.

For information on flashing routers, see here. Routers from Israeli teams will be incompatible with any north american tech, so they need to be reflashed to match our regulations.


CTR ElectronicsPower Distribution PanelPDF
CTR ElectronicsVoltage Regulation ModulePDF
CTR ElectronicsPneumatic Control ModulePDF
CTR ElectronicsTalon SRXPDF
CTR ElectronicsVictor SPXPDF
Rev RoboticsSpark MaxHTML
Rev RoboticsSparkPDF
National InstrumentsroboRIOPDF
Kauai LabsNavX-MXPPDF

More devices can be found in this list.

Reference Material