Minimizing brownouts (Capacitors?)

While it may be legal by the rules, OP should consider the safety implications of this idea, specifically that the robot won’t power off as soon as the main breaker is switched off.


This is where my thoughts were at (along with @philso’s practical considerations). No matter whether the rules can be interpreted to say it’s legal or not, you have to convince a head inspector its safe.

I’m not a head inspector, but you’d be hard pressed to convince me that 1200W worth of stored energy in chemical-filled electrolytic capacitors has been properly designed and is totally safe to use on a crowded field.

Alternate suggestions that we usually try first:

  1. Check/increase center drop of WCD
  2. Check chain tightness & lubrication - minimize friction & resistance to motion.
  3. Pick less aggressive gear ratios or wheel sizes
  4. (in a pinch) make wheels less grippy - duct tape?
  5. Change quantity of motors
  6. Electrical construction quality (as others mentioned - use thick short wires, good crimps, etc.)
  7. Add a software ramp-rate to motor commands
  8. Do a more complex proactive battery monitoring and current limiting system.

Most folks tend to find a solution before the list is exhausted, hence why capacitor-backed solutions don’t appear very commonly.

All this being said. If you have time and money to spare, and sufficient expertise to deal with the high voltages and currents these devices generate, it could definitely be a great experiment - especially if you can show how it is done safely, there might be some lobbying FRC to make a device like this legal in the future.

However, Reiterating: BIG CAPACITORS CAN KILL YOU.


If I were to implement a big capacitor bank (which at this point there is a 1% chance I will) I would probably build a pcb with charge current limiting and an active transient current suppressor using some mosfet shenanigans, as well as a bleeder resistor or some other discharge circuit. If we really were crazy enough to slap a giant capacitor on our robot, I would be sure it is as safe as possible.

See above my point about doing this safely.

Just like flywheels, capacitors have risks and potential dangers. Teams who use flywheels go to some length to ensure safe operation and to ensure the flywheel won’t break and cause potentially fatal injuries.

Given all the tradeoffs, I don’t see the value in using a big capacitor, but they could be used legally, given the right protections.



CUSTOM CIRCUITS shall not directly alter the power pathways between the ROBOT battery,
PDP, motor controllers, relays (per R36-B), motors and actuators (per R34), pneumatic solenoid
valves, or other elements of the ROBOT control system (items explicitly mentioned in R73).
Custom high impedance voltage monitoring or low impedance current monitoring circuitry
connected to the ROBOT’S electrical system is acceptable, if the effect on the ROBOT outputs is

If I flip the 120 amp breaker and any part of the robot control system (motors, solenoids, motor controllers, actuators, power distribution panel, roborio) still has 12V on it from a capacitor bank, I would say you’ve altered the power pathway and the circuit is illegal.

R47 is also very explicit how the battery is wired to the power distribution panel.


I’d recommend a few things, since it seems like the single most significant goal of your thought is to get more drive train power to the floor. Brownouts should be avoided at all costs rather than designed as an intent. Being free of brownouts allows your drivers to push the envelope with more then just a drive train.

  • What about more drive train power appeals to you? Is it acceleration, or is it pushing power?
  • Is your gearing, traction, etc optimized for anything specific?
  • Do you have access to SRX or NEOs in order to implement current limiting? If not, are you willing to try to manually do it on your own in software?
  • Have you verified that your batteries are not worn out? (e.g. have an internal resistance > 0.02, and hold a 12V charge during continuous draw over 2 minutes).

Here is a preview of the next iteration of my drive train calculator. This represents a full-weight robot with 4 NEOs attempting to sprint to 36 feet and stop. On the left, there is no current limiting - notice the brownout. On the right, there is a 60A per-motor current limiting, with no brown outs (all other parameters are equal).

Just looking at this in the shop, so let’s forget rules for the moment. (this is just referencing OP’s question, not about making a better drive train)

Would you need 1200W?
The max draw of the rio is 45W and as I understand it, that’s the gating item on a brownout. What’s the feasibility of just supplying a smaller capacitor bank to keep the rio up?

We do something similar on one of our products using an uninterruptible power supply. One of our systems is controlled via a PLC and a proprietary HMI. The issue we have is it’s on a system with a decent sized diesel engine. If the customer doesn’t have a well kept battery or long wire leads, it can brownout the PLC and HMI during start up. Not an issue for the PLC as it boots in like 5 seconds. The HMI however can take 2 minutes and this is product is used in firefighting were time counts.
So we use a small UPS only on the HMI, not the whole system.

1 Like

There are numerous capacitor banks on the 12V bus of every FIRST robot already.

Sounds like OP just needs to make a very adequate 5V regulator to power sweet LEDs.


