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.
Keep going
Take the quiz · +10 XP with an accountMore in Common Mistakes & Troubleshooting
Sources & corrections
This lesson is AI-assisted: drafted from primary sources, then reviewed and edited by hand. Errors still get through. When one is reported we fix it and write down what changed — publicly, in the corrections log.
Sources and further reading
- WPILib: roboRIO Brownout and Understanding Current Drawdocs.wpilib.org
- WPILib: Driver Station Log Viewerdocs.wpilib.org
Read next
Articles on this, for competition day
The lesson covers how it works. These cover what to do when it breaks.
- 7 min read
FRC Brownout: Why Your Robot Goes Limp and How to Actually Fix It
The exact roboRIO brownout voltage stages, how to spot one in the Driver Station log, and the fixes ranked by payoff: current limits, battery health, gearing, and compressor scheduling.
Read - 8 min read
FRC Battery Guide: Charging, Care, Testing, and Safety
FRC battery guide: how to charge, care for, test with a Battery Beak, wire the SB50 connector, and safely handle your 12V FRC battery fleet.
Read - 7 min read
FRC "No Robot Code" & Driver Station Won't Connect: Full Fix Checklist
A verified, step-by-step FRC troubleshooting decision tree for "No Robot Code" and a Driver Station that won't connect to the roboRIO — most common causes first.
Read
Lesson quiz
RequiredAll 3 right completes the lesson. Miss one and only that question comes back — anything you already answered correctly stays banked.
0 of 3 answered
01.What is the underlying cause when a roboRIO triggers brownout protection and disables motor outputs mid-match?
02.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?
03.What is a standard software fix to keep drive motors from pulling a brownout-causing current spike?
Answer every question to submit.
All 34 lessons in Drive Team
- Not started:Project 1: A Production-Ready Driver Control Scheme
- Not started:Project 2: A Drivetrain That Survives a Whole Match
- Not started:Project 3: Build a Paper + Spreadsheet Scouting System
- Not started:Project 4: Pull Live OPR & EPA Data with Python
- Not started:Project 5: The One-Page Pre-Match Strategy Brief