Configuration Registers

Each configurable feature of the controller is defined by one or a combination of configuration register values. This table summarizes the available configuration registers.

These registers are available directly using the CAN Bus interface, and the ranges are those used natively by the controller. User Interface software may present the features or ranges differently (for example, representing a value as a percentage rather than 0-255). When using external software to configure the controller, refer to the external software's documentation for the correct values and ranges.

The operational configuration of the controller is stored permanently in the controller. At powerup, this configuration is copied to a 'shadow' version which is used thereafter. The CAN Bus interface is able to access both the permanent configuration and the shadow configuration. Changes made to the shadow configuration take effect immediately, but are not retained through a power cycle. Changes made to the permanent configuration do not take effect immediately, but are retained permanently. It is up to the system designer to determine whether to make a change permanent.

Danger

Adjusting or changing the controller's configuration can cause unexpected movement of the motor and/or vehicle/system. Always secure the machine before making adjustments to the configuration.

Configuration Registers

These registers are accessed using

  • Bank 2, for shadow settings. The Modbus command address is 02xx. xx=register address
  • Bank 3, for permanent settings. The Modbus command address is 03xx. xx=register address

See System Commands for details on writing motor registers.

All values are shown in hexadecimal format, unless otherwise noted. For example, Address 0319 refers to register 0x0319. Where a specific bit within a register is addressed, it is shown as rrrr:xx, where rrrr indicates the register in hexadecimal format, and xx indicates the bit number. Example, Address 0317:05 indicates bit 5 of register 0x17.

Note

Bits that are not defined or used should be left in their current state. Always read the register and then set or clear the bits you need to change and then write the new value back to the register.

Configuration Editor

Using the Phoenix Diagnostics app is the easiest way to edit register settings. Simply click "CONFIGURATION EDITOR". Configuration Editor

There are two modes for editing, "Normal" and "Advanced" . The mode that comes up is the "Normal" mode. This mode shows settings by category and has tools to aid in selection.

Configuration Editor

To edit a specific register in the "Advanced" mode click the table icon in the upper right corner. Configuration Editor

In the "Advanced" mode you can pick a category and see all of the registers and their bit fields or values. Configuration Editor

You can also search for a register such as "032C" to edit forward speed. Any values that are grayed out are restricted from editing. Configuration Editor

Motor EEPROM (03) Registers

Here is a detailed list of common registers used to configure the controller.

Addr.
(Hex)
Parameter Format /
Range
Description
0300 Max Speed Byte
0-255
Maximum speed used by some throttle modes.
0315 Hi Motor Temp Cutoff Byte
0-255
Determines the voltage threshold of the ANALOG IN input. See Motor Temperature
0316 Hi Temp Cutoff Degrees C
+ 0x6C

