phoenix6.hardware.core.core_talon_fx#

Module Contents#

class phoenix6.hardware.core.core_talon_fx.CoreTalonFX(device_id: int, canbus: str = '')#

Bases: phoenix6.hardware.parent_device.ParentDevice

Constructs a new Talon FX motor controller object.

Parameters:
  • device_id (int) – ID of the device, as configured in Phoenix Tuner.

  • canbus (str, optional) – Name of the CAN bus this device is on. Possible CAN bus strings are: rio - The native roboRIO CAN bus CANivore Name or Serial Number SocketCAN interface - non-FRC Linux only * - Any CANivore seen by the program Empty String - Default for the system (“rio” for roboRIO, “can0” for linux, “*” for Windows)

property sim_state: phoenix6.sim.talon_fx_sim_state.TalonFXSimState#

Get the simulation state for this device.

This function reuses an allocated simulation state object, so it is safe to call this function multiple times in a robot loop.

Returns:

Simulation state

Return type:

TalonFXSimState

get_version_major() phoenix6.status_signal.StatusSignal[int]#

App Major Version number.

Minimum Value: 0 Maximum Value: 255 Default Value: 0 Units:

Default Rates:

CAN: 4.0 Hz

Returns:

VersionMajor Status Signal Object

Return type:

StatusSignal[int]

get_version_minor() phoenix6.status_signal.StatusSignal[int]#

App Minor Version number.

Minimum Value: 0 Maximum Value: 255 Default Value: 0 Units:

Default Rates:

CAN: 4.0 Hz

Returns:

VersionMinor Status Signal Object

Return type:

StatusSignal[int]

get_version_bugfix() phoenix6.status_signal.StatusSignal[int]#

App Bugfix Version number.

Minimum Value: 0 Maximum Value: 255 Default Value: 0 Units:

Default Rates:

CAN: 4.0 Hz

Returns:

VersionBugfix Status Signal Object

Return type:

StatusSignal[int]

get_version_build() phoenix6.status_signal.StatusSignal[int]#

App Build Version number.

Minimum Value: 0 Maximum Value: 255 Default Value: 0 Units:

Default Rates:

CAN: 4.0 Hz

Returns:

VersionBuild Status Signal Object

Return type:

StatusSignal[int]

get_version() phoenix6.status_signal.StatusSignal[int]#

Full Version. The format is a four byte value.

Full Version of firmware in device. The format is a four byte value.

Minimum Value: 0 Maximum Value: 4294967295 Default Value: 0 Units:

Default Rates:

CAN: 4.0 Hz

Returns:

Version Status Signal Object

Return type:

StatusSignal[int]

get_fault_field() phoenix6.status_signal.StatusSignal[int]#

Integer representing all faults

This returns the fault flags reported by the device. These are device specific and are not used directly in typical applications. Use the signal specific GetFault_*() methods instead.

Minimum Value: 0 Maximum Value: 16777215 Default Value: 0 Units:

Default Rates:

CAN: 4.0 Hz

Returns:

FaultField Status Signal Object

Return type:

StatusSignal[int]

get_sticky_fault_field() phoenix6.status_signal.StatusSignal[int]#

Integer representing all sticky faults

This returns the persistent “sticky” fault flags reported by the device. These are device specific and are not used directly in typical applications. Use the signal specific GetStickyFault_*() methods instead.

Minimum Value: 0 Maximum Value: 16777215 Default Value: 0 Units:

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFaultField Status Signal Object

Return type:

StatusSignal[int]

get_motor_voltage() phoenix6.status_signal.StatusSignal[phoenix6.units.volt]#

The applied (output) motor voltage.

Minimum Value: -40.96 Maximum Value: 40.95 Default Value: 0 Units: V

Default Rates:

CAN 2.0: 100.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

MotorVoltage Status Signal Object

Return type:

StatusSignal[volt]

get_forward_limit() phoenix6.status_signal.StatusSignal[phoenix6.signals.spn_enums.ForwardLimitValue]#

Forward Limit Pin.

Default Rates:

CAN 2.0: 100.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

ForwardLimit Status Signal Object

Return type:

StatusSignal[ForwardLimitValue]

