The Control System End to End

Module 5: The Control System End to End

Series: FRC Technical Foundations Unit: 3 — Electrical and Power Session length: ~3 hours Prerequisites: Lessons 1–4

What you should be able to do after this lesson

  • Name every component in the FRC control system and state what it does.
  • Trace the power path from battery to any actuator, and the signal path from Driver Station to any motor.
  • Bring a robot up from a factory-reset state.
  • Explain what a brownout is, why it happens, and how to prevent it.
  • Predict peak current draw for a mechanism and confirm it fits its breaker.

The whole system on one page

Every legal FRC robot has the same spine. Learn it once and it is yours for good.

Battery. A 12 V sealed lead-acid battery, roughly 5.8 kg. It is the source of everything and the limit on everything.

Main breaker. A 120 A breaker on the positive lead, the single point that disconnects the entire robot. Must be accessible from outside the robot.

Power distribution. Either a REV Power Distribution Hub (PDH) or a CTRE PDP / PDP 2.0. Battery in, many protected channels out. Each channel is protected by exactly one auto-resetting circuit breaker sized for its load — typically 40 A for large motors, 30 A or less for small ones.

roboRIO. The robot controller: a dual-core ARM processor plus an FPGA, running both the safety-critical trusted code and your team’s code. It has Ethernet, USB, CAN, PWM, DIO, analog, SPI, and I²C. It gets power from a dedicated regulated connection on the PD board.

Radio. The wireless bridge that links the robot to the Driver Station. In the current control system this is a Vivid Hosting VH-109, configured with your team’s encryption key at each event. Wiring details matter here and change between hardware revisions — check the current WPILib wiring page rather than assuming.

Motor controllers. The devices that actually switch power to motors. The modern ones are smart controllers on the CAN bus — SPARK MAX and SPARK Flex from REV, TalonFX integrated into Kraken and Falcon motors from CTRE. They do closed-loop control, current limiting, and telemetry on board.

Robot Signal Light. Required. Flashes when the robot is enabled, solid when disabled. It exists so that a human standing next to your robot can tell whether it is about to move.

Sensors. Encoders, gyros, limit switches, distance sensors, cameras. Some on CAN, some on DIO, some on USB.

Two paths, traced

Understanding the control system means being able to trace two independent things.

The power path

Battery → main breaker → PD board → channel breaker

   → motor controller → motor

Every actuator on your robot follows exactly this route. If a mechanism is dead, this is the sequence you check, in order, with a multimeter. Not by swapping parts.

The signal path

Driver Station laptop → radio → roboRIO (your code)

   → CAN bus → motor controller → motor

Notice these paths are almost entirely separate. They meet only at the motor controller. This is why a robot can have perfect communications and a dead mechanism, or a perfectly wired mechanism that never moves.

Rule 5.1 — Diagnose by tracing a path, not by swapping parts. Random substitution occasionally fixes the problem and never teaches you anything. Worse, it often introduces a second fault.

CAN is a bus, not a wire

This is the concept students most often miss.

CAN is a shared two-wire bus. Every device on it — motor controllers, the PD board, CANcoders, the Pigeon gyro — is connected to the same pair of twisted wires, daisy-chained from device to device. Each device has a unique ID, and they take turns talking.

Three consequences that matter enormously in practice:

One break kills everything downstream. Because it is a daisy chain, a single disconnected CAN wire halfway along the chain takes out every device after it. A robot where “the whole left side stopped working” often has one loose CANH wire, not four dead controllers.

Duplicate IDs cause chaos. Two devices with the same CAN ID will fight. Symptoms are bizarre and intermittent. Every device gets a unique ID, assigned deliberately, and written down.

The bus has finite bandwidth. Every device publishing status frames at a high rate consumes bus capacity. On a robot with twenty CAN devices, default status frame rates can saturate the bus and cause timeouts. Vendor tools let you slow down frames you do not need.

Rule 5.2 — Maintain a written CAN ID map, and keep it current. Device, ID, physical location, what it drives. Tape a printed copy inside the robot. You will use it at every competition.

Brownouts: the thing that actually kills matches

Here is a scene every FRC team recognises. The robot is driving fine. The driver accelerates hard while raising the elevator. Everything goes dead for half a second, then comes back. Nothing was broken.

That is a brownout.

What happens physically

A 12 V FRC battery is not an ideal voltage source. It has internal resistance — typically 10–20 mΩ, higher when the battery is old or cold. When you draw current, the voltage at the terminals drops by I × R.

