Skip to content

Building a Real Power Budget

learnfrc.com
learnfrc.comAuthor
Veer Bajaj
Veer BajajMaintainer

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.

  • 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.

This lesson was adapted from learnfrc.com.