Skip to content

Integrated and CAN Encoders: NEO, Falcon/Kraken, and CANcoder

learnfrc.com
learnfrc.comAuthor
Veer Bajaj
Veer BajajMaintainer

Modern brushless motors and CAN devices include encoders, so often you do not wire a separate sensor at all.

  • REV NEO / NEO Vortex brushless motors have a built-in hall-effect encoder read by the Spark MAX / Spark Flex controller. You access it via the controller’s RelativeEncoder (SparkMax.getEncoder()), in motor rotations by default; set a conversion factor for real units.
  • CTRE Falcon 500 / Kraken X60 integrate the encoder into the Talon FX. Phoenix 6 exposes it as the motor’s internal rotor sensor with getPosition() and getVelocity() status signals.

Integrated encoders are convenient and high-resolution, but they measure the motor shaft , so you must account for the gear ratio to get mechanism units, and they are relative unless fused with an absolute sensor.

The CANcoder is a magnetic rotary encoder that reports absolute position and velocity over the CAN bus (CAN FD and CAN 2.0). Because it is absolute and on the bus, it is a standard azimuth sensor for swerve modules. You read it in Phoenix 6 with getAbsolutePosition() and configure a magnet offset and sensor direction in Phoenix Tuner X.

Phoenix 6 offers FusedCANcoder , a Talon FX feedback mode that fuses a CANcoder’s absolute reading with the motor’s internal rotor signal. You get the absolute knowledge of the CANcoder plus the high bandwidth and resolution of the rotor — ideal for swerve steering, where you want a correct boot angle and crisp control. This fusion happens on the device, not in robot code, so it is fast and consistent.

Important licensing caveat: FusedCANcoder (and the related SyncCANcoder) require a Phoenix 6 Pro license on the Talon FX. Without a Pro license the controller falls back to RemoteCANcoder (reading the CANcoder over the bus, without rotor fusion) and reports a UsingFusedCANcoderWhileUnlicensed fault. RemoteCANcoder still works for absolute feedback; you just lose the on-device fusion bandwidth benefit.

  • Drivetrain wheels: integrated motor encoder (relative is fine; you zero odometry at start).
  • Swerve azimuth: CANcoder (FusedCANcoder if Pro-licensed, otherwise RemoteCANcoder) or a Through Bore for absolute boot angle.
  • Arms/wrists: an absolute encoder for boot position, optionally fused with the motor encoder.

Always verify your unit conversions on the bench: command a known move and confirm the reported distance/angle matches reality before trusting it in autonomous.

  • NEO/Vortex (Spark MAX/Flex) and Falcon/Kraken (Talon FX) include relative encoders on the motor shaft — account for gear ratio.
  • The CTRE CANcoder is an absolute, CAN-based encoder, ideal for swerve azimuth.
  • Phoenix 6 FusedCANcoder fuses absolute CANcoder data with the rotor on-device but requires a Pro license; unlicensed it falls back to RemoteCANcoder.

This lesson was adapted from learnfrc.com.