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.
Go deeper
Lesson quiz
RequiredAnswer 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.