CTRE Phoenix Framework Build Week 1 update

Hello all,
Phoenix was posted earlier today at…
… where you can find the installer, release notes, and various documentation links.

This release includes the restoration of Motion Profile Control Mode in the Talon SRX.
Be sure to update Talon firmware to 3.3 if you intend to use Motion Profile.

Updated motion profile examples have been posted on our example repositories.

Latest firmware versions can also be found…

…and the firmware files are placed in your development PC after installing Phoenix…

We have also decided to compile/release a version of last season’s CTRE v4 Toolsuite that is compatible with the 2018 roboRIO image, due to the response of teams who are not comfortable porting/updating their various software components to the newer and back-breaking Phoenix v5. However, this package will not support the Victor SPX and CANifier devices, and requires the use of last season’s Talon SRX firmware (2.34 or earlier). The CTRE Toolsuite v4_Legacy package also provides a LifeBoat utility for installing last season’s web-based plugin so that Self-Test features are functional.
The toolsuite was tested against several of last season’s CTRE Examples, found here…

As always feel free to reach out to us for questions and concerns via our support email or GitHub.
Good luck teams!

Awesome, thanks Omar!!

Thanks folks! We’ll start working on updating today!

As someone who was disappointed in the way the new software was rolled out, credit to CTRE for responding to feedback and providing support for the old API for those that need it.

Going the through the documentation and examples, and I have a question with the VelocityClosedLoop example.

In particular this section:

        /* set closed loop gains in slot0 */
        _talon.config_kF(Constants.kPIDLoopIdx, 0.34, Constants.kTimeoutMs);
        _talon.config_kP(Constants.kPIDLoopIdx, 0.2, Constants.kTimeoutMs);
        _talon.config_kI(Constants.kPIDLoopIdx, 0, Constants.kTimeoutMs); 
        _talon.config_kD(Constants.kPIDLoopIdx, 0, Constants.kTimeoutMs);
     * This function is called periodically during operator control
    public void teleopPeriodic() {

                /* snip */

        	/* Speed mode */
        	/* 4096 Units/Rev * 500 RPM / 600 100ms/min in either direction: velocity setpoint is in units/100ms */
        	double targetSpeed = leftYstick * 4096 * 500.0 / 600; 
        	_talon.set(ControlMode.Velocity, targetSpeed); /* 1500 RPM in either direction */

As I see it in native units your max commanded velocity would be ~3413 (4096 * 500 / 600), there is a feed forward being set at 0.34. If the robot is stopped my error would be ~3413 * 0.34 = ~1160

What is that unit? I would have assumed it was percent output, and that is my confusion/question.


Using this framework, is there a way to specify that the robot is using a CTRE Relative Encoder? The options available in the LabVIEW selector do not correspond to this type of encoder.

Talon feedforward units have always been sort of silly; max is 1023.

Thanks that is helpful (and a little silly).

CTRE Magnetic Encoder (relative) is Quadrature
CTRE Magnetic Encoder (absolute) is Pulse Width

See section 5.3 in CTRE Magnetic Encoder User’s Guide.

Or here…

Thank you for listening to the feedback and following up on it, I’m sure many are pleased by the ability to pick between Toolsuite and Phoenix, and even moreso to be not locked into one specific library and/or firmware. Well played.