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 usageExport 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.