roboRIO — FRC Robot Controller
Overview
The roboRIO is Team 2890’s central robot controller — the brain that runs all robot code, reads sensors, and commands motors. It connects to the PDH via CAN, communicates with motor controllers, and runs the autonomous and driver control programs.
This is the final year for the roboRIO. A replacement system (SystemCore) is coming for future seasons.
Key Specifications
| Parameter | Value |
|---|---|
| Processor | Dual-core ARM Cortex-A9 Real-Time |
| FPGA | Xilinx (customizable) |
| Communication | Ethernet, USB, RS232, I2C, SPI |
| Motor control | PWM, CAN (via SPARK Flex) |
| Built-in | I2C, SPI, encoders, accelerometer, LEDs, buttons |
| Weight | Light, compact |
Built-in Ports
- I2C — sensor communication (time-of-flight, IMU)
- SPI — high-speed sensor communication
- RS232 — serial devices
- USB — development/camera
- Ethernet — radio, field communication
- PWM — legacy motor control (8 ports)
- Relays — spike/legacy solenoid control
Imaging
Before deploying code, the roboRIO must be imaged with the correct FRC firmware. This is a common troubleshooting step when the robot acts up.
Connection to Training
For students: The roboRIO is the brain. Key concepts:
- Real-time processor — runs code predictably, not like a PC
- FPGA — handles timing-critical signals (PWM, encoder counters) in hardware
- CAN vs PWM — modern robots use CAN for smart motor control; PWM is legacy
- I/O mapping — each sensor port has a defined role
Related training modules:
- systemcore — the replacement controller coming next year
- power-distribution-hub — PDH connects to roboRIO via CAN
- spark-flex — receives commands from roboRIO over CAN
- frc-software-stack — understanding the code deployment pipeline
Source Links
- WPILib docs: https://docs.wpilib.org/en/stable/docs/software/roborio-info/roborio-introduction.html
- Technical specs: https://www.ni.com/docs/en-US/bundle/roborio-frc-specs/page/specs.html
- User manual: https://www.ni.com/docs/en-US/bundle/roborio-20-umanual/page/umanual.html
Notes
Chris says this is the last year for the roboRIO. SystemCore is the replacement — a next-gen controller that will eventually replace the NI/roboRIO stack. Teams will need to migrate code and potentially reconfigure motor controllers for the new platform.
This is a significant curriculum planning concern: teach students the current system, but prepare them for the transition. The programming patterns (PID, motion profiling, autonomous sequences) will carry forward even as the underlying hardware changes.