TalonSRX blinking amber when enabled

We have 6 TalonSRXs’ however 3 are solid and 3 are blinking when I enable the robot.

   ERROR  103  CTR: Firm Version could not be retrieved. Use Phoenix Tuner to check ID and firmware(CRF) version.   Talon SRX 0 
ERROR  103  CTR: Firm Version could not be retrieved. Use Phoenix Tuner to check ID and firmware(CRF) version.   Talon SRX 15 
ERROR  103  CTR: Firm Version could not be retrieved. Use Phoenix Tuner to check ID and firmware(CRF) version.   Talon SRX 14

Have you used tuner to update firmware, assign ID’s and run the self-test?

Yes, all of the talons blinked when we ran the self test and cleared faults.

Blinking amber means they haven not been initialized. Make sure your code is addressing them properly. Manual Also, I recommend against using a Talon device ID of 0. This is the default ID, and if you need to swap out a talon strange things might happen when you are testing.

Here is our drivetrain code:

    public class Drivetrain extends Subsystem {
  // Create left side talonSRX motors
  private WPI_TalonSRX leftFrontMotor;
  private WPI_TalonSRX leftMiddleMotor;
  private WPI_TalonSRX leftBackMotor;

  // Create right side talonSRX motors
  private WPI_TalonSRX rightFrontMotor;
  private WPI_TalonSRX rightMiddleMotor;
  private WPI_TalonSRX rightBackMotor; 

  private SpeedControllerGroup leftDrive;
  private SpeedControllerGroup rightDrive;

  private DifferentialDrive drive;

  public Drivetrain(){
    leftFrontMotor = new WPI_TalonSRX(RobotMap.LEFT_FRONT_MOTOR);
    leftMiddleMotor = new WPI_TalonSRX(RobotMap.LEFT_MIDDLE_MOTOR);
    leftBackMotor = new WPI_TalonSRX(RobotMap.LEFT_BACK_MOTOR);

    rightFrontMotor = new WPI_TalonSRX(RobotMap.RIGHT_FRONT_MOTOR);
    rightMiddleMotor = new WPI_TalonSRX(RobotMap.RIGHT_MIDDLE_MOTOR);
    rightBackMotor = new WPI_TalonSRX(RobotMap.RIGHT_BACK_MOTOR);

    leftDrive = new SpeedControllerGroup(leftFrontMotor, leftMiddleMotor, leftBackMotor);
    rightDrive = new SpeedControllerGroup(rightFrontMotor, rightMiddleMotor, rightBackMotor);

    drive = new DifferentialDrive(leftDrive, rightDrive);

  // Set speed of motors
  public void tankDrive(double leftSpeed, double rightSpeed){
    drive.tankDrive(leftSpeed, rightSpeed);

  public void arcadeDrive(double leftSpeed, double rotationValue){
    drive.arcadeDrive(leftSpeed, rotationValue);

  public void initDefaultCommand() {
    // Set the default command for a subsystem here.
    // setDefaultCommand(new MySpecialCommand());

Is this the first power on, or have they worked before? You did say you ran self-test, did you update to the latest firmware version (4.15)? The drive code looks fairly standard, I am assuming that in robot map the id’s are correct? Also, can you post your drive command code?

Everything is up to date. We have powered on before. Half our motor controllers work, half of them haven’t worked.

public class TankDrive extends Command {
int counter;
public TankDrive() {
// Use requires() here to declare subsystem dependencies
// eg. requires(chassis);
// requires(Robot.drivetrain);

// Called just before this Command runs the first time
protected void initialize() {


// Called repeatedly when this Command is scheduled to run
protected void execute() {
// counter++;
// SmartDashboard.putNumber(“tankDriveExecute”, counter);
Robot.drivetrain.tankDrive(Robot.m_oi.leftStick(), Robot.m_oi.rightStick());
// Drivetrain.class.tank

// Make this return true when this Command no longer needs to run execute()
protected boolean isFinished() {
return false;

// Called once after isFinished returns true
protected void end() {

// Called when another command which requires one or more of the same
// subsystems is scheduled to run
protected void interrupted() {

Does one specific side work, or is it random?


Did you change it so that none of the talons are device ID 0? In the execute method, does drivetrain need to be capitalized to match subsystem name? “Drivetrain” Which talons don’t work specifically?

Talons are not zero, capital drivetrain is the name to match the file, and talons 1, 0, 15 don’t work. Also, we have two amber blinking lights on the power distribution board.

Firmware of all CTRE hardware is updated? You are using the latest version of phoenix tuner? Also, you just said that no talon is 0, how do you have one labeled 0 then? PDP Manual Orange lights on PDP indicate sticky fault. Your CAN bus is correctly and complete?

I figured out what our problem was. We had our ports mapped incorrectly. Thanks to your last comment we were able to figure that out. Thanks alot!!

Excellent, glad to help.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.