I have 4 Talon SRXs controlling 4 CIMs on the KoP chassis drive train. CAN ID 1 is front left, 2 is back left, 3 is front right and 4 is back right. I set both 2 and 4 to follow 1 and 3, respectively. In this configuration, it looks like 2 and 4 have stopped driving. The red and green lights no longer light up when driving.
Also, when running the Talon self test from the roboRIO configuration window with the robot enabled, Talons 2 and 4 do not report any current. Similarly, GetCurrent returns values of zero.
Is this expected behavior for a Talon in follower mode? If not, any suggestions?
By not doing anything do you mean both LEDs are off as though the Talon is not powered? If so double check your wiring with a voltmeter. Also check if the breaker is in place on the PDP. If they both look ok contact [email protected].
So that means the Talons are being command to zero throttle. Either the mode is not correct or it’s following the wrong Talon or the Master Talon isn’t present on the bus.
If you use the self-test you can check the mode of the followers to confirm they are in slave follower mode. (section 2.4 in Talon SRX software reference manual).
Double check the Set() calls to your slave Talons. Remember the Set() is used to specify the master Talon ID. (section 9 in Talon SRX software reference manual).
The self test shows that the talons are in follower mode. When I run the self test with the motors running, the lead talons show a non-zero current value, but the following talons show 0 current.
The lead Talons are being commanded via ArcadeDrive. They are in ControlMode kPercentVbus=0. When Talons 2 and 4 are set to this mode, they behave correctly (lights go red or green depending on direction, current reads non-zero in Self Test while driving). It’s only when they are set to ControlMode kFollower=5 that the lights stay orange and no current is read.
Thanks for all the suggestions.
My next plan is to move the Talon breakouts from Talons 1 and 3 to Talons 2 and 4, respectively and then make them the lead Talons and set 1 and 3 to followers just to see if anything is different.
I’m running out of ideas and we really need to get this to work.
Unless you expect to be running the first two Talons in a closed-loop mode, you’ll probably be better off just leaving things as a 4 Motor drive and removing the Follow setup completely.
We had a problem where Talon follower mode was initialized in our Chassis subsystem constructor, but those talons would not follow when first powering on the robot.
If we just restarted the robot code using the driver station, follower mode worked correctly.
We discovered that if we instantiated RobotDrive, did a single call to set the drive motors to zero, and then set up follower mode in the constructor, it all worked correctly.
As a failsafe we will be re-initializing the drive system followers in TeleopInit and AutonomousInit.
The update was definitely installed prior to our testing/fix yesterday. It did not appear to address this issue in any way.
And I can see how the C++ update description is intended to apply to CAN enabling, but we were debugging the fact that the only Talons affected were in follower mode, we didn’t quite read the description that way. All other CAN Talons were operating normally.
Regardless, an immediate Set() is the right thing to do, and we’re on track now. Just hoping to help others who might be having problems with follower mode.