BLOG: FRC 2021 Kickoff

Hello FRC Community!

We’ve just released our 2021 kickoff release of Phoenix Framework ( The Phoenix Windows installer and zips for macOS and Linux are now available.

You can find the latest firmware CRFs at each product page (the installer also installs them).

The new features included in this season’s release are listed below.

Simulation Support

We’ve spent our offseason investing in a new suite of simulation features designed to allow effective development without requiring access to hardware.

This includes:

  • Simulation of device-level features, such as Motion Magic

  • Full feature support of Phoenix Tuner (including Plotter, Self Test Snapshot, Control, and Configs)

  • Support for simulated device-to-device features, such as follower mode and remote sensors/limit-switches

  • Integration with WPILib’s simulation GUI when using WPI_* classes

  • Supported Devices: Talon SRX, Victor SPX (future releases will include more devices)

  • Supported Operating Systems: Windows, Linux, macOS

  • Supported Languages: Java, C++

If you encounter any limitations with Talon SRX or Victor SPX simulation, please contact or file an issue tracker here.

Phoenix Simulation Examples

For teams that want to start leveraging simulation features right now, the basic steps are:

  1. Check out one of our examples that supports simulation (such as the Motion Magic example).

  2. Open the example in Visual Studio Code and run in simulation.

  3. Open Phoenix Tuner and set the Diagnostic Server Address to localhost. Simulated devices will appear in Phoenix Tuner in a few seconds.

  4. Develop as normal.


We invite teams to leverage their preferred physics simulators by utilizing the SimCollection functions in Talon SRX and Victor SPX as seen here.


Simulating non-FRC applications (not using WPI_* classes) will require calling Unmanaged.feedEnable(100); to enable simulated actuators.

Additional documentation for simulation will be available in the future.

Online API Documentation

The online API documentation has been updated for 2021.

C++ documentation can be found here.

Java documentation can be found here.

Java teams should note that the documentation jar is installed locally after running our installer.


No new functionality has been added to Phoenix for LabVIEW users this season.

Release Testing Observations

During our release testing process, we observed the following limitations:

roboRIO 2021 v3.1 Image

We observed that we could not reliably image our roboRIOs with the 2021 v3.1 image. As a result, all of our testing has been done using the 2021 v3.0 image.

LabVIEW Deploy Limitation

We have noticed an intermittent issue that corrupts the Phoenix library files during LabVIEW deploy. This is reproduced by the following procedure:

  1. Soft deploy your application (clicking the white arrow in or <Ctrl>+R)

  2. Hard deploy your application (right-click “FRC Robot Boot-up Deployment”, Run As Startup)

This dialog pops up when the issue occurs:


To solve this issue, hard deploy your application again.

Back-breaking API changes

In anticipation of future releases that support custom unit scaling, several of the Java and C++ routines have been updated to use doubles instead of ints.

We have also removed routines that have been deprecated for multiple seasons.

Removed motor controller routines:

  • set(ControlMode, double, double)

  • enableHeadingHold(bool)

  • selectDemandType(bool)

  • getActiveTrajectoryHeading()

Removed PigeonIMU routine:

  • configTemperatureCompensationEnable(bool, int)


There are some new firmware files for this season. However, they are not required for general functionality.

A maintenance release (v21.0) for Falcon 500 (Talon FX), Talon SRX, and Victor SPX is available at each product page (the installer also installs them).

Good luck, and stay safe! - The CTRE Engineering Team