Hello FRC Community,
As we are close to FRC Kickoff I’d like to update the community on what CTRE has been up to.
We just put up CTRE Phoenix Framework, our FRC library for supporting our various CAN devices.
If you plan on using a Talon SRX, Victor SPX, CANifier or Pigeon, you will need this install.
This is also necessary for installing the web-based configuration in the roboRIO, which is important for setting device IDs for PDP and PCM.
I’m sure this will bring up some questions, here are some answers.
- Why is there a separate library?
Historically the CTRE device classes were baked into the WPILIB and NI Kickoff release. This changed last year, which required us to learn how to best install the libraries for our motor controller and Pigeon IMU. Since it was the first year that we had to do this, we chose to make a simple installer and just distribute binaries to ensure successful use of our devices.
This year is “round 2” of the same effort, but this time with two new devices: Victor SPX and CANifier, combined with a growing list of customer-requested features that required back-breaking changes to firmware and API.
Additionally, it has become clear that the object model of our software would have to grow to accommodate a wider range of functionality. Concepts like gear ratios, sensor resolution, motor groups, etc. would have to be done in the API level. Sometimes you can’t just do everything in Talon firmware.
For these reasons, it seemed right to invest in a library that gave us room to grow while still providing basic drivers for our CAN peripherals.
- What’s new for Kickoff?
The full list can be found here…
-And after Kickoff?
Due to the amount of testing necessary for this initial release, we had to prioritize ensuring the base device classes work.
For that reason, the Servo/Gearbox/Drivetrain classes are not part of the kickoff release, and will be provided in a post-kickoff release.
This is also true for the Pigeon-Integration and remote-sensor features.
The full list is here….
-Why is the web-based configuration missing?
The default image on the 2018 roboRIO does not come with the web-based configuration. This can be installed using our software (LifeBoat), which is part of Phoenix. Instructions can be found here…
-Documentation / Examples?
This time we are trying something new with documentation. Personally, I love having PDFs with bookmarks, but the younger generation seems to favor a more open-source/collaborative style of communication. Thus, we’ve been moving our documentation into…
This is a top-to-bottom document to cover device use for all Phoenix supported CAN devices. A lot of the content has been reorganized based on feedback solicited from previous years.
This also includes a migration guide…
We will be updating these continuously to better support FRC teams.
Our examples are also being ported and moved to…
- Talon SRX and Victor SPX do not support SpeedController? And why all the back-breaking changes?
I have had the most fun introducing and supporting the CAN Talon in FRC. Prior to Talon SRX, there hadn’t been anything quite like it in terms of functionality. And I’m excited to see how Victor SPX will be used this season.
After three seasons of development the CANTalon driver had become a hodgepodge of software.
It had several reverse functions, closed-looped settings that didn’t quite mesh with the open-loop features, two types of voltage compensation, and a ton of glue code to make it work in WPILIB’s object model. Function names sometimes confused customers as they were carry-overs from the CANJaguar days.
If we were going to continue to expand, we would have to make some fundamental changes.
This year introduces two core motor controller classes: TalonSRX and VictorSPX, which does not implement any of the WPILIB interfaces.
BUT we do provide a WPI_TalonSRX and WPI_VictorSPX that does. These are subclasses meant to provide the interfaces that WPILIB designed for. This includes support for WPILIB drivetrain classes.
We have also dropped the CANTalon moniker as most Talon SRX users use CAN and not PWM.
PWM classes are still provided by WPILIB, they are now called PWMTalonSRX and PWMVictorSPX.
For those that wish to combine the advance features of the Talon SRX/Victor SPX but continue to use the WPILIB objects which are primarily designed for simple motor controllers, feel free to copy/fork/subclass/extend the WPI_TalonSRX and WPI_VictorSPX. They exist for this exact purpose.
Our RobotBuilder plugins also uses WPI_TalonSRX and WPI_VictorSPX (Again you must install Phoenix).
-Anything broken in the Kickoff release?
As mentioned the new classes are not included in the kickoff release.
Additionally, the 3.1 firmware for Talon SRX and Victor SPX have motion profile temporarily disabled due to changes in the frame format. This will be addressed in an update soon. This has to do with the changes necessary to accommodate the new features.
If anyone has further questions/concerns, please contact our support or reach out via the GitHub repositories.
Change can be scary but sometimes it’s necessary to get to something even better.
Thank you for your patronage.
Thank you for the product feedback (good and bad).
Thank you for the opportunity to continue making cool robot parts.
As always we will do our best to meet your expectations.