A brownout is a controls safety event: when battery voltage sags, the roboRIO disables outputs and your robot can stop responding mid-match. Understanding the staged thresholds and limiting current is the fix.
Know the thresholds (WPILib). As battery voltage drops under heavy load:
- 6.8V - the 6V output on the PWM pins begins to drop (Stage 1).
- 6.3V (roboRIO 1.0, fixed) or 6.75V (roboRIO 2.0 default, settable via RobotController.setBrownoutVoltage) - full brownout: PWM disabled; the 6V, 5V, and 3.3V user rails disabled; relay and GPIO outputs disabled; CAN motor controllers and pneumatics commanded off.
- The controller stays in brownout until voltage rises back above 7.5V.
Step 1 - Build a power budget. Treat ~180A as a worst-case sustained draw and allocate it across subsystems. Many teams gear the drivetrain so wheels slip at roughly 40-50A per motor, which caps the worst-case stall draw.
Step 2 - Set supply current limits in Phoenix 6. On a CTRE TalonFX (e.g., Kraken X60 or Falcon 500), a reasonable starting point is a 70A supply limit that drops to 40A after 1.0 second of active limiting (these also happen to be the Phoenix 6 defaults):
import com.ctre.phoenix6.configs.CurrentLimitsConfigs;
import com.ctre.phoenix6.hardware.TalonFX;
TalonFX motor = new TalonFX(1);
var limits = new CurrentLimitsConfigs();
limits.SupplyCurrentLimit = 70; // amps, steady
limits.SupplyCurrentLowerLimit = 40; // amps, after sustained limiting
limits.SupplyCurrentLowerTime = 1.0; // seconds
limits.SupplyCurrentLimitEnable = true;
motor.getConfigurator().apply(limits);
When enabled, the limiter holds supply current at or below SupplyCurrentLimit (preventing brownouts) and, after limiting for SupplyCurrentLowerTime, drops to SupplyCurrentLowerLimit to keep the branch-circuit breaker from tripping. The 2025 Phoenix 6 rework replaced the old SupplyCurrentThreshold/SupplyTimeThreshold pair with these SupplyCurrentLowerLimit/SupplyCurrentLowerTime fields and made the limiter far more responsive at actually preventing brownouts.
Step 3 - Monitor and detect. Read per-channel current from the REV PDH or CTRE PDP (these log current), and check RobotController.isBrownedOut() / RobotController.getBatteryVoltage() in code. After practice, open the Driver Station Log Viewer and look for brownout markers and the 12V fault count.
if (edu.wpi.first.wpilibj.RobotController.isBrownedOut()) {
System.out.println("BROWNOUT at " + RobotController.getBatteryVoltage() + "V");
}
Step 4 - Tune. If you still brown out, lower SupplyCurrentLimit, fix your gearing, or start matches only on a battery that tested above ~12.7V and under 0.015 Ohm. The deliverable is a committed config plus a one-page subsystem current budget.
Key takeaways
- Brownout stages: 6.8V (PWM 6V sag), 6.3V (roboRIO 1.0) / 6.75V (roboRIO 2.0) full disable, 7.5V to recover.
- Phoenix 6 SupplyCurrentLimit (e.g., 70A dropping to 40A after 1.0s) is the primary code-side brownout defense.
- Use RobotController.isBrownedOut() plus the DS Log Viewer to detect and confirm fixes.
Go deeper
Lesson quiz
RequiredAnswer all 3 questions correctly to complete this lesson.
01.At what battery voltage does the roboRIO 1.0 hit full brownout, disabling PWM outputs and the user power rails?
02.In Phoenix 6, which limit serves as the primary code-side defense to stop a motor from browning out the roboRIO?
03.Current-draw brownouts most commonly occur in which situation?
Answer every question to submit.
All 28 lessons in Safety
- Not started:Mini-Project: A Battery Management & Logging System
- Not started:Mini-Project: Write a Robot Lockout/Tagout (LOTO) Procedure
- Not started:Worked Example: Current Limits That Prevent Brownouts
- Not started:Mini-Project: Assemble a Competition Pit Safety Kit
- Not started:Mini-Project: Run a Mock Pit Safety Inspection
- Not started:Troubleshooting Brownouts and Power Sag
- Not started:Battery Handling Mistakes That Cause Injuries and Fires
- Not started:Electrical Isolation and Wiring Mistakes Inspectors Fail You For
- Not started:Stored-Energy Surprises: Pneumatics and Springs
- Not started:Pit and Shop Conduct Mistakes That Hurt Your Judging