get_reverse_limit() phoenix6.status_signal.StatusSignal[phoenix6.signals.spn_enums.ReverseLimitValue]#

Reverse Limit Pin.

Default Rates:

CAN 2.0: 100.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

ReverseLimit Status Signal Object

Return type:

StatusSignal[ReverseLimitValue]

get_applied_rotor_polarity() phoenix6.status_signal.StatusSignal[phoenix6.signals.spn_enums.AppliedRotorPolarityValue]#

The applied rotor polarity. This typically is determined by the Inverted config, but can be overridden if using Follower features.

Default Rates:

CAN 2.0: 100.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

AppliedRotorPolarity Status Signal Object

Return type:

StatusSignal[AppliedRotorPolarityValue]

get_duty_cycle() phoenix6.status_signal.StatusSignal[float]#

The applied motor duty cycle.

Minimum Value: -2.0 Maximum Value: 1.9990234375 Default Value: 0 Units: fractional

Default Rates:

CAN 2.0: 100.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

DutyCycle Status Signal Object

Return type:

StatusSignal[float]

get_torque_current() phoenix6.status_signal.StatusSignal[phoenix6.units.ampere]#

Current corresponding to the torque output by the motor. Similar to StatorCurrent. Users will likely prefer this current to calculate the applied torque to the rotor.

Stator current where positive current means torque is applied in the forward direction as determined by the Inverted setting

Minimum Value: -327.68 Maximum Value: 327.67 Default Value: 0 Units: A

Default Rates:

CAN 2.0: 100.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

TorqueCurrent Status Signal Object

Return type:

StatusSignal[ampere]

get_stator_current() phoenix6.status_signal.StatusSignal[phoenix6.units.ampere]#

Current corresponding to the stator windings. Similar to TorqueCurrent. Users will likely prefer TorqueCurrent over StatorCurrent.

Stator current where Positive current indicates motoring regardless of direction. Negative current indicates regenerative braking regardless of direction.

Minimum Value: -327.68 Maximum Value: 327.66 Default Value: 0 Units: A

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

StatorCurrent Status Signal Object

Return type:

StatusSignal[ampere]

get_supply_current() phoenix6.status_signal.StatusSignal[phoenix6.units.ampere]#

Measured supply side current

Minimum Value: -327.68 Maximum Value: 327.66 Default Value: 0 Units: A

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

SupplyCurrent Status Signal Object

Return type:

StatusSignal[ampere]

get_supply_voltage() phoenix6.status_signal.StatusSignal[phoenix6.units.volt]#

Measured supply voltage to the TalonFX.

Minimum Value: 4 Maximum Value: 29.575 Default Value: 4 Units: V

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

SupplyVoltage Status Signal Object

Return type:

StatusSignal[volt]

get_device_temp() phoenix6.status_signal.StatusSignal[phoenix6.units.celsius]#

Temperature of device

This is the temperature that the device measures itself to be at. Similar to Processor Temperature.

Minimum Value: 0.0 Maximum Value: 255.0 Default Value: 0 Units: ℃

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

DeviceTemp Status Signal Object

Return type:

StatusSignal[celsius]

get_processor_temp() phoenix6.status_signal.StatusSignal[phoenix6.units.celsius]#

Temperature of the processor

This is the temperature that the processor measures itself to be at. Similar to Device Temperature.

Minimum Value: 0.0 Maximum Value: 255.0 Default Value: 0 Units: ℃

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

ProcessorTemp Status Signal Object

Return type:

StatusSignal[celsius]

get_rotor_velocity() phoenix6.status_signal.StatusSignal[phoenix6.units.rotations_per_second]#

Velocity of the motor rotor. This velocity is not affected by any feedback configs.

Minimum Value: -512.0 Maximum Value: 511.998046875 Default Value: 0 Units: rotations per second

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

RotorVelocity Status Signal Object

Return type:

StatusSignal[rotations_per_second]

get_rotor_position() phoenix6.status_signal.StatusSignal[phoenix6.units.rotation]#

Position of the motor rotor. This position is only affected by the RotorOffset config.

Minimum Value: -16384.0 Maximum Value: 16383.999755859375 Default Value: 0 Units: rotations

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

