The FRC Control System Explained: roboRIO, PDH, Radio, and Everything Between
The FRC control system explained: how the roboRIO, REV PDH, radio, motor controllers, and CAN bus connect to make your robot drive — a plain-English electronics board tour.
- to read
- 8 min
- words
- 1,810
- sections
- 9
to read
words
sections
The FRC control system is the collection of legal electronics that lets your robot receive commands and drive motors: a roboRIO as the brain, a power distribution hub feeding everything from the battery, a radio that carries data to and from the driver station, and the motor controllers, breakers, and wiring that tie it together. If you can name each box and trace how power and signals flow between them, you understand the whole board — and you'll pass inspection a lot faster.
This is the one subsystem every team has to get right. A brilliant mechanism bolted to a sloppy control system just sits there and blinks error codes. This is the map of every major component and how the pieces connect — not the connector-by-connector build. When you're ready to actually run wire and crimp, our how to wire an FRC robot guide walks the physical assembly; here we name the boxes and trace the flow so the wiring guide makes sense when you get there.
The mental model: power flows one way, data flows both ways
Before the parts list, hold this in your head. Power starts at the battery, passes through a big main breaker, lands on the power distribution board, and fans out to every motor controller and electronic. Data is separate: the driver station laptop talks to the radio over the field network, the radio talks to the roboRIO over Ethernet, and the roboRIO talks to motor controllers over a communication bus called CAN. Power and data are two different plumbing systems that happen to share the same robot.
Almost every wiring mistake rookies make is confusing those two — running signal wire where a 40-amp motor branch should be, or forgetting that the radio needs both a data connection and its own power. Keep them mentally separate and the board stops being intimidating.
The roboRIO: the brain
The roboRIO (currently the roboRIO 2.0) is the official robot controller, made by National Instruments. It's the only device on the robot that runs your code. When you deploy a program written with WPILib in Java, C++, or Python, it runs on the roboRIO's real-time Linux processor about 50 times a second, reading inputs and sending outputs on every loop.
Physically it's a metal box covered in ports: Ethernet to the radio, a CAN bus out to your motor controllers and sensors, and PWM, DIO, and analog headers plus USB and the MXP expansion port for everything that doesn't speak CAN. Our lesson on the roboRIO walks the full I/O and how each port is powered. The one rule to carry from here: the roboRIO gets clean, regulated power on a dedicated channel from the power board — never wire it to a random 40A motor channel.
If you're the one writing the code that lives here, our Programming & Software guides walk through WPILib from install to your first working robot, and the become a robot programmer path sequences it lesson by lesson.
Power distribution: the PDH (and PDP)
Every powered device on the robot draws from one board. Most teams now run the REV Power Distribution Hub (PDH); the older, still-legal option is the CTRE Power Distribution Panel (PDP). They do the same job: take one thick pair of wires from the battery and split it into many individually-protected channels — a mix of high-current channels for motors and lower-current ones for electronics, plus, on the PDH, a software-switchable channel you can toggle over CAN. The exact channel counts and current ratings are worth confirming against current REV or CTRE documentation; our lesson on PDH vs PDP lays both boards out side by side. The concept never changes: one motor branch, one channel, one breaker sized to that motor.
The breaker matters. A typical brushless drive motor lives behind a 40A breaker; smaller mechanisms use 30A or 20A. The breaker is auto-resetting — if a motor stalls and pulls too much current, the breaker pops, the motor stops, and a few seconds later it resets. That's a feature, not a failure, and it's why you never bypass one. Branch circuit breakers and fuses covers which protection is legal and how to size it.
The battery, the main breaker, and the RSL
The robot runs on a single 12-volt, ~18Ah sealed lead-acid battery, and a weak or half-charged one is behind a huge share of "the robot got sluggish in the last 30 seconds" complaints. Number every battery, log its cycles, and rotate them — our lessons on the 12V battery and Anderson connectors and battery management like a pro team cover the specs, legal rules, and load-testing that keep you on a strong pack.
Between the battery and the power board sits the 120A main breaker — one big red button that is the master cutoff for the entire robot. Everything downstream of it dies when it's off, which is exactly what you want during pit work. The battery connects through an Anderson SB connector and heavy 6 AWG wire; that gauge is a rules requirement on the main run, not a suggestion. See the main 120A breaker for how it wires in and why it's the true master switch.
One small part with big consequences: the Robot Signal Light (RSL). It's a required amber light that shows the robot's state — solid when disabled, blinking when enabled — and an inspector will fail you without one. It's easy to skip in the rush of build season and easy to fix once you know it's mandatory.
The radio: how the robot talks to the driver
The radio is the robot's connection to the outside world. On the field, your driver station laptop (running the FRC Driver Station and the FRC Game Tools) connects to the field network, the field talks to your robot's radio, and the radio hands that data to the roboRIO over Ethernet. No radio link, no control — the robot just sits there disabled.
The specific radio has changed recently, so check the current game manual and Kit of Parts rather than trusting last year's memory: recent seasons (2025 onward) use the Vivid-Hosting VH-109, powered through a dedicated Radio Power Module (RPM), while older robots used the OpenMesh OM5P-AC. This is one of the few control-system pieces FIRST has actively swapped out, and how it must be powered is exactly what our lesson on the radio, VRM, and Radio Power Module pins down for the current season.
Two habits save event-day panic: give the radio its own regulated power path (never straight off a motor channel), and mount it high and away from big metal and motors so its signal isn't shielded. A radio buried at the bottom of the frame is asking for dropped connections mid-match.
Motor controllers and the CAN bus
A roboRIO can't drive a motor directly — it sends a low-power command to a motor controller, which switches the real current from the power board into the motor. The lineup shifts year to year (REV's Spark MAX and Spark Flex, CTRE's Talon FX built into integrated motors like the Kraken X60 and Falcon 500, plus the Talon SRX and Victor SPX); our motor controller lineup lesson matches each controller to the motors it drives.
Controllers talk to the roboRIO one of two ways. PWM uses one signal wire per controller with no data coming back. CAN is the modern default: a single two-wire bus that daisy-chains through every device, each with its own ID, carrying commands out and rich telemetry (current, temperature, encoder position) back. Most competitive robots put nearly everything on CAN because that feedback is what makes precise control and on-robot diagnostics possible — PWM vs CAN control covers when each still makes sense.
The CAN bus has two rules people forget until it breaks. It must be a continuous chain with a 120-ohm termination resistor at the end (the PDH has one built in), and a single broken CAN connection can drop every device downstream of it. When "half the robot stopped responding," a loose CAN wire is the first suspect. Spend real time in building a reliable CAN bus before you need it, and keep diagnosing CAN bus failures bookmarked for when yours misbehaves — clean CAN is the difference between a robot that finishes matches and one that doesn't.
The supporting cast: VRM and coprocessors
A couple of extra boxes show up on more advanced robots. The Voltage Regulator Module (VRM) takes battery voltage and outputs steady, regulated 12V and 5V rails for devices that hate the voltage sag of a hard-driving robot — LED strips, some sensors, and, on older setups, the radio. As batteries droop under load, regulated power keeps these devices happy.
Many teams also add a coprocessor — a Raspberry Pi, an Orange Pi, or a Limelight smart camera — for vision processing that would bog down the roboRIO. It connects to the roboRIO through a small Ethernet switch so the radio, roboRIO, and coprocessor all share the robot's network. It's optional, but it's how teams get reliable target tracking and vision-assisted scoring — AprilTags and vision coprocessors picks up where this leaves off.
How it all connects, in order
Trace a working robot from the battery out and it always goes the same way (our full robot wiring walkthrough builds exactly this, connection by connection):
- Battery → 120A main breaker → power distribution board (PDH/PDP).
- From the board: a dedicated regulated channel to the roboRIO, one fused channel per motor controller, and a clean power path to the radio (via its RPM or a VRM).
- Radio → Ethernet → roboRIO.
- roboRIO → CAN bus daisy-chained through the motor controllers and CAN sensors (with termination at the end).
- The RSL wired in so it reflects robot state.
If you can point at each of those five links on a real robot, you can debug most control-system problems and you can talk an inspector through your board without sweating.
Where to go next
The control system is one of those topics that feels like a wall of acronyms until you've wired it once, and then it clicks for good. If the vocabulary is what's tripping you up, keep the glossary open in another tab — roboRIO, PDH, VRM, RSL, and CAN all live there with plain-English definitions. If you're brand new to the whole program, start with Getting Started for the big picture. When you're ready to go component by component in depth, what is the FRC control system? opens our full Electrical & Wiring guides — the place to actually wire a board with this map in hand. Learn this board well and you become the person every FRC team is desperate to have: the one who can make the robot actually turn on.
Keep reading
More from the pit
Learn every department of FRC — free
Structured lessons, quizzes, and team tools. Built by an FRC student, for the community.