Installing Phoenix 6 (non-FRC)#

Important

Users in FRC can skip this article.

Phoenix 6 is fully supported outside of FRC on supported systems with a USB to CAN adapter.

Note

CANivore is the recommended USB to CAN adapter with support for CAN FD, name specification, and Windows (as host).

Installation#

API Installation#

Phoenix 6 is distributed through our APT repository. Begin with adding the repository to your APT sources.

YEAR=<year>
sudo curl -s --compressed -o /usr/share/keyrings/ctr-pubkey.gpg "https://deb.ctr-electronics.com/ctr-pubkey.gpg"
sudo curl -s --compressed -o /etc/apt/sources.list.d/ctr${YEAR}.list "https://deb.ctr-electronics.com/ctr${YEAR}.list"

Note

<year> should be replaced with the year of Phoenix 6 software for which you have purchased licenses.

After adding the sources, Phoenix 6 can be installed and updated using the following:

sudo apt update
sudo apt install phoenix6

Tip

To get a robot application up and running quickly, check out our non-FRC Linux example.

Installation is available through PyPI.

py -3 -m pip install phoenix6

Installation is available through Nuget. An example on adding Nuget packages to a Visual Studio project is available in the Microsoft Quickstart.

Firmware Installation#

Device firmware upgrading is handled by the Phoenix Tuner X configuration client.

Simulation vs Hardware#

Users may notice the robot program is using simulated devices by default. This is the default behavior if the host platform supports simulation (see requirements for a full list of supported platforms).

In order for the robot program to communicate with physical devices (on platforms that support both simulation and hardware), the CTR_TARGET environment variable must be set. Examples of this are shown below.

export CTR_TARGET=Hardware # Export the environment variable so it's persistent in the shell

Or

CTR_TARGET=Hardware python3 application.py # Set the environment variable only for the python call

Examples#

The same Phoenix 6 examples can be used as a reference outside of FRC. The function calls are identical, although the framework that is used to call them may be different and specialized for FRC.

Non FRC Projects#

We recommend that users use the standard language projects to use our library outside of FRC. For example, a typical Python project will have a main.py that utilizes the phoenix6 library that’s installed with pip.

A typical C# project is a Visual Studio project that includes our libraries via nuget.

For C++, an example utilizing CMake is provided here.

Note

When utilizing actuators outside of FRC, the user must continuously feed an enable signal to the device. For more information, see Enabling Actuators.

Alternative Support#

In the event that the Phoenix 6 API does not fit the user’s needs (e.g. when using devices such as a TalonSRX), users can utilize the Phoenix 5 API.

We also provide a hardware robot controller called the HERO development board. The HERO can be programmed in C# to utilize compatible v5 devices.