0-255
Determines the temperature at which the output power decreases to zero. See Controller Temperature
0317 Config Options 3 Bitmap
0-1
Bit 5: Unidirectional Throttle Off/On. When 1, throttle causes motion in one direction only.
0318 Config
Options
Bitmap
0-1
Bit 0: 1=Beep when in reverse
Bit 1: 1=Slow Quick Stop
Bit 2: 1=Momentary contact on brake release
Bit 3: 1=Key switch must turn off-on-off to power down
Bit 4: 1=Lock enable, 0 digital throttle required before first movement
Bit 5: Reserved
Bit 6: Reserved
Bit 7: 1=QSTOP high (Invert QSTOP signal)
0319 Throttle Deadband 5V/256 ~=19.5mV
0-255
Sets the throttle pot range that the controller determines as neutral. 0=No deadband
031B Throttle Failband 5V/256 ~=19.5mV
0-255
This is an area beyond the full speed throttle voltage that disables the motor. Throttle Failband provides a safety feature to protect against throttle shorts to ground or 5V, which could lead to dangerous runaways. 255=No failband.
031D Throttle Scale
0-255
Sets the throttle scale which determines the throttle pot voltage needed for full speed, and sets the amount of throttle movement necessary to obtain full throttle.
031F Throttle
Flags
Bitmap
0-1
Bit 0: Invert Throttle. 1=Inverted throttle polarity
Bit 1: Reserved
Bit 2: Set to use ANALOG IN input as max speed
Bit 3: Reserved
Bit 4: Set to use max_spd setting in Register 0x00
Bit 5: Reserved
Bit 6: Use Digital Throttle as Max Pot
Bit 7: Reserved
0320 Motor
Flags
Bitmap
0-1
Bit 0-6: Reserved
Bit 7: Set to disable the EM Brake feature
0321 Current Lower Boundary Current
0-255
Defines the current lower limit for various current limiting features like motor temperature. The value is in 2.5A steps if using standard Phoenix controllers. For dual motor controllers it is 5A.
0322 Current Upper Boundary Current
0-255
Defines the current upper limit for various current limiting features like motor temperature. The value is in 2.5A steps if using standard Phoenix controllers. For dual motor controllers it is 5A.
0323 Config Options 4 8 Bit
0-1
Bit 0: Indoor High 1=Indoor when high. 0=Indoor when low
Bit 1: Zero throttle 0=2.5V Bidirectional 1=0V Unidirectional
Bit 2: Reverse Pin 1=Active high 0=Active low
Bit 5: In/Out current
Bit 7: Motor Therm 1=Use ANALOG IN as motor temp sensor
0327 Top State Of Charge Voltage
0-255
Defines the voltage at which state of charge is 100%. The value is in .35866V steps
0328 Undervoltage 0.35866 V
0-255
Defines the voltage at which a low voltage warning will occur.
032C Forward PWM
Scaling
Outdoor
%PWM
0-255
Forward PWM scaling value (outdoor forward speed)
032D Reverse PWM
Scaling
Outdoor
%PWM
0-255
Reverse PWM scaling value (outdoor reverse speed)
032E Forward PWM
Scaling
Indoor
%PWM
0-255
Forward PWM scaling value (indoor forward speed)
032F Reverse PWM
Scaling
Indoor
%PWM
0-255
Reverse PWM scaling value (indoor reverse speed)
0335 EM Brake
Time
Time
Constant
0-255
Brake delay
0336 Forward
Acceleration
(Outdoor)
Time
Constant
0-255
Forward acceleration constant. The higher the number the longer the time. The formula to convert to seconds is 40.8/(255-x), so a value of 0xD8 results in a PWM ramp of about 1 second.
0337 Forward
Deceleration
(Outdoor)
Time
Constant
0-255
Forward deceleration constant. The higher the number the longer the time.
0338 Forward
Deceleration
(Outdoor)
Time
Constant
0-255
Forward deceleration constant. The higher the number the longer the time.
0339 Reverse
Acceleration
(Outdoor)
Time
Constant
0-255
Reverse acceleration constant. The higher the number the longer the time.
033A Reverse
Deceleration
(Outdoor)
Time
Constant
0-255
Reverse deceleration constant. The higher the number the longer the time.
033B Reverse
Deceleration
(Outdoor)
Time
Constant
0-255
Reverse deceleration constant. The higher the number the longer the time.
033C Forward
Acceleration
(Indoor)
Time
Constant
0-255
Forward acceleration constant. The higher the number the longer the time.
033D Forward
Deceleration
(Indoor)
Time
Constant
0-255
Forward deceleration constant. The higher the number the longer the time.
033E Forward
Deceleration
(Indoor)
Time
Constant
0-255
Forward deceleration constant. The higher the number the longer the time.
033F Reverse
Acceleration
(Indoor)
Time
Constant
0-255
Reverse acceleration constant. The higher the number the longer the time.
0340 Reverse
Deceleration
(Indoor)
Time
Constant
0-255
Reverse deceleration constant. The higher the number the longer the time.
0341 Reverse
Deceleration
(Indoor)
Time
Constant
0-255
Reverse deceleration constant. The higher the number the longer the time. >
034D Configuration
Flags
Bitmap Bit 3: Clear to disable power-on diagnostics.
034E Over Current Timeout Current
0-255
Defines the time before action is taken if an amperage boundary is exceeded. The value is in 5A steps if using standard Phoenix controllers. For dual motor controllers it is 2.5A.
0353 Digital Control Bitmap
0-1
Bit 0: Reserved (set to 0)
Bit 2: Trigger a fault if throttle is not in neutral position at startup
Bit 3: Trigger a fault on Quickstop (require keyswitch to clear)
Bit 4-7: Reserved (set to 0)
0357 Options 6 Bitmap
0-1
Bit 0: Enable digital control (buttons)
Bit 1: Disable THROTTLE POT CENTER (analog) throttle
Bit 2: Enable Digital Throttle
Bit 3: Invert digital throttle (when set, 0xFF throttle means slow, 0 throttle = fast)
Bits 4-7: Reserved
035B Severe Undervoltage 0.35866V
0-255
Defines the low voltage threshold. If the input voltage remains below this value for a period of time, the controller will power off. Note that the controller will not power on unless the input voltage is at least as high as indicated by this setting.
035C IN1 Type Bitmap
Enum
Switch 1 usage, set upper nibble to '1' to enable ANALOG IN as a temperature 'stop' signal for external motor temperature sensing
035D IN23 Type Bitmap set upper nibble to 'A' to enable 'in2' as a seat stop input. Otherwise, set to 0
035E Config Options 9 Bitmap
0-1
Bit 2: in2_invert 0 = seat occupied when DIGITAL INPUT 2 = 1, 1 = occupied when DIGITAL INPUT 2 = 0.
035F Throttle Offset 5V/256 ~=19.5mV
-128
- 127
Sets the throttle offset for bidirectional throttles so that the center voltage is offset higher or lower than 2.5V.
0386 Config Options 8 Bitmap
0-1
Bit 5: Aggressive temperature cutback. When set, the controller will begin cutting back power at 32 degrees below the temperature limit, rather than 8 degrees C.
0387 High Voltage Limit Voltage
0-255
Limit where battery voltage is too high to operate. The value is in .35866V steps
0388 Motor Type Bitmap Bit 0-2: Number of motor pole-pairs
Bit 4-5: Sensor geometry:
0: Type 1
1: Type 1A
2: Type 2
3: Type 2A
Bit 6: If true, swaps sensors A and C
Bit 7: sent if sensors are normally low
038A
0x038B
Max RPM
16-bit
Little Endian
0- 32767 BLDC Prior to V1.7.1
Bit 15: Enable Speed Limit.
Bits 0-14: Speed limit in RPM.
If enabled, this feature cuts back motor power to keep BLDC motor RPM below the indicated value. Zero=No speed limit.
BLDC As of V1.7.1 This value is the target RPM only. Use RPM Config Register to define the operation.
038C RPM Config Bitmap BLDC as of V1.7.1
Brushed as of 1.7.8
BITS 3:0
0: No Speed Loop or Speed Limit
1: Speed loop (speed loop enabled if target RPM != 0)
2: Speed Limit - single limit (specified in Addr 0x8B-8A)
3: Speed Limit - auto-capture (will transition back to 2 after capture)
4: Throttle re-scaling during speed limit. 0: disabled 1: enabled (uses max_spd)
BITS 5:7 Reserved
038F Current Limit Config Bitmap Bit 7: Enable current limiting
Bit 6: Current time Units (0 = seconds, 1 = minutes)
Bit 5: Adjust Current Limit Threshold for FET temperature (0 = disabled, 1 = enabled)
Bit 4: Adjust Current Measurement for FET temperature (0 = disabled, 1 = enabled)
Bit 0-3: Mode (See Motor Current Limiting)
0 = Step Mode 0
1 = Step Mode 1
2 = StepMode 2
3 = External Motor Temperature
4 = Incremental Mode 0
5 = Incremental Mode 1
6 = Incremental Mode 2
7 = Incremental Mode 3
8-13 = Reserved
14 = Step Stop Mode
15 = In/Out Mode
0392 GPIO
Config 2
Bitmap Normally 0, set upper nibble to '1' to enable ANALOG IN input as a temperature 'stop' signal
039B ANALOG IN Temperature Offset Byte
0-255
This value represents the ANALOG IN voltage if the temperature were 0 degrees C. The Range of offset is (0.625 - 1.92V)
039C ANALOG IN Temperature Gain Byte
0-255
ANALOG IN scaling factor(bits6:0). Bit 7: 0=positive volt/temp, 1=negative volt/temp