How about putting the computer on a dc/dc converter basically a voltage pump with a Voltage regulator on the other end ensuring 12V to the roborio even if the power from the battery is like 8 v there are a couple of ways that come to mind. The roborio and radio don’t draw that much voltage. After the pump a pwm circuit similar to a switching powersupply could be made. Now that would still need some capacitors but of the cheap and small variety. The outputs on the roborio are Open Collector with a pull up resistor so that should make handling disparate voltages on both sides feasable. Not the question still is why are you running the battery down that much and what causes your brownout in the first place. also have not researched the legality of that circuit yet just talking of the top of my head

Which are explicitly legal since they’re integral to the legal devices containing them, but none of them are large enough to power the RoboRIO through a brownout… Adding your own isn’t legal.

1 Like

Looks good!
Our drivetrain has been ridiculously optimized. Last year we used a custom belted 4+2 CIM/MiniCIM drivetrain that we spent a lot of time tuning ratios for in a few different calculators (mostly Spectrum and JVN). Next year I plan to simulate our drivetrain in Mathworks Simulink for targeting our best numbers. I already use it to tune my personal projects, among other things, so I figured I would give it a shot.

We run Kotlin on our robot with our own custom library, Kyberlib, and have heavily implemented anti-brownout software. We actually have some video from last year of us pushing some robots straight across the field. I’ll have to dig it up and post it.

I guess I didn’t make it very clear, but this entire concept is just a thought experiment and an exercise in electrical engineering.

1 Like

Indeed. My reiteration is motivated by the potential for loss of life.

Lots of FRC safety issues result in injury, but outright loss of life is a rare and extreme event.

However, High voltage and current can kill very quickly, without warning or obviously visible risk - a charged capacitor looks exactly the same as an uncharged one.

Figuring out how to do this one safely isn’t a trial and error, or “just wing it” thing. You have to go in knowing exactly what to do and what not to do.

Again, not disagreeing, just reiterating :). Personal motivation: I’ve been within centimeters of loosing my life to high voltage. I don’t want others to come that close.

Most excellent. Carry on!

You actually don’t want an active transient current suppressor since providing transient currents is what capacitors are generally used for, including your proposed application.

Bleeder resistors for such large capacitor banks also create problems of their own. To be effective, they will have to have a fairly low value. They become an extra load on your battery and will throw off a lot of heat unless you have a way to keep them disconnected until power is removed.

If you do happen to build a capacitor bank, it would be in your best interest to find someone who has professional experience working with such equipment to evaluate it for safety before you energize it. Even if you purchase the capacitors from a car stereo store, I would not trust the people there to really understand your application.

So I picked one up to try out. If the log files are to be believed, most brownout conditions happen towards the end of a match and tend to last no longer then 1/25 to a 1/50 of a second. With that in mind, I will use a high current spike of 240A that lasted .02 seconds has an example.

This was about 40 amps per drive motor:

240 * ((.02 s / 60 s) / 60 min)= .00133 Ah = 1.33 mAh

At ~7 ish volts the brownout will start to trigger.
Using 12V cap with 4 farads of capacity drained to 7 volts.

( 4 * ( 12 - 7 ) ) / 3600 = 0.0055 Ah = 5.5 mAh

It would seem like it could work to stop the very fast current spikes that cause quick brownouts.

These values are taken from a log file where the lead-acid battery was causing the limit. The thing is that with a capacitor the ESR will be much lower and the max current draw will go higher.

If we use the designed current limit of the drive train:
60 amps per motor.

360 * ((.02 s / 60 s) / 60 min)= .002 Ah = 2 mAh

This would still fall within the capacity that the capacitor could help.

I will give it a try and see how the logs looks after a solid practice session. Obviously this is not competition legal but it could help to show how utterly Indequet lead-acid batteries are for robotics. I implore you to calculate the battery capacity (or Wh) a 3.5 min match takes. It is laughable.

This is a dangerous assumption to make. The brownout conditions last that long because the roboRio takes action to ease the electrical load. Many teams that have brownout issues will see it happen repeatedly, back to back. The system browns out, and reduces the load because of. The voltage comes back up, so it restores the desired load, causing it to brown out again. Repeat as needed.

Oh, and that capacitor? Once it’s discharged to help prevent a brownout, it’ll add a load to the system as it recharges, increasing the odds of another brownout condition soon after the one it just stopped.

Our batteries may not be ideal, given how much motor power has increased over the past 10-15 years. But that is a design constraint. It makes teams think about things like preserving power for the endgame. It helps keep robots operating safely on a field with volunteers mere feet away. It works in tandem with other design constraints, like the allowable motor list, allowable breaker values, and number of PDP slots, to help teams recognize certain limitations and explore creative solutions that take these limitations into account in order to tackle the game task.


Although I’m very curious to see the results of this experiment, I’d agree we’d want bigger capacitors and a smarter charge/discharge strategy. Still, a well done study even with a smaller one would be nifty to analyze results on.