RotorPosition Status Signal Object

Return type:

StatusSignal[rotation]

get_velocity() phoenix6.status_signal.StatusSignal[phoenix6.units.rotations_per_second]#

Velocity of the device in mechanism rotations per second. This can be the velocity of a remote sensor and is affected by the RotorToSensorRatio and SensorToMechanismRatio configs.

Minimum Value: -512.0 Maximum Value: 511.998046875 Default Value: 0 Units: rotations per second

Default Rates:

CAN 2.0: 50.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

Velocity Status Signal Object

Return type:

StatusSignal[rotations_per_second]

get_position() phoenix6.status_signal.StatusSignal[phoenix6.units.rotation]#

Position of the device in mechanism rotations. This can be the position of a remote sensor and is affected by the RotorToSensorRatio and SensorToMechanismRatio configs.

Minimum Value: -16384.0 Maximum Value: 16383.999755859375 Default Value: 0 Units: rotations

Default Rates:

CAN 2.0: 50.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

Position Status Signal Object

Return type:

StatusSignal[rotation]

get_acceleration() phoenix6.status_signal.StatusSignal[phoenix6.units.rotations_per_second_squared]#

Acceleration of the device in mechanism rotations per second². This can be the acceleration of a remote sensor and is affected by the RotorToSensorRatio and SensorToMechanismRatio configs.

Minimum Value: -2048.0 Maximum Value: 2047.75 Default Value: 0 Units: rotations per second²

Default Rates:

CAN 2.0: 50.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

Acceleration Status Signal Object

Return type:

StatusSignal[rotations_per_second_squared]

get_control_mode() phoenix6.status_signal.StatusSignal[phoenix6.signals.spn_enums.ControlModeValue]#

The active control mode of the motor controller

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

ControlMode Status Signal Object

Return type:

StatusSignal[ControlModeValue]

get_motion_magic_is_running() phoenix6.status_signal.StatusSignal[phoenix6.signals.spn_enums.MotionMagicIsRunningValue]#

Check if Motion Magic® is running. This is equivalent to checking that the reported control mode is a Motion Magic® based mode.

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

MotionMagicIsRunning Status Signal Object

Return type:

StatusSignal[MotionMagicIsRunningValue]

get_device_enable() phoenix6.status_signal.StatusSignal[phoenix6.signals.spn_enums.DeviceEnableValue]#

Indicates if device is actuator enabled.

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

DeviceEnable Status Signal Object

Return type:

StatusSignal[DeviceEnableValue]

get_closed_loop_slot() phoenix6.status_signal.StatusSignal[int]#

Closed loop slot in use

This is the slot that the closed loop PID is using.

Minimum Value: 0 Maximum Value: 2 Default Value: 0 Units:

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

ClosedLoopSlot Status Signal Object

Return type:

StatusSignal[int]

get_differential_control_mode() phoenix6.status_signal.StatusSignal[phoenix6.signals.spn_enums.DifferentialControlModeValue]#

The active control mode of the differential controller

Default Rates:

CAN 2.0: 100.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

DifferentialControlMode Status Signal Object

Return type:

StatusSignal[DifferentialControlModeValue]

get_differential_average_velocity() phoenix6.status_signal.StatusSignal[phoenix6.units.rotations_per_second]#

Average component of the differential velocity of device.

Minimum Value: -512.0 Maximum Value: 511.998046875 Default Value: 0 Units: rotations per second

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

DifferentialAverageVelocity Status Signal Object

Return type:

StatusSignal[rotations_per_second]

get_differential_average_position() phoenix6.status_signal.StatusSignal[phoenix6.units.rotation]#

Average component of the differential position of device.

Minimum Value: -16384.0 Maximum Value: 16383.999755859375 Default Value: 0 Units: rotations

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

DifferentialAveragePosition Status Signal Object

Return type:

StatusSignal[rotation]

get_differential_difference_velocity() phoenix6.status_signal.StatusSignal[phoenix6.units.rotations_per_second]#

Difference component of the differential velocity of device.

Minimum Value: -512.0 Maximum Value: 511.998046875 Default Value: 0 Units: rotations per second

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

DifferentialDifferenceVelocity Status Signal Object

