Skip to content
2 min read
In progress

Building a Real Power Budget

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

Lesson
31 / 35
Reward
+10XP

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.

Spot an error or something out of date?Log in to suggest an edit

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 4 questions correctly to complete this lesson.

01.When establishing the ceiling for a power budget, what sustainable total current figure is commonly used as a planning number?

02.How should you benchmark each mechanism's real current draw before assigning supply limits?

03.When a worst-case allocation sums to more than the budget, what software interlock is recommended?

04.Under what battery conditions should you verify that the power budget actually holds?

Answer every question to submit.

All 35 lessons in Electrical & Wiring