CAN Bus EEPROM (04) Registers

Here is a detailed list of registers used to configure the CAN bus operation.

Address
(Hex)
Parameter Range Description
0400 CAN Bus ID Low 0-255 Lowest allowed ID. If ID is set lower than this value the ID will be coerced to this value.
0401 CAN Bus ID High 0-255 Highest allowed ID. If ID is set higher than this value the ID will be coerced to this value.
0402 CAN ID 0-255 CAN Bus ID
0403-040A Reserved 0-255 Do not modify.
040B CAN Baud 0-3 CAN Bus Baud Rate
0=125K
1=250K
2=500K
3=1Meg
040C CAN Bus Priority 0-7 CAN Bus Message Priority
040D-040E Reserved 0-255 Do not modify.
040F Digital Control
Low Byte
Motor #1
0-255 Digital Control Options (LSB)
Bit 0-3: Reserved
Bit 4: 0=Disable digital control 1=Enable digital control
Bit 5: 1=Digital Stop (Quick Stop) on comm loss
Bit 6: 1=Set digital throttle to 0 on comm loss.
Bit 7: 1=Turn off digital brake on comm loss.
0410 Digital Control
High Byte
Motor #1
0-255 Digital Control Options (MSB)
Bit 0: 1=If digital (0x50) commands are sent and register 0x0357 is not set for digital control that feature is temporarily enabled as long as 0x50 commands are being received. This is for use if both analog and digital (CAN Bus) throttle are used. NOTE: Digital throttle will override the analog throttle but as soon as commands stop the analog throttle resumes control
Bit 1: 1=Turn off digital horn on comm loss.
Bit 4: 1=Echo digital throttle (0x50) commands back to host.
0411 Status Message Enable 0-255 Each bit that is set enables the corresponding status message. Example: bit 2 enables the FF02 status message.
0412-0425 Timers 0-19 .05-2.55
seconds
Sets various timers in units of 10 milliseconds. NOTE: setting a timer to 0xFF causes it to reset to the factory default after the next power cycle. See Timer Configuration for more info.
Timer 0: FF00 Status Rate
Timer 1: FF01 Status Rate
Timer 2: FF02 Status Rate
Timer 3: FF03 Status Rate
Timer 4: FF04 Status Rate
Timer 5: FF05 Status Rate
Timer 6: FF06 Status Rate
Timer 7: FF07 Status Rate
Timers 8-13: Reserved
Timer 14: Motor 1 digital throttle timeout
Timer 15: CAN Bus Alarm timeout
Timer 16: Reserved
Timer 17: Motor 2 digital throttle timeout
Timers 18-19: Reserved
0426-0428 Reserved 0-255 Do not modify.
0429 Digital Control
Low Byte
Motor #2
0-255 Digital Control Options (LSB)
Bit 0-3: Reserved
Bit 4: 0=Disable digital control 1=Enable digital control
Bit 5: 1=Digital Stop (Quick Stop) on comm loss
Bit 6: 1=Set digital throttle to 0 on comm loss.
Bit 7: 1=Turn off digital brake on comm loss.
042A Digital Control
High Byte
Motor #2
0-255 Digital Control Options (MSB)
Bit 0: 1=If digital (0x50) commands are sent and register 0x0357 is not set for digital control that feature is temporarily enabled as long as 0x50 commands are being received. This is for use if both analog and digital (CAN Bus) throttle are used. NOTE: Digital throttle will override the analog throttle but as soon as commands stop the analog throttle resumes control
Bit 1: 1=Turn off digital horn on comm loss.
Bit 4: 1=Echo digital throttle (0x50) commands back to host.
042B-044A Reserved 0-255 Custom Status (Version 4.5.0 and above). See Custom Status Configuration for more info.
044B Reserved 0-255 Bootloader Version MAJOR
Version 4.5.0 and above
044C Reserved 0-255 Bootloader Version MINOR
Version 4.5.0 and above
044D Reserved 0-255 Bootloader Version PATCH
Version 4.5.0 and above
044E Reserved 0-255 CAN Bus Processor Version MAJOR
Version 4.5.0 and above
044F Reserved 0-255 CAN Bus Processor Version MINOR
Version 4.5.0 and above
0450 Reserved 0-255 CAN Bus Processor Version PATCH
Version 4.5.0 and above