The roboRIO: The Robot's Brain
What the roboRIO is, the I/O it provides, and how it is powered and connected.
Sign in to track progress, earn XP, and save lessons.
What the roboRIO does
The NI roboRIO is the only legal main robot controller in FRC (rule R701). It pairs a dual-core ARM Cortex-A9 processor with a Xilinx FPGA (the roboRIO is built on a Xilinx Zynq SoC). The FPGA handles time-critical and safety functions - including the watchdog that disables the robot when communication drops - while your team code runs on the Linux side of the processor.
The current generation is the roboRIO 2.0 (AndyMark SKU am-3000a), which boots from a microSD card (a 4GB card ships pre-installed) instead of the internal flash used by the original roboRIO 1.0. Its processor runs at 866 MHz with 512 MB of DDR3 RAM. You must image the microSD card with the current-season WPILib/NI tools before competition (2026 uses image 2026_v1.2 per R701).
Onboard I/O
The roboRIO is loaded with connectors so you rarely need extra hardware:
- PWM ports (0-9) - command motor controllers and servos with a simple pulse signal.
- DIO (Digital I/O) - read limit switches, encoders, and beam-break sensors.
- Analog In - read potentiometers and analog sensors.
- Relay ports - drive Spike-style relays (legacy).
- CAN - a two-wire (CANH/CANL) digital bus for motor controllers and the PD.
- Ethernet - the main link to the radio.
- USB - host ports for cameras and a device port for direct programming.
- I2C, SPI, RS-232, MXP - additional sensor and expansion buses.
Powering the roboRIO
Rule R615 allows the roboRIO power input to connect only to: the dedicated supply terminals on a PDP; a non-switchable fused channel on the PDH (channel 20, 21, or 22) with a 10A fuse/breaker; or any single fused channel on a PDP 2.0 with a 10A fuse/breaker.
Key wiring facts from the official wiring guide:
- Use 18 AWG red and black wire.
- Protect it with a 10A fuse or breaker (R615).
- Connect red to V and black to C (common) on the roboRIO power connector, and tighten the screws with a small flat screwdriver.
The Power LED should glow green once powered. A red Power LED or an unhealthy Status LED signals a problem worth investigating immediately.
CAN on the roboRIO
The roboRIO's CAN port is one physical end of the robot's CAN bus. The other end is typically the PD, which contains a 120-ohm terminating resistor. Use 22 AWG wire for CAN and strip about 5/16 in (~8 mm) for the roboRIO's spring (WAGO-style) terminals.
Sources
Key takeaways
- The roboRIO is the only legal FRC main controller; the 2.0 (am-3000a) boots from a microSD card you must image each season.
- It runs an 866 MHz dual-core ARM Cortex-A9 with a Xilinx FPGA, and provides PWM, DIO, analog, relay, CAN, Ethernet, USB, and serial I/O.
- Power it with 18 AWG on a 10A-protected channel - a PDP dedicated terminal, a PDH non-switchable channel (20/21/22), or a fused PDP 2.0 channel (R615).
- Its CAN port anchors one end of the CAN bus; use 22 AWG and respect the 120-ohm termination.
Go deeper
Lesson quiz
RequiredAnswer all 3 questions correctly to complete this lesson.
1.Which processor architecture does the roboRIO use alongside its reconfigurable FPGA?
2.Which set of I/O interfaces is built directly into the roboRIO for connecting sensors and actuators?
3.What happens when the roboRIO's input voltage drops to its Stage 2 brownout level (6.75V by default)?
Answer every question to submit.