Return type:

StatusSignal[rotations_per_second]

get_differential_difference_position() phoenix6.status_signal.StatusSignal[phoenix6.units.rotation]#

Difference component of the differential position of device.

Minimum Value: -16384.0 Maximum Value: 16383.999755859375 Default Value: 0 Units: rotations

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

DifferentialDifferencePosition Status Signal Object

Return type:

StatusSignal[rotation]

get_differential_closed_loop_slot() phoenix6.status_signal.StatusSignal[int]#

Differential Closed loop slot in use

This is the slot that the closed loop differential PID is using.

Minimum Value: 0 Maximum Value: 2 Default Value: 0 Units:

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

DifferentialClosedLoopSlot Status Signal Object

Return type:

StatusSignal[int]

get_bridge_output() phoenix6.status_signal.StatusSignal[phoenix6.signals.spn_enums.BridgeOutputValue]#

The applied output of the bridge.

Default Rates:

CAN 2.0: 100.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

BridgeOutput Status Signal Object

Return type:

StatusSignal[BridgeOutputValue]

get_is_pro_licensed() phoenix6.status_signal.StatusSignal[bool]#

Whether the device is Phoenix Pro licensed.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

IsProLicensed Status Signal Object

Return type:

StatusSignal[bool]

get_ancillary_device_temp() phoenix6.status_signal.StatusSignal[phoenix6.units.celsius]#

Temperature of device from second sensor

Newer versions of Talon FX have multiple temperature measurement methods.

Minimum Value: 0.0 Maximum Value: 255.0 Default Value: 0 Units: ℃

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

AncillaryDeviceTemp Status Signal Object

Return type:

StatusSignal[celsius]

get_motor_type() phoenix6.status_signal.StatusSignal[phoenix6.signals.spn_enums.MotorTypeValue]#

The type of motor attached to the Talon FX

This can be used to determine what motor is attached to the Talon FX. Return will be “Unknown” if firmware is too old or device is not present.

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

MotorType Status Signal Object

Return type:

StatusSignal[MotorTypeValue]

get_fault_hardware() phoenix6.status_signal.StatusSignal[bool]#

Hardware fault occurred

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_Hardware Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_hardware() phoenix6.status_signal.StatusSignal[bool]#

Hardware fault occurred

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_Hardware Status Signal Object

Return type:

StatusSignal[bool]

get_fault_proc_temp() phoenix6.status_signal.StatusSignal[bool]#

Processor temperature exceeded limit

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_ProcTemp Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_proc_temp() phoenix6.status_signal.StatusSignal[bool]#

Processor temperature exceeded limit

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_ProcTemp Status Signal Object

Return type:

StatusSignal[bool]

get_fault_device_temp() phoenix6.status_signal.StatusSignal[bool]#

Device temperature exceeded limit

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_DeviceTemp Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_device_temp() phoenix6.status_signal.StatusSignal[bool]#

Device temperature exceeded limit

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_DeviceTemp Status Signal Object

Return type:

StatusSignal[bool]

get_fault_undervoltage() phoenix6.status_signal.StatusSignal[bool]#

Device supply voltage dropped to near brownout levels

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_Undervoltage Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_undervoltage() phoenix6.status_signal.StatusSignal[bool]#

Device supply voltage dropped to near brownout levels

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_Undervoltage Status Signal Object

Return type:

StatusSignal[bool]

get_fault_boot_during_enable() phoenix6.status_signal.StatusSignal[bool]#

Device boot while detecting the enable signal

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_BootDuringEnable Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_boot_during_enable() phoenix6.status_signal.StatusSignal[bool]#

Device boot while detecting the enable signal

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_BootDuringEnable Status Signal Object

Return type:

StatusSignal[bool]

get_fault_unlicensed_feature_in_use() phoenix6.status_signal.StatusSignal[bool]#

An unlicensed feature is in use, device may not behave as expected.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_UnlicensedFeatureInUse Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_unlicensed_feature_in_use() phoenix6.status_signal.StatusSignal[bool]#

An unlicensed feature is in use, device may not behave as expected.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_UnlicensedFeatureInUse Status Signal Object

Return type:

StatusSignal[bool]

