So, there is a lot of misconception on the purposes of current limits, what they should be used for, and a basic understanding of battery budget. Let’s start with a simple definition of supply current limits and stator current limits.
Supply current limits basically forces the motor controller to not consume more than X amount of amps from the battery. This is useful for preventing brownouts when you consume more than your battery budget will allow, more on that later.
Stator current limits, in the CTRE Swerve API also called Slip Current Limit, is the maximum amount of current that is actually used by the stator or shaft of the motor. This is different from the supply in the fact that stator current is also directly proportional to the amount of torque being applied the motor. Another property of stator current limits is they can affectively limit the acceleration of the robot.
Lots of numbers are thrown around on what’s safe, and whatnot and that’s true to an extent. There is more too it than that, especially if you want to maximize battery life and maximize your on match performance.
Let’s dive a bit deeper on the characteristics of the electrical system of the robot.
You have a hard 120a breaker from the battery to the PDP or PDH. Then you typically have a 40a auto-resettable breaker in the PDP or PDH. You would assume this caps your draw at 40a, but these are primarily safety features with LOTS of wiggle room. Specifically, the REV 40a datasheet can actually sustain 80a for a minimum of 5s. The 120a main robot breaker can also sustain near double it’s rated capacity. This isn’t quite the end, as this draw on the battery can ruin it’s lifespan.
You can do some pretty basic napkin math to estimate how much you will need to supply current limit, and you’ll want to actually do real match-like testing to verify you get the results you want (no or very few brownouts for ~2-3 minutes of intense play).
If I have a 8 motor drivetrain, and the battery can sustain 270a for ~5s (let’s round down to 250a to be on the safe side). That leaves 270/4 for the drive motors or ~67a supply limit. But you can exceed the 270a for very very brief 1s cycles, and your motor shouldn’t be consuming >20a just cycling. This is why you see some teams actually set there current limits to 80, or even 120a and this may even be an area where stator current limits will help a bit more. The greatest battery draw on an FRC drivetrain is the initial acceleration.
In the above graph, you can actually see the supply current spike to 120a for .5s when the robot goes from 0 to 100% dutycycle then the drawn current settles down to ~10a. These are things to be aware of if you want to maximize the juice you get in this battery limited environment. It’s also why efficiency of a motor matters. The less juice to get the same power, means more aggressive limits, which means faster acceleration, which adds up.
Edit: To further answer the post, the thresholds is the time it takes for the limit to actually take affect. The defaults are typically fine.