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.
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.
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.
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 Absolutely |
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 |
Explicit Control Requests |
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 |
||
Signal Logger MCAP Export |
x |
x |
||
Time-Synced Signal Publishing |
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.