Skip to content

Case Study: Powering a Four-Kraken Swerve Drive

learnfrc.com
learnfrc.comAuthor
Veer Bajaj
Veer BajajMaintainer

Swerve is the most power-hungry drivetrain in common FRC use: eight motors (four drive, four steer) plus encoders and a gyro, all on CAN. This is one worked electrical configuration for it, using current-generation hardware.

The hardware is four Kraken X60s for drive and four Kraken X60s or X44s for steer, each running off its integrated Talon FX, four CTRE CANcoders for absolute azimuth position, and one Pigeon 2.0 IMU for heading. Every Kraken gets its own 40A MX5-A breaker in the PD, wired with 12 AWG (R622 requires 12 AWG on 31-40A circuits).

Leave it there and the robot browns out. A single Kraken X60 stalls at about 366A at 12V, or about 483A with FOC, so four drive Krakens can momentarily demand well over a thousand amps on a hard direction change. That collapses battery voltage straight through the 6.3V/6.75V brownout floor in well under a second.

Current limits are the fix. In Phoenix 6, applied to each drive motor:

var limits = new CurrentLimitsConfigs();
limits.StatorCurrentLimit = 120; // wheel-slip / heat control
limits.StatorCurrentLimitEnable = true;
limits.SupplyCurrentLimit = 70; // brownout / breaker protection
limits.SupplyCurrentLimitEnable = true;
limits.SupplyCurrentLowerLimit = 60; // sustained clamp
limits.SupplyCurrentLowerTime = 1.0;
driveTalon.getConfigurator().apply(limits);

Steer (azimuth) motors rarely need peak torque, so a lower stator limit of around 60A is plenty and reduces heat. The 120A stator / 70A supply pairing is a widely used community starting point for swerve, but CTRE recommends tuning these empirically for your specific robot rather than treating any pair as a fixed rule.

Worst case on paper, four drive motors at 70A supply is 280A. Real sustained draw lands well under that, inside a planning budget of about 180A, because the supply limiter clamps each motor and the wheels are usually not all at peak simultaneously. Confirm it on your own robot by logging getSupplyCurrent() across all four and graphing total current against battery voltage.

The CANcoders and the Pigeon 2 add traffic of their own. With eight motor controllers, four CANcoders, one Pigeon and the PD on the bus, the roboRIO’s standard CAN bus utilization climbs fast. That is the usual reason to move the drivetrain onto a CANivore CAN FD bus, which is the next lesson.

Wiring deserves the same attention. Daisy-chain CAN cleanly through each module, twist CANH and CANL, and secure every connector against the constant vibration and impacts swerve modules see. Route motor power away from CAN to reduce noise. Label every CAN ID, because eight nearly identical Talon FX devices are easy to confuse.

Done right, the drivetrain accelerates aggressively and stays out of brownout on a fresh battery in qualifications and on a tired one in finals.

  • Each Kraken gets its own 40A breaker on 12 AWG; one Kraken X60 stalls at ~233A, so uncapped swerve can demand several hundred amps and brown out instantly.
  • Apply current limits on the drive motors (a common community starting point is 120A stator / 70A supply, tuned empirically) and a lower stator limit on steer.
  • Eight Talon FX plus CANcoders and a Pigeon 2 push roboRIO CAN utilization high, motivating a CANivore CAN FD bus.

This lesson was adapted from learnfrc.com.