Phoenix 6 Announcement Details

Software is an integral part of what we do here at CTR Electronics.  Our goal is to always be pushing forward the software capabilities of the FRC community while making them more accessible to all teams.

 

For the 2023 FRC season we introduced Phoenix Pro: a new comprehensive API, firmware, and software tool collection for our latest CAN FD products.  Our goal of introducing Phoenix Pro with a paid licensing model was to enable development of larger features and improvements that wouldn’t have been possible otherwise.

 

We also knew that in some ways Phoenix Pro would be a bit of an experiment.  Paid software is new to FRC, so despite extensive preparation there would likely be growing pains or changes that needed to be made for future seasons.  In addition the Phoenix Pro API is very different from the Phoenix 5 API due to the nature of the API improvements.

 

Starting with our early beta releases we’ve sought to collect as much feedback as possible in a variety of ways, including:

 

  • Phoenix Pro Beta Testers
  • Initial Community Response
  • Technical Support Requests throughout the season
  • Discussions with teams during build and at events
  • Ongoing discussion by the community on Chief Delphi and Discord
  • FRC Championship Event feedback
  • Active Post-Season feedback requests

Based on this feedback we have a major change to announce for Phoenix Pro:

 

Starting today, the Phoenix Pro API is becoming the free-to-use Phoenix 6 API!  

 

The initial release of the Phoenix 6 API is currently available - see below or see our latest software documentation for instructions.

Please note that Phoenix Pro firmware features will still require a paid Phoenix Pro license for use with Phoenix 6.

 

We’re excited for even more folks to get access to our best library yet and look forward to what teams can accomplish for the 2024 season!

Season Observations

Overall we received positive feedback on the API, features, and user experience from teams that used Phoenix Pro, but by mid-season it became apparent that increased accessibility of the new API improvements would provide a better experience both for teams and for our technical support efforts here at CTR.

 

  • Major API Change

For many teams, using or switching to an entirely new API was too risky to do for this season - it was safer to work around any limitations rather than switch APIs to take advantage of Pro features.

 

Similarly, if a team wanted to switch to Pro mid-season to use a Pro feature, switching felt like a major effort because of the need to change API usage.

 

  • Key Quality of Life Features Only Included in Pro

Key quality-of-life features included in Pro were unavailable in Phoenix 5.  The largest impact of these was canonical units, but also included features like synchronous data receiving and better self-tests in Phoenix Tuner.  This was understandably frustrating for teams that have been asking for them (particularly units) for several years.

 

  • Preventable Technical Support for v5

On CTR’s end, there were specific technical support issues that would not have occurred if the user had been utilizing Phoenix Pro, as the improved API feature set would have prevented the issue from occurring in the first place.

 

Changing Phoenix Pro’s API to a freely available Phoenix 6 API will allow all teams to take advantage of the improved API and firmware improvements while still enabling us to provide cutting-edge firmware features to teams that need them.

Technical Details

What CTR libraries are available now?  What’s happening to Phoenix Pro?

Phoenix 6 - API

The library currently available as ‘Phoenix Pro’ is being renamed to ‘Phoenix 6’.  This change is reflected in the vendor dependency name, API namespaces (“phoenixpro” -> “phoenix6”), and artifact packages.  Documentation and web resources currently have some initial updates to reflect this change and will be updated further over a period of time this off-season.

The first release of Phoenix 6 is available now for Java and C++. You can find the vendordep for online install at the links below. 
Just like with the Phoenix Pro API, only use
one of the two vendordeps at a time.

Phoenix 6 Vendordep:

https://maven.ctr-electronics.com/release/com/ctre/phoenix6/latest/Phoenix6-frc2023-latest.json

 

Phoenix 6 and Phoenix 5 Combined Vendordep:

https://maven.ctr-electronics.com/release/com/ctre/phoenix6/latest/Phoenix6And5-frc2023-latest.json

 

Note that for this initial release, namespace shims have been put in place so that 2023 robot code will compile without any required changes when updating from Phoenix Pro 2023 to Phoenix 6.  These shims will be removed for 2024 releases and teams will need to update their code accordingly.

Phoenix 6 - Firmware

Firmware previously exclusive to Phoenix Pro has been updated and re-released to be compatible with Phoenix 6.  Note that some features still require a paid Phoenix Pro license (see the table further down this page).

This Phoenix 6 firmware is versioned 23.10.X or higher and is currently available both in Phoenix Tuner X and in the usual zip file of our releases repository.

Phoenix Pro

The already released 2023 “Phoenix Pro” software versions are still available for download and use.

Moving forward, “Phoenix Pro” will be the term for firmware features that require a valid, active Phoenix Pro license.

 

Phoenix 5

The Phoenix 5 library will still be maintained and released as-is for the foreseeable future.  Classes that exist in both v5 and v6, such as TalonFX, will be deprecated in v5 for the 2024 season with the intent to remove them from v5 after 1 year (for the 2025 season).

 

Legacy classes in Phoenix 5, such as TalonSRX and VictorSPX, will not be moving to Phoenix 6 and will remain available as-is in Phoenix 5.

Will this break my 2023 Robot Code?

No - while there are naming changes, API shims are in place so that existing code can still compile after updating to this latest release.  Users will notice that namespaces/classes with new names will appear as deprecated but this will not break code usage.

 

There are a number of improvements in our near-future roadmap that will require breaking changes, however these features are not being included in the initial Phoenix 6 release.  Any breaking changes or added features will be available later this off-season in a 2024 Alpha release compatible with the FRC 2023 software.

 

Be sure to keep up to date on the progress of Phoenix 6 through our online changelog!

https://api.ctr-electronics.com/changelog

What features will be available for free with Phoenix 6?  What features will I need to pay for with Phoenix Pro licensing?

Many features are available for free just by using Phoenix 6!

 

A few of Phoenix 6’s firmware features will still require a Phoenix Pro purchase to unlock.  Licensing your hardware device with Phoenix Pro will follow the same process with Phoenix 6 firmware as with the previous Phoenix Pro-only firmware.

 

See the chart below for a breakdown of the current features which require Phoenix Pro.

 

Feature

Free in Phoenix 6

Available with Active Phoenix Pro License

Canonical Units

x

x

Improved Bus Utilization

x

x

CANcoder Always Absolute

x

x

Kalman-based Velocity

x

x

Synchronous Wait for data

x

x

System + CANivore Timestamps

x

x

Explicit Control Requests

x

x

Improved Self-Test Snapshot

x

x

Tuner X Improved Plotting

x

x

Time-Synced Signal Publishing

 

X

Field Oriented Control (FOC)

 

X

CAN Device Timestamps

 

X

Fused CANcoder + Talon FX

 

X