The Robot Browns Out or Goes Sluggish Mid-Match
Diagnose voltage-related disables and sluggishness using the Driver Station charts, battery health, and current limits.
Sign in to track progress, earn XP, and save lessons.
Symptom: Mid-match the robot stutters, motors cut out, or the whole thing goes limp for a second and recovers. Drivers describe it as "laggy" or "it died and came back."
Root cause, almost always: a brownout. When battery voltage drops below the roboRIO threshold (6.3 V on roboRIO 1; 6.75 V default Stage-2 on roboRIO 2, which is software-settable), the firmware disables all actuators to avoid a full reboot. The trigger is a transient current spike — usually a hard acceleration, a collision, or several mechanisms moving at once — on top of a weak battery.
Diagnostic workflow:
- Look at the evidence first. After the match, open the Driver Station Log Viewer and find the voltage chart. A brownout shows up as voltage diving toward the threshold exactly when the current trace spikes. The DS also logs explicit brownout events. Don't guess — read the chart.
- Check the battery. Was it freshly charged and load-tested? A tired battery sags under load even if it reads 12.5 V or higher at rest. No-load voltage lies; internal resistance is what matters, so test under a load (a battery beak / load tester reports internal resistance and capacity).
- Check for current limits. If your drive SPARK MAXs have no
smartCurrentLimit, four NEOs accelerating at once can pull a transient spike far larger than what a single 12 V 18 Ah SLA can supply without its voltage collapsing. - Check connections. A loose main breaker, PDH/PDP lug, or Anderson SB-50 battery connector adds resistance and causes voltage to collapse under load.
The fix:
- Add or lower current limits:
cfg.smartCurrentLimit(40)on drive motors is a standard starting point. CTRE users set supply/stator limits viaCurrentLimitsConfigs. - Rotate to a fresh, load-tested battery and retire any that sag.
- Re-torque the main breaker and battery lugs; you should not be able to rotate the lug by hand.
- If you're on a tippy or powerful robot, add a
SlewRateLimiterso the driver can't command an instantaneous full-current spike.
Verify: Repeat the same hard-driving test and watch the voltage chart. If it now stays comfortably above the threshold under identical driving, the fix held. Brownouts are never "random" — there is always a current spike and a sagging supply, and the chart will show you both.
Key takeaways
- Confirm brownouts from the Driver Station Log Viewer voltage chart, not from driver feel - look for voltage diving as current spikes.
- roboRIO disables actuators below 6.3V (rio 1) / 6.75V default (rio 2); the cure is current limits, a healthy load-tested battery, and tight lugs.
- A battery's resting voltage lies; internal resistance / sag under load is what predicts match behavior - test it, don't just read open-circuit volts.
Lesson quiz
RequiredAnswer all 3 questions correctly to complete this lesson.
1.What is the underlying cause when a roboRIO triggers brownout protection and disables motor outputs mid-match?
2.A robot that browns out repeatedly has a battery reading 12.6V at rest but sagging hard under load. What is the most likely culprit?
3.According to WPILib, what happens first as battery voltage begins to drop before a full brownout?
Answer every question to submit.