Skip to content
2 min read
In progress

Mini-Project 2: Current-Limited Drivetrain (CTRE and REV)

Apply stator and supply current limits to a four-motor drivetrain so it accelerates hard without browning out.

Lesson
22 / 35
Reward
+10XP

Sign in to track progress, earn XP, and save lessons.

A fresh four-Kraken drivetrain will happily pull hundreds of amps of stall current (a single Kraken X60 stalls at ~366A at 12V in trapezoidal mode, even higher under FOC) and drop your battery below the 6.3V/6.75V brownout floor in the first second of a match. Current limits are how you trade a little top-end torque for reliable, brownout-free driving. There are two kinds, and you need to understand both.

Stator current is the current at the motor windings; it is directly proportional to torque. Capping it controls wheel slip and heat. Supply current is the current drawn from the battery (roughly stator current x duty cycle); capping it prevents breaker trips and brownouts. CTRE notes that because stator limits also bound supply current, it is sometimes unnecessary to enable both.

CTRE TalonFX / Kraken X60 (Phoenix 6, Java):

import com.ctre.phoenix6.hardware.TalonFX;
import com.ctre.phoenix6.configs.CurrentLimitsConfigs;

TalonFX driveMotor = new TalonFX(1);
var limits = new CurrentLimitsConfigs();
// Cap torque/slip at the wheels
limits.StatorCurrentLimit = 120;
limits.StatorCurrentLimitEnable = true;
// Protect the battery and 40A breaker
limits.SupplyCurrentLimit = 70;
limits.SupplyCurrentLimitEnable = true;
// After 1s above the lower limit, clamp down to avoid breaker trip
limits.SupplyCurrentLowerLimit = 60;
limits.SupplyCurrentLowerTime = 1.0;
driveMotor.getConfigurator().apply(limits);

The field names SupplyCurrentLowerLimit / SupplyCurrentLowerTime are the Phoenix 6 2025 replacements for the old SupplyCurrentThreshold / SupplyTimeThreshold. CTRE explicitly recommends tuning limits empirically for your robot rather than copying preset numbers; a 120A stator / 70A supply pair is a widely used community starting point for swerve drive, not an official CTRE-mandated value. Steering (azimuth) motors can run a lower stator limit (~60A) because they rarely need peak torque.

REV NEO / SPARK MAX (REVLib 2025, Java):

import com.revrobotics.spark.config.SparkMaxConfig;
import com.revrobotics.spark.SparkBase.ResetMode;
import com.revrobotics.spark.SparkBase.PersistMode;

SparkMaxConfig cfg = new SparkMaxConfig();
cfg.smartCurrentLimit(60); // applies a single combined limit
motor.configure(cfg, ResetMode.kResetSafeParameters,
                PersistMode.kPersistParameters);

REV's smartCurrentLimit() is strongly recommended for the NEO, whose low internal resistance produces dangerous current spikes if uncapped.

Tuning procedure (do this on blocks, then on carpet):

  1. Set NO supply limit and a high stator limit. Floor it and watch the wheels.
  2. Lower the stator limit until the wheels stop slipping on hard acceleration; set the limit just under that point.
  3. If you still see brownouts (roboRIO Power LED amber, or RobotController.isBrownedOut() true), add a supply limit starting around 70A and lower until brownouts stop.
  4. Log it: read driveMotor.getStatorCurrent() and getSupplyCurrent() to a NetworkTables/SmartDashboard graph and confirm your limits are being respected.

A well-limited drivetrain feels slightly softer off the line but never browns out, never trips a breaker mid-match, and runs cooler over a whole event.

Spot an error or something out of date?Log in to suggest an edit

Key takeaways

  • Stator limit controls torque/wheel slip; supply limit prevents brownouts and breaker trips, and a stator limit alone also bounds supply current.
  • CTRE recommends tuning current limits empirically; 120A stator / 70A supply is a common community swerve starting point, not an official CTRE value. Tune stator first, add supply only if brownouts persist.
  • REV's smartCurrentLimit() is essential for the NEO's low-resistance spikes; SupplyCurrentLowerLimit/Time are the Phoenix 6 2025 field names.

Lesson quiz

Required

Answer all 3 questions correctly to complete this lesson.

01.On a CTRE Talon FX, what does the stator current limit actually limit?

02.Since a stator current limit also bounds supply current, which limit is the recommended starting point to tune first?

03.How is current limiting configured on a REV SPARK MAX driving a drivetrain motor?

Answer every question to submit.

All 35 lessons in Electrical & Wiring