For the complete documentation index, see llms.txt. This page is also available as Markdown.

Motor Controllers

Supported motor controller/motor combinations for module drive and angle motors

Motor Checklist

Configuring a motor

Each module JSON (frontleft.json, etc.) has a drive and an angle motor, both DeviceJson objects of the form "<controller>_<motor>":

{
  "drive": { "type": "sparkflex_vortex", "id": 5, "canbus": "" },
  "angle":  { "type": "sparkmax_neo550", "id": 6, "canbus": "" }
}

The <motor> suffix tells YAGSL which DCMotor model to use for feedforward and simulation characterization (free speed, stall torque, etc.) — it must match the physical motor attached to that controller.

Supported controller × motor combinations

Controller

type values

talonfx_krakenx44, talonfx_krakenx60

talonfxs_neo, talonfxs_neo2, talonfxs_neo550, talonfxs_vortex, talonfxs_pulsar, talonfxs_minion

sparkmax_neo, sparkmax_neo2, sparkmax_neo550, sparkmax_vortex, sparkmax_pulsar, sparkmax_minion

sparkflex_neo, sparkflex_neo2, sparkflex_neo550, sparkflex_vortex, sparkflex_pulsar, sparkflex_minion

Nova (ThriftyBot)

nova_neo, nova_neo2, nova_neo550, nova_vortex, nova_pulsar, nova_minion

Only CTRE controllers (talonfx_*, talonfxs_*) support the canbus field for CANivore use — set it to "" for your control system's default bus (rio on a roboRIO). See Control system and CAN buses.

TalonFX (Kraken X60 / Kraken X44)

TalonFX is the controller for Kraken X44/X60 and (legacy) Falcon 500 motors. Commonly used as a drive motor for its power and efficiency versus REV NEOs.

  • Upgradeable/configurable via Tuner X — watch the LED status code when debugging. Settings changed in Tuner X are overwritten on startup by YAGSL.

TalonFXS

TalonFXS is CTRE's controller for third-party/non-Kraken brushless motors (NEO, NEO Vortex, Minion, Pulsar) wired through CTRE's ecosystem — same Tuner X tooling and CAN/CANivore support as TalonFX.

SparkMAX

REV SparkMAX, brushless mode (NEO / NEO 550 / NEO Vortex / Minion / Pulsar via the appropriate <motor> suffix).

To tune PID directly on the controller: open REV Hardware Client → select the SparkMAX → Telemetry tab → set to position control while adjusting gains in the left pane.

Checklist

SparkFlex

REV SparkFlex, brushless mode (same motor suffixes as SparkMAX, primarily used with NEO Vortex).


General motor tips (apply regardless of controller)

  • Confirm CCW+ rotation on the bench before mounting — see When to Invert.

  • Tune one drive motor and one angle motor fully before copying gains to the other three modules; see Tune PIDF Gains.

  • Current limits and gearing live in physicalproperties.json (or a per-module gearing override) — see physicalproperties.json Reference.

Last updated

Was this helpful?