Draw 200 A from a battery with 15 mΩ internal resistance and you lose 200 × 0.015 = 3 V immediately. A battery resting at 12.6 V is now delivering 9.6 V. Add voltage drop in your wiring and connectors, and the roboRIO may see well under 7 V.

The roboRIO monitors its input voltage. Below roughly 6.8 V it enters a staged brownout protection sequence, shedding non-critical loads and eventually disabling PWM outputs, to protect itself from resetting mid-match. The robot appears to die.

Why it is a design problem, not an electrical fault

Four brushless drive motors accelerating from a standstill can each pull over 100 A momentarily. Add an elevator and an intake and you can command 400 A of demand from a battery that cannot supply it without collapsing.

The fix is almost never bigger wire. It is:

  • Current limiting in software. Every modern smart motor controller supports a configurable current limit. Setting a 40 A stator limit on drive motors costs you almost nothing in real acceleration and removes the worst spikes. This is the single most effective brownout fix available.
  • Not commanding everything at once. Software interlocks that prevent the elevator from running at full speed during hard drivetrain acceleration.
  • Battery discipline. A battery that has been sitting after a match has a higher effective internal resistance than a rested one. Teams that rotate through six properly charged batteries brown out far less than teams with two.
  • Good connections. Every crimp and every connector adds resistance. A poorly crimped main lead can add several milliohms on its own.

Rule 5.3 — Set current limits on every motor before you drive the robot for the first time. Not after the first brownout. Before.

[ANECDOTE SLOT] — A brownout you diagnosed, ideally one that was initially blamed on something else entirely. These stories teach the “symptoms lie” lesson better than any explanation.

Wire gauge and voltage drop

Wire is a resistor. Longer and thinner means more resistance, which means more voltage lost and more heat produced.

Rules of thumb used across FRC:

Circuit

Typical gauge

Battery and main breaker leads

6 AWG

40 A motor branches

12 AWG

30 A branches

14 AWG

Small loads, 20 A and below

18 AWG

The current rule to internalise is the general principle behind them all: the breaker protects the wire, not the device. A breaker must be sized so that it trips before the wire it protects overheats. Putting a 40 A breaker on 18 AWG wire is how you start a fire. This relationship is specified in the game manual’s robot construction rules, and it is checked at inspection.

🔧 Exercise 5.1 — Bring-Up From Factory Reset

Time: 90 minutes. Equipment: A training chassis, a laptop with the WPILib suite installed, a roboRIO, a radio, the imaging tool, and vendor configuration tools (REV Hardware Client or Phoenix Tuner X).

Starting from a roboRIO that has been deliberately reset:

  1. Image the roboRIO with the current firmware and set the team number.
  2. Configure the radio.
  3. Update firmware on every motor controller.
  4. Assign and record unique CAN IDs.
  5. Verify the full CAN device list appears in the vendor tool.
  6. Deploy a minimal TeleOp that drives one motor.
  7. Confirm the Robot Signal Light behaves correctly enabled and disabled.

Do this without a step-by-step handout. Students should be navigating the official WPILib documentation, because that is the skill.

Evidence of learning: A working robot, a written bring-up checklist produced by the students, and a completed CAN ID map.

🔧 Exercise 5.2 — Voltage Drop Lab

Time: 45 minutes. Equipment: A chassis with brushless drive motors, a multimeter, and access to Driver Station logs or the PD board’s CAN telemetry.

  1. Measure resting battery voltage.
  2. Drive the robot in a straight line at full throttle and record minimum voltage.
  3. Repeat with the robot pushed against a wall (full stall) for two seconds — watch motor temperature, and stop immediately if anything gets hot.
  4. Repeat all three with a battery that has just come off a hard run.
  5. Compute effective internal resistance from the voltage drop and current draw.

Evidence of learning: A voltage-versus-current plot, a calculated internal resistance for at least two batteries, and a written battery rotation policy for competition.

🔧 Exercise 5.3 — Current Limit Comparison

Time: 30 minutes. Equipment: As above, plus vendor configuration software.

Set drive motor current limits to an unrestricted value, then 60 A, then 40 A. For each: time a 5 m sprint, record minimum bus voltage, and note whether the robot browns out.

Students will usually expect the current-limited robot to be noticeably slower. Usually it is barely slower and dramatically more stable. That surprise is the lesson.

Evidence of learning: A three-row table of limit, sprint time, and minimum voltage, with a recommended limit and a one-sentence justification.

Further reading

Next Lesson

Knowing what the components are is different from being able to wire them so they survive a season. Lesson 6 — Wiring, Harnesses and Pneumatics covers the craft of it, plus the subsystem the source curriculum leaves out entirely.