But. As always.


Please please please do not hurt yourself while trying this. Big capacitors are really scary.


Have you read this (roboRIO Brownout and Understanding Current Draw)?

By design, actuators (such as motors) cut off when the voltage drops. The RIO has a DC/DC converter and internal capacitors to help it avoid losing power. The radio tends to be the weak link, because it takes so long to reboot, but also because the power connections to it tend to be not super reliable for many teams. The VRM is designed to keep power available for the radio though.

In short, my guess is there is a high risk inspectors at any given event would rule the giant capacitor thing illegal – so one would be wise to get a ruling or clarification on this idea. From seeing many robots with power issues, I’d say to be certain none of the issues in the checklists above are present and you will avoid power issues serious enough to reboot anything. If you are still having issues, figure out what’s drawing so much current and why. Fix the underlying issue and/or current limit the motor(s) in question.

I do agree that those are some broad assumptions I am making. While I agree, brownouts happening repeatedly, would make sense but the logs i have and am using for the example above does not exhibit this behavior. This was a competition match with new batteries purchased every year and swapped every match. The situations are quick accelerations, and also starts with obstructions (like a ball in the way) that do not last long. I am sure the case for other teams might be much more dire.

I am expecting the load the capacitor adds will be marginal in these high burst current scenarios. This does depend on what your base load on the battery is but for the situation described above the load dropped to 40 amps in .3 seconds so there would be plenty of head room to recover the capacitor. Average current was 140 amps for the given second. This is still above the ability of the battery. So Average current could go up due to the load the capacitor adds. If this ends up with an adverse effect once it is all in the systems is yet to be determined. I am betting there will be a net gain.

I do not expect this would be beneficial with a longer failure condition. This is just meant to capture those moments when the design exceeds the performance of the battery. At small intervals.

The design to cut off actuators when the voltage drops are due to the insufficient performance of the batteries. Not intended to create a new channel for the students. With that being said, I would love to see a game that played with power budgets and cut your actuators due to game design. (This also make the electrical side of the robot more crucial which I for one would love to see)

I would very much hope it is ruled illegal. It explicitly stated the amount of capacitance you can add to the robot. If not the inspector was not doing his job at all. R56, no more than 1 µF per motor, and others mentioned in the thread.

The issue is I want to do more work in less time. The only answer is power.

(efficiency too sort of)

Let’s simplify things a bit and say that there is a voltage at the PDP (what one sees in logs). Voltage drops are given by Ohm’s Law: Voltage = Current * Resistance. The RIO and the radio do not draw all that much current, so they will closely track the PDP voltage (again, simplifying here). So, why does the PDP voltage drop? The answer is because of the total current draw of everything plugged into it.

Batteries have an internal resistance – when they are bad, this can be quite high. Everything in the primary loop (battery, the two connectors, the main breaker, the wire, and all connections (including to the PDP itself) has some resistance. One wants to minimize this. This is why some teams use larger wire and even larger connections, and why they check batteries so carefully. It is why every team should very carefully check all connections in the primary loop, including all batteries.

Let’s say the battery is at 12V and the brownout happens at 5V. That’s a drop of 7V. Let’s say there is a 180A total current draw (150% of the nominal 120A breaker rating). This means there must be (Resistance = Voltage / Current) 7V / 180A or ~39mΩ. This paper gives the internal resistance of FRC batteries as between 14.8mΩ to 35.0mΩ. Let’s say you test your batteries and don’t run any with greater than 25mΩ – this leaves you with a budget of just 14mΩ. A single slightly loose connection or scraped up mating surface in a connector can very easily exceed this budget.

If you very carefully follow the advice given above, you will very likely never have brownout issues.

I can’t count the number or robots I’ve seen (including as CSA) which were cured of brownout issues by fixing issues in the primary power loop. These are not noticed, because things “work”. But they are very common. In my experience, it’s actually very hard to take things down far enough to reboot a RIO, or a properly connected radio. Look at the logs on your driver station and see what the PDP voltage is doing. These have a ton of invaluable data that can tell you what is going on.

The one problem I’ve seen that may not yield to primary power loop fixes is very high current draws which come on very quickly, which is where current limiting, voltage ramp, or often, just not stalling out a 6-CIM drive train (gear ratio) come in. But in my experience, this is a rare exception.

If you have problems, a large enough capacitor (or more battery) may be able to hide them, but a capacitor will only buy time (same for a battery, although it can buy a match worth’s of time). A capacitor will typically have a lower series resistance though, which could help a marginal battery. But the main point is that if one has brownout issues, there are fixes for these which have worked for a great many teams. I’d even go so far as to say that there’s no reason to put a giant capacitor on a properly designed FRC robot with a healthy electrical system.

Here’s a link to some info on the log viewer.