get_fault_bridge_brownout() phoenix6.status_signal.StatusSignal[bool]#

Bridge was disabled most likely due to supply voltage dropping too low.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_BridgeBrownout Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_bridge_brownout() phoenix6.status_signal.StatusSignal[bool]#

Bridge was disabled most likely due to supply voltage dropping too low.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_BridgeBrownout Status Signal Object

Return type:

StatusSignal[bool]

get_fault_remote_sensor_reset() phoenix6.status_signal.StatusSignal[bool]#

The remote sensor has reset.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_RemoteSensorReset Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_remote_sensor_reset() phoenix6.status_signal.StatusSignal[bool]#

The remote sensor has reset.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_RemoteSensorReset Status Signal Object

Return type:

StatusSignal[bool]

get_fault_missing_differential_fx() phoenix6.status_signal.StatusSignal[bool]#

The remote Talon FX used for differential control is not present on CAN Bus.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_MissingDifferentialFX Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_missing_differential_fx() phoenix6.status_signal.StatusSignal[bool]#

The remote Talon FX used for differential control is not present on CAN Bus.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_MissingDifferentialFX Status Signal Object

Return type:

StatusSignal[bool]

get_fault_remote_sensor_pos_overflow() phoenix6.status_signal.StatusSignal[bool]#

The remote sensor position has overflowed. Because of the nature of remote sensors, it is possible for the remote sensor position to overflow beyond what is supported by the status signal frame. However, this is rare and cannot occur over the course of an FRC match under normal use.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_RemoteSensorPosOverflow Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_remote_sensor_pos_overflow() phoenix6.status_signal.StatusSignal[bool]#

The remote sensor position has overflowed. Because of the nature of remote sensors, it is possible for the remote sensor position to overflow beyond what is supported by the status signal frame. However, this is rare and cannot occur over the course of an FRC match under normal use.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_RemoteSensorPosOverflow Status Signal Object

Return type:

StatusSignal[bool]

get_fault_over_supply_v() phoenix6.status_signal.StatusSignal[bool]#

Supply Voltage has exceeded the maximum voltage rating of device.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_OverSupplyV Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_over_supply_v() phoenix6.status_signal.StatusSignal[bool]#

Supply Voltage has exceeded the maximum voltage rating of device.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_OverSupplyV Status Signal Object

Return type:

StatusSignal[bool]

get_fault_unstable_supply_v() phoenix6.status_signal.StatusSignal[bool]#

Supply Voltage is unstable. Ensure you are using a battery and current limited power supply.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_UnstableSupplyV Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_unstable_supply_v() phoenix6.status_signal.StatusSignal[bool]#

Supply Voltage is unstable. Ensure you are using a battery and current limited power supply.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_UnstableSupplyV Status Signal Object

Return type:

StatusSignal[bool]

get_fault_reverse_hard_limit() phoenix6.status_signal.StatusSignal[bool]#

Reverse limit switch has been asserted. Output is set to neutral.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_ReverseHardLimit Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_reverse_hard_limit() phoenix6.status_signal.StatusSignal[bool]#

Reverse limit switch has been asserted. Output is set to neutral.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_ReverseHardLimit Status Signal Object

Return type:

StatusSignal[bool]

get_fault_forward_hard_limit() phoenix6.status_signal.StatusSignal[bool]#

Forward limit switch has been asserted. Output is set to neutral.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_ForwardHardLimit Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_forward_hard_limit() phoenix6.status_signal.StatusSignal[bool]#

Forward limit switch has been asserted. Output is set to neutral.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_ForwardHardLimit Status Signal Object

Return type:

StatusSignal[bool]

get_fault_reverse_soft_limit() phoenix6.status_signal.StatusSignal[bool]#

Reverse soft limit has been asserted. Output is set to neutral.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_ReverseSoftLimit Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_reverse_soft_limit() phoenix6.status_signal.StatusSignal[bool]#

Reverse soft limit has been asserted. Output is set to neutral.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_ReverseSoftLimit Status Signal Object

Return type:

StatusSignal[bool]

get_fault_forward_soft_limit() phoenix6.status_signal.StatusSignal[bool]#

Forward soft limit has been asserted. Output is set to neutral.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_ForwardSoftLimit Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_forward_soft_limit() phoenix6.status_signal.StatusSignal[bool]#

