Skip to content
Electrical & Wiring·Lesson 30 of 34

Building a Real Power Budget

Turn measured mechanism currents into a per-match power plan that prevents brownouts and breaker trips by design.

Sign in to track progress, earn XP, and save lessons.

A power budget is the engineering document that lets you guarantee, on paper, that your robot will not brown out. The principle: the battery and wiring can only sustain so much current, so you allocate that budget across mechanisms and enforce the allocation in software.

Step 1: Establish the ceiling. WPILib cites ~180A as a reasonable sustainable total current draw on a good battery before voltage sag becomes a brownout risk, and warns that drawing ~240A for more than a second or two is likely to cause problems even with a fresh battery. Your real number depends on battery health and wiring, so treat 180A as a planning figure and verify with measurement.

Step 2: Benchmark each mechanism. Using the PowerDistribution dashboard from the worked-examples module, log getCurrent(channel) for each subsystem while you exercise it. Record realistic numbers, for example:

  • Swerve drive (4 drive motors), hard acceleration: hundreds of amps uncapped, the dominant consumer.
  • Elevator, lifting under load: 60-80A.
  • Intake: 15-25A.
  • Shooter spin-up: 40-60A transient. These are illustrative ranges; always measure your own robot.

Step 3: Allocate and cap. Assign a supply current limit to each mechanism so the worst-case simultaneous draw stays under your ceiling. A worked allocation toward a ~180A budget:

  • Drive: 4 x 40A supply = 160A worst case (often less because not all four peak together).
  • Elevator: 30A supply.
  • Intake: 20A. That sums to 210A worst case, which is over budget, so you also add a software interlock.

Step 4: Enforce mutually-exclusive high-draw actions. Do not allow full-speed drive and a max-effort elevator climb at the same instant. In command-based code, you can gate the elevator's available current on drivetrain demand, or simply forbid the combination:

if (drivetrain.isAtHighDemand() && elevator.wantsMaxLift()) {
  elevator.setCurrentLimit(15); // throttle the elevator while driving hard
} else {
  elevator.setCurrentLimit(30);
}

Step 5: Verify under realistic conditions. Run a full practice match and graph total current and battery voltage. If voltage never sags below ~9-10V under your worst combination and isBrownedOut() stays false, the budget holds. Re-test on a mid-life battery, not just a fresh one, because eliminations happen on tired batteries.

The payoff: a robot designed to a power budget is fast and aggressive within its envelope and simply never browns out, instead of a robot that is fast for one match and unreliable the rest of the day.

Key takeaways

  • Plan around a sustainable ceiling (WPILib cites ~180A) and allocate supply current limits per mechanism so worst-case draw stays under it.
  • Benchmark each subsystem's real current with the PowerDistribution dashboard before assigning limits.
  • Enforce mutually-exclusive high-draw actions in software and verify the budget on a mid-life battery, not just a fresh one.

Lesson quiz

Required

Answer all 3 questions correctly to complete this lesson.

1.What is the standard FRC robot power source that a power budget must be built around?

2.Why must a realistic power budget account for the 120A main breaker rather than just adding up motor stall currents?

3.On a CTRE Power Distribution Panel (PDP), what are the continuous current ratings of its two types of output channels?

Answer every question to submit.