Phoenix 6 Features#

Phoenix 6 currently offers the following features and will further expand.

Phoenix 6#

The following features are available for free in the Phoenix 6 API.

Comprehensive API#

  • Device signal getters return a StatusSignal object, expanding the functionality of status signals.

  • Control devices with an extensive list of flexible, strongly-typed control request objects.

Canonical Units#

  • Uses the popular Units library for C++ and standardizes on SI units.

  • Signals are documented with the unit type and the minimum and maximum values.

Improved Device Control#

  • New and improved control output types and closed-loop configuration.

  • Improved Motion Magic® with jerk control and support for modifying the profile on the fly.

  • New Motion Magic® Expo control to use an exponential profile following system dynamics, reducing both overshoot and time to target.

  • Kalman-based algorithms to reduce latency while maintaining smooth data.

Swerve API#

  • High-performance Swerve API using synchronous, latency-compensated odometry.

  • Eliminate the boilerplate from copying swerve template code.

  • Improved odometry performance with CANivore and Phoenix Pro.

  • Tuner X Swerve Project Generator gets swerve drive up and running quickly.

  • Built-in high-fidelity simulation support.

Enhanced Support for CAN FD#

  • Improved CAN FD framing further reduces any CAN bus utilization issues.

  • Larger CAN frames allow for the addition of more advanced features.

New Tuner X Self Tests#

  • Detailed and resolute self tests to improve debugging.

Free High-Fidelity Simulation#

  • Simulation closely follows the behavior of real hardware.

  • Write unit-tests for your robot code, and make sure the robot works before deploying.

Continuous Wrap Mode#

  • Takes the shortest path for continuous mechanisms.

  • Ideal for mechanisms such as Swerve Drive Steer.

Phoenix Pro#

Certain Phoenix 6 features require the device or CANivore to be Pro licensed. The list of features that require licensing is available below.

Field Oriented Control (FOC)#

  • ~15% increase in peak power.

  • Increased torque output; faster acceleration and higher speeds under load.

  • Greater efficiency; the motor draws less current for the same output power, increasing battery life.

  • Support for direct torque control.

Time Base Synchronization#

  • Using CANivore Timesync, signals from all devices are sampled and published to the CAN bus at the same time.

  • API can synchronously wait for data from multiple devices on a CANivore to arrive.

  • Device timestamps captured when the signal is sampled provides best possible latency compensation.

Fused CANcoder#

  • Fuse a CANcoder with the motor’s internal rotor, getting absolute data all the time while using the fast internal sensor for closed looping.

Real-Time High-Fidelity Signal Logger#

  • Log all status signals from every device with timestamps from CAN

  • Data captured as it arrives at the full update rate of the status signals

  • Improved sensitivity and accuracy of system identification with WPILib SysID

  • Automatically starts logging during an FRC match

  • Support for custom user signals alongside auto-captured data

  • Efficient hoot logging format minimizes disk space and CPU usage

  • Export to multiple formats including WPILOG and MCAP

  • Free users can export a limited set of signals to WPILOG

Feature Breakdown#

A full comparison of features between the free Phoenix 6 API and Phoenix Pro is shown below.

Feature

Phoenix 6 (rio)

Phoenix 6 + Pro (rio)

Phoenix 6 (CANivore)

Phoenix 6 + Pro (CANivore)

Canonical Units

x

x

x

x

Improved Bus Utilization

x

x

x

x

CANcoder Always Absolute

x

x

x

x

Kalman-based Velocity

x

x

x

x

Synchronous Wait for Data

x

x

x

x

System Timestamps

x

x

x

x

Limited Signal Logger WPILOG Export

x

x

x

x

Explicit Control Requests

x

x

x

x

Motion Magic® Velocity

x

x

x

x

Motion Magic® Expo

x

x

x

x

Continuous Wrap Mode

x

x

x

x

Improved Self-Test Snapshot

x

x

x

x

Tuner X Improved Plotting

x

x

x

x

CANivore Timestamps

x

x

CAN FD

x

x

Field Oriented Control (FOC)

x

x

Fused CANcoder + TalonFX

x

x

Sync CANcoder + Talon FX

x

x

Full Signal Logger Export

x

x

Signal Logger MCAP Export

x

x

Time-Synced Signal Publishing

x

Device Timestamps

x

Dynamic Motion Magic®

x

Differential Control

x

Java Swerve API

+

++

++

+++

Note

+ The Java Swerve API is freely available, however performance improves when used on a CANivore bus and further improves when used with Pro devices.