Forward soft limit has been asserted. Output is set to neutral.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_ForwardSoftLimit Status Signal Object

Return type:

StatusSignal[bool]

get_fault_remote_sensor_data_invalid() phoenix6.status_signal.StatusSignal[bool]#

The remote sensor’s data is no longer trusted. This can happen if the remote sensor disappears from the CAN bus or if the remote sensor indicates its data is no longer valid, such as when a CANcoder’s magnet strength falls into the “red” range.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_RemoteSensorDataInvalid Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_remote_sensor_data_invalid() phoenix6.status_signal.StatusSignal[bool]#

The remote sensor’s data is no longer trusted. This can happen if the remote sensor disappears from the CAN bus or if the remote sensor indicates its data is no longer valid, such as when a CANcoder’s magnet strength falls into the “red” range.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_RemoteSensorDataInvalid Status Signal Object

Return type:

StatusSignal[bool]

get_fault_fused_sensor_out_of_sync() phoenix6.status_signal.StatusSignal[bool]#

The remote sensor used for fusion has fallen out of sync to the local sensor. A re-synchronization has occurred, which may cause a discontinuity. This typically happens if there is significant slop in the mechanism, or if the RotorToSensorRatio configuration parameter is incorrect.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_FusedSensorOutOfSync Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_fused_sensor_out_of_sync() phoenix6.status_signal.StatusSignal[bool]#

The remote sensor used for fusion has fallen out of sync to the local sensor. A re-synchronization has occurred, which may cause a discontinuity. This typically happens if there is significant slop in the mechanism, or if the RotorToSensorRatio configuration parameter is incorrect.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_FusedSensorOutOfSync Status Signal Object

Return type:

StatusSignal[bool]

get_fault_stator_curr_limit() phoenix6.status_signal.StatusSignal[bool]#

Stator current limit occured.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_StatorCurrLimit Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_stator_curr_limit() phoenix6.status_signal.StatusSignal[bool]#

Stator current limit occured.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_StatorCurrLimit Status Signal Object

Return type:

StatusSignal[bool]

get_fault_supply_curr_limit() phoenix6.status_signal.StatusSignal[bool]#

Supply current limit occured.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_SupplyCurrLimit Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_supply_curr_limit() phoenix6.status_signal.StatusSignal[bool]#

Supply current limit occured.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_SupplyCurrLimit Status Signal Object

Return type:

StatusSignal[bool]

get_fault_using_fused_ca_ncoder_while_unlicensed() phoenix6.status_signal.StatusSignal[bool]#

Using Fused CANcoder feature while unlicensed. Device has fallen back to remote CANcoder.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

Fault_UsingFusedCANcoderWhileUnlicensed Status Signal Object

Return type:

StatusSignal[bool]

get_sticky_fault_using_fused_ca_ncoder_while_unlicensed() phoenix6.status_signal.StatusSignal[bool]#

Using Fused CANcoder feature while unlicensed. Device has fallen back to remote CANcoder.

Default Value: False

Default Rates:

CAN: 4.0 Hz

Returns:

StickyFault_UsingFusedCANcoderWhileUnlicensed Status Signal Object

Return type:

StatusSignal[bool]

get_closed_loop_proportional_output() phoenix6.status_signal.StatusSignal[float]#

Closed loop proportional component

The portion of the closed loop output that is the proportional to the error. Alternatively, the p-Contribution of the closed loop output.

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

ClosedLoopProportionalOutput Status Signal object

get_closed_loop_integrated_output() phoenix6.status_signal.StatusSignal[float]#

Closed loop integrated component

The portion of the closed loop output that is proportional to the integrated error. Alternatively, the i-Contribution of the closed loop output.

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

ClosedLoopIntegratedOutput Status Signal object

get_closed_loop_feed_forward() phoenix6.status_signal.StatusSignal[float]#

Feedforward passed by the user

This is the general feedforward that the user provides for the closed loop.

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

ClosedLoopFeedForward Status Signal object

get_closed_loop_derivative_output() phoenix6.status_signal.StatusSignal[float]#

Closed loop derivative component

The portion of the closed loop output that is the proportional to the deriviative the error. Alternatively, the d-Contribution of the closed loop output.

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

ClosedLoopDerivativeOutput Status Signal object

get_closed_loop_output() phoenix6.status_signal.StatusSignal[float]#

Closed loop total output

The total output of the closed loop output.

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

ClosedLoopOutput Status Signal object

get_closed_loop_reference() phoenix6.status_signal.StatusSignal[float]#

Value that the closed loop is targeting

This is the value that the closed loop PID controller targets.

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

ClosedLoopReference Status Signal object

get_closed_loop_reference_slope() phoenix6.status_signal.StatusSignal[float]#

Derivative of the target that the closed loop is targeting

This is the change in the closed loop reference. This may be used in the feed-forward calculation, the derivative-error, or in application of the signage for kS. Typically, this represents the target velocity during Motion Magic®.

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

ClosedLoopReferenceSlope Status Signal object

get_closed_loop_error() phoenix6.status_signal.StatusSignal[float]#

The difference between target reference and current measurement

This is the value that is treated as the error in the PID loop.

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

ClosedLoopError Status Signal object

get_differential_output() phoenix6.status_signal.StatusSignal[float]#

The calculated motor output for differential followers.

This is a torque request when using the TorqueCurrentFOC control output type, and a duty cycle in all other control types.

Default Rates:

CAN 2.0: 100.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

DifferentialOutput Status Signal object

get_differential_closed_loop_proportional_output() phoenix6.status_signal.StatusSignal[float]#

Differential closed loop proportional component

The portion of the differential closed loop output that is the proportional to the error. Alternatively, the p-Contribution of the closed loop output.

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

DifferentialClosedLoopProportionalOutput Status Signal object

get_differential_closed_loop_integrated_output() phoenix6.status_signal.StatusSignal[float]#

Differential closed loop integrated component

The portion of the differential closed loop output that is proportional to the integrated error. Alternatively, the i-Contribution of the closed loop output.

Default Rates:

CAN 2.0: 100.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

DifferentialClosedLoopIntegratedOutput Status Signal object

get_differential_closed_loop_feed_forward() phoenix6.status_signal.StatusSignal[float]#

Differential Feedforward passed by the user

This is the general feedforward that the user provides for the differential closed loop.

Default Rates:

CAN 2.0: 100.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

DifferentialClosedLoopFeedForward Status Signal object

get_differential_closed_loop_derivative_output() phoenix6.status_signal.StatusSignal[float]#

Differential closed loop derivative component

The portion of the differential closed loop output that is the proportional to the deriviative the error. Alternatively, the d-Contribution of the closed loop output.

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

DifferentialClosedLoopDerivativeOutput Status Signal object

get_differential_closed_loop_output() phoenix6.status_signal.StatusSignal[float]#

Differential closed loop total output

The total output of the differential closed loop output.

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

DifferentialClosedLoopOutput Status Signal object

get_differential_closed_loop_reference() phoenix6.status_signal.StatusSignal[float]#

Value that the differential closed loop is targeting

This is the value that the differential closed loop PID controller targets.

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

DifferentialClosedLoopReference Status Signal object

get_differential_closed_loop_reference_slope() phoenix6.status_signal.StatusSignal[float]#

Derivative of the target that the differential closed loop is targeting

This is the change in the closed loop reference. This may be used in the feed-forward calculation, the derivative-error, or in application of the signage for kS. Typically, this represents the target velocity during Motion Magic®.

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

DifferentialClosedLoopReferenceSlope Status Signal object

get_differential_closed_loop_error() phoenix6.status_signal.StatusSignal[float]#

The difference between target differential reference and current measurement

This is the value that is treated as the error in the differential PID loop.

Default Rates:

CAN 2.0: 4.0 Hz CAN FD: 100.0 Hz (TimeSynced with Pro)

Returns:

DifferentialClosedLoopError Status Signal object

set_control(request: phoenix6.hardware.parent_device.SupportsSendRequest) phoenix6.status_signal.StatusCode#

Control motor with generic control request object.

If control request is not supported by device, this request will fail with StatusCode NotSupported

Parameters:

request (SupportsSendRequest) – Control object to request of the device

Returns:

StatusCode of the request

Return type:

StatusCode

set_position(new_value: phoenix6.units.rotation, timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Sets the mechanism position of the device in mechanism rotations.

Parameters:
  • new_value (rotation) – Value to set to. Units are in rotations.

  • timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode

clear_sticky_faults(timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Clear the sticky faults in the device.

This typically has no impact on the device functionality. Instead, it just clears telemetry faults that are accessible via API and Tuner Self-Test.

Parameters:

timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode

clear_sticky_fault_hardware(timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Clear sticky fault: Hardware fault occurred

Parameters:

timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode

clear_sticky_fault_proc_temp(timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Clear sticky fault: Processor temperature exceeded limit

Parameters:

timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode

clear_sticky_fault_device_temp(timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Clear sticky fault: Device temperature exceeded limit

Parameters:

timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode

clear_sticky_fault_undervoltage(timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Clear sticky fault: Device supply voltage dropped to near brownout levels

Parameters:

timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode

clear_sticky_fault_boot_during_enable(timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Clear sticky fault: Device boot while detecting the enable signal

Parameters:

timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode

clear_sticky_fault_bridge_brownout(timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Clear sticky fault: Bridge was disabled most likely due to supply voltage dropping too low.

Parameters:

timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode

clear_sticky_fault_remote_sensor_reset(timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Clear sticky fault: The remote sensor has reset.

Parameters:

timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode

clear_sticky_fault_missing_differential_fx(timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Clear sticky fault: The remote Talon FX used for differential control is not present on CAN Bus.

Parameters:

timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode

clear_sticky_fault_remote_sensor_pos_overflow(timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Clear sticky fault: The remote sensor position has overflowed. Because of the nature of remote sensors, it is possible for the remote sensor position to overflow beyond what is supported by the status signal frame. However, this is rare and cannot occur over the course of an FRC match under normal use.

Parameters:

timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode

clear_sticky_fault_over_supply_v(timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Clear sticky fault: Supply Voltage has exceeded the maximum voltage rating of device.

Parameters:

timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode

clear_sticky_fault_unstable_supply_v(timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Clear sticky fault: Supply Voltage is unstable. Ensure you are using a battery and current limited power supply.

Parameters:

timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode

clear_sticky_fault_reverse_hard_limit(timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Clear sticky fault: Reverse limit switch has been asserted. Output is set to neutral.

Parameters:

timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode

clear_sticky_fault_forward_hard_limit(timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Clear sticky fault: Forward limit switch has been asserted. Output is set to neutral.

Parameters:

timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode

clear_sticky_fault_reverse_soft_limit(timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Clear sticky fault: Reverse soft limit has been asserted. Output is set to neutral.

Parameters:

timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode

clear_sticky_fault_forward_soft_limit(timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Clear sticky fault: Forward soft limit has been asserted. Output is set to neutral.

Parameters:

timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode

clear_sticky_fault_remote_sensor_data_invalid(timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Clear sticky fault: The remote sensor’s data is no longer trusted. This can happen if the remote sensor disappears from the CAN bus or if the remote sensor indicates its data is no longer valid, such as when a CANcoder’s magnet strength falls into the “red” range.

Parameters:

timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode

clear_sticky_fault_fused_sensor_out_of_sync(timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Clear sticky fault: The remote sensor used for fusion has fallen out of sync to the local sensor. A re-synchronization has occurred, which may cause a discontinuity. This typically happens if there is significant slop in the mechanism, or if the RotorToSensorRatio configuration parameter is incorrect.

Parameters:

timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode

clear_sticky_fault_stator_curr_limit(timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Clear sticky fault: Stator current limit occured.

Parameters:

timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode

clear_sticky_fault_supply_curr_limit(timeout_seconds: phoenix6.units.second = 0.05) phoenix6.status_signal.StatusCode#

Clear sticky fault: Supply current limit occured.

Parameters:

timeout_seconds (second) – Maximum time to wait up to in seconds.

Returns:

StatusCode of the set command

Return type:

StatusCode