Settings
VESC Tool Sources
Packages
VESC Tool parameter helper illustration

VESC Tool Parameters

Most VESC Tool users are not exactly in love with hunting through the app for one setting. This page pulls the help text from VESC Tool and common packages into one searchable table, shows where each parameter lives in the menus, and makes filtered views easy to share.

Search for a parameter, choose the VESC Tool and package versions you are using, and jump straight to the setting you want to understand or tweak.

Enjoy,
Jeroen, SUPzero.ch

MenuNameMinMaxDefaultSuffixDescription
App Cfg ▸ ADC ▸ GeneralButton Inputs
app_adc_conf.buttons
Enable Cruise ControlA cruise control and a reverse button can be used with the ADC app. The reverse button is only used on the control modes that have button in their name, but cruise control can be used on all control modes when enabled. The buttons can be connected as follows:

Comm TX: Cruise Control
Comm RX: Reverse

If the UART app is active the PPM-input is used for the button instead. That means you only have one button, which will be the reverse button for the button-modes (not cruise control available) or cruise control for non-button control modes.

By default the button inputs have a pull-up resistor and are active low.

Enable Cruise Control
Enable cruise control button input.

Invert CC Button
Invert the polarity of the cruise control button.

Invert Reverse Button
Invert the polarity of the reverse button.
App Cfg ▸ ADC ▸ GeneralControl Type
app_adc_conf.ctrl_type
Current No Reverse Brake ADC2Off
The output is switched off regardless of the input.

Current
Current control. The output is off when the input is at minimum.

Current Reverse Center
Current control. The output is off when the input is centered. Input less than center brakes until the motor stops, at which point it it starts in the reverse direction.

Current Reverse Button
Current control with a button for reversing the throttle. The output is off when the input is at minimum.

Current Reverse ADC2 Brake Button
Current control with a button for reversing the throttle. The output is off when the input is at minimum. The second ADC channel acts as a brake.

Current Reverse Button Brake Center
Current control with a button for reversing throttle. The output is off when the input is centered. Input less than center brakes until the motor stops, but not further.

Current No Reverse Brake Center
Current control. The output is off when the input is centered. Input less than center brakes until the motor stops, but not further.

Current No Reverse Brake Button
Current control with a button for turning the throttle into a brake. The output is off when the input is at minimum.

Current No Reverse Brake ADC2
Current control with one separate throttle connected to ADC2 for braking.

Duty Cycle
Duty cycle control. The output is off when the input is at minimum.

Duty Cycle Reverse Center
Current control. The output is off when the input is centered. Input less than center gives negative duty cycle.

Duty Cycle Reverse Button
Duty cycle control with a button on UART RX for inverting the throttle. The output is off when the input is at minimum.

PID Speed
PID speed control. The speed setpoint is mapped between 0 and the configured maximum motor speed limit.

PID Speed Reverse Center
PID speed control. The output is mapped between the minimum and maximum motor speed limits. Throttle center corresponds to 0 speed.

PID Speed Reverse Button
PID speed control with a button for reversing the throttle. The speed setpoint is mapped between 0 and the configured maximum motor speed limit, or between 0 and the minimum motor speed limit when the UART RX input is high.
App Cfg ▸ ADC ▸ MappingInput Deadband
app_adc_conf.hyst
010.05 %Deadband region for the input.
App Cfg ▸ ADC ▸ General ▸ Multiple VESCs over CAN-busMultiple VESCs Over CAN
app_adc_conf.multi_esc
1Listen for other VESCs on the CAN-bus and send the same control commands to them. Notice that the application only has to be set up on the master VESC.
App Cfg ▸ ADC ▸ GeneralNegative Ramping Time
app_adc_conf.ramp_time_neg
010000.1 sNegative ramping time constant. This filters the input with ramping. This constant represents the amount of secods it takes to ramp from full output (acceleration or braking) back to zero.
App Cfg ▸ ADC ▸ GeneralPositive Ramping Time
app_adc_conf.ramp_time_pos
010000.3 sPositive ramping time constant. This filters the input with ramping. This constant represents the amount of secods it takes to ramp from zero to full output.
App Cfg ▸ ADC ▸ GeneralSafe Start
app_adc_conf.safe_start
RegularPrevent motor from starting in some unsafe conditions. Modes:

Disabled
Motor can always start.

Regular
Only allow starting the motor when the input has beed zero for long enough after boot, after configuration updates and after faults.

No Faults
Same as regular, but the motor can start directly after fault codes are cleared.
App Cfg ▸ ADC ▸ General ▸ Multiple VESCs over CAN-busTraction Control
app_adc_conf.tc
0Enable traction control between multiple VESCs connected over CAN-bus. This is only is only used for current control modes.
App Cfg ▸ ADC ▸ General ▸ Multiple VESCs over CAN-busTC Max ERPM Difference
app_adc_conf.tc_max_diff
01000003000The ERPM difference at which the fastest motor gets swtiched off completely. If the difference in ERPM is lower than that the current to faster motors is scaled down proportionally to the difference.
App Cfg ▸ ADC ▸ Throttle CurveThrottle Expo
app_adc_conf.throttle_exp
-55-0.5Exponential gain for the throttle.

Zero (0)
Linear throttle

Negative (<0)
The throttle is softer close to 0 and increases exponentially towards full throttle.

Positive (>0)
The throttle reacts fast around 0 and decreases exponentially towards full throttle.

Increasing the magnitude of this value will increase the exponential effect. The full throttle curve can be seen in the throttle curve plot.
App Cfg ▸ ADC ▸ Throttle CurveThrottle Expo Brake
app_adc_conf.throttle_exp_brake
-550Exponential gain for the throttle.

Zero (0)
Linear throttle

Negative (<0)
The throttle is softer close to 0 and increases exponentially towards full throttle.

Positive (>0)
The throttle reacts fast around 0 and decreases exponentially towards full throttle.

Increasing the magnitude of this value will increase the exponential effect. The full throttle curve can be seen in the throttle curve plot.
App Cfg ▸ ADC ▸ Throttle CurveThrottle Expo Mode
app_adc_conf.throttle_exp_mode
PolynomialThe throttle curve mode.

Exponential
y = x^(1 + c)

Natural
y = (e^(cx) - 1) / (e^c - 1)

Polynomial
y = x / (1 + c(1 - x))

where

y: output
x: input
c: curve

The curve parameter, offsets and signs are mapped accordingly for each mode.
App Cfg ▸ ADC ▸ GeneralUpdate Rate
app_adc_conf.update_rate_hz
0100000500 HzRate at which the input is sampled.
App Cfg ▸ ADC ▸ GeneralUse Filter
app_adc_conf.use_filter
1Use a low-pass filter to reject noise. This will introduce a slight delay.
App Cfg ▸ ADC ▸ Mapping ▸ ADC 2ADC2 End Voltage
app_adc_conf.voltage2_end
03.32 VInput voltage at the end of the throttle range for ADC2. Can be checked by enabling display and giving the maximum input. If Control Type is set to off while doing that the motor won't turn.
App Cfg ▸ ADC ▸ Mapping ▸ ADC 2Invert ADC2 Voltage
app_adc_conf.voltage2_inverted
1Invert the voltage from ADC2.
App Cfg ▸ ADC ▸ Mapping ▸ ADC 2ADC2 Start Voltage
app_adc_conf.voltage2_start
03.30 VInput voltage at the start of the throttle range for ADC2. Can be checked by enabling display and giving the minimum input. If Control Type is set to off while doing that the motor won't turn.
App Cfg ▸ ADC ▸ Mapping ▸ ADC 1ADC1 Center Voltage
app_adc_conf.voltage_center
03.30.6 VInput voltage at the center of the throttle range for ADC1. Can be checked by enabling display and centering the input. If Control Type is set to off while doing that the motor won't turn.

Notice that this parameter only is used for the contered control types. For the other types the voltage will always be mapped linearly between start and end.
App Cfg ▸ ADC ▸ Mapping ▸ ADC 1ADC1 End Voltage
app_adc_conf.voltage_end
03.32.54 VInput voltage at the end of the throttle range for ADC1. Can be checked by enabling display and giving the maximum input. If Control Type is set to off while doing that the motor won't turn.
App Cfg ▸ ADC ▸ Mapping ▸ ADC 1Invert ADC1 Voltage
app_adc_conf.voltage_inverted
0Invert the voltage from ADC1.
App Cfg ▸ ADC ▸ Mapping ▸ ADC 1ADC1 Abs Max Voltage
app_adc_conf.voltage_max
03.63.6 VMaximum valid voltage on ADC1. If the voltage is above this value the motor will be stopped and if safe start is activated the throttle must be returned to 0 before the motor is allowed to run again.
App Cfg ▸ ADC ▸ Mapping ▸ ADC 1ADC1 Abs Min Voltage
app_adc_conf.voltage_min
03.30 VMinimum valid voltage on ADC1. If the voltage is below this value the motor will be stopped and if safe start is activated the throttle must be returned to 0 before the motor is allowed to run again.
App Cfg ▸ ADC ▸ Mapping ▸ ADC 1ADC1 Start Voltage
app_adc_conf.voltage_start
03.30.6 VInput voltage at the start of the throttle range for ADC1. Can be checked by enabling display and giving the minimum input. If Control Type is set to off while doing that the motor won't turn.
App Cfg ▸ VESC Remote ▸ General ▸ Coasting BrakeCoasting Brake Level
app_chuk_conf.coast_brake_level
010Coasting brake level. Brake with this fraction of the braking current when the throttle is released.
App Cfg ▸ VESC Remote ▸ General ▸ Coasting BrakeCoasting Brake Ramp Time
app_chuk_conf.coast_brake_ramp_time
01001 sTime to ramp to maximum coasting brake when releasing the throttle.
App Cfg ▸ VESC Remote ▸ GeneralControl Type
app_chuk_conf.ctrl_type
CurrentOff
The output is switched off regardless of the input.

Current
Current control. The output is off when the joystick is centered. Positive input gives acceleration and negative input braking. To go reverse the Z button can be used to toggle direction.

Current No Reverse
Current control. The output is off when the joystick is centered. Positive input gives acceleration and negative input braking. The reverse function of the Z button is disabled.

Current Bidirectional
Current control. The output is off when the joystick is centered. Positive input always gives forward current and negative current always gives reverse current. This means that when current is applied through 0 speed, the motor will accelerate in the other direction.
App Cfg ▸ VESC Remote ▸ GeneralInput Deadband
app_chuk_conf.hyst
010.15 %Deadband region for the input.
App Cfg ▸ VESC Remote ▸ General ▸ Multiple ESCs over CAN-busMultiple VESCs Over CAN
app_chuk_conf.multi_esc
1Listen for other VESCs on the CAN-bus and send the same control commands to them. Notice that the application only has to be set up on the master VESC.
App Cfg ▸ VESC Remote ▸ GeneralNegative Ramping Time
app_chuk_conf.ramp_time_neg
010000.2 sNegative ramping time constant. This filters the joystick input with ramping. This constant represents the amount of secods it takes to ramp from full output (acceleration or braking) back to zero.
App Cfg ▸ VESC Remote ▸ GeneralPositive Ramping Time
app_chuk_conf.ramp_time_pos
010000.4 sPositive ramping time constant. This filters the joystick input with ramping. This constant represents the amount of secods it takes to ramp from zero to full output.
App Cfg ▸ VESC Remote ▸ General ▸ Smart ReverseSmart Reverse Max Duty Cycle
app_chuk_conf.smart_rev_max_duty
010.07Maximum duty cycle to use in smart reverse mode.
App Cfg ▸ VESC Remote ▸ General ▸ Smart ReverseSmart Reverse Ramp Time
app_chuk_conf.smart_rev_ramp_time
01003 sTime to ramp to maximum duty cycle in smart reverse mode.
App Cfg ▸ VESC Remote ▸ GeneralERPM Per Second Cruise Control
app_chuk_conf.stick_erpm_per_s_in_cc
01e+063000The amount of ERPM per second the setpoint changes when giving full joystick input with criuse control activated.
App Cfg ▸ VESC Remote ▸ General ▸ Multiple ESCs over CAN-busTraction Control
app_chuk_conf.tc
0Enable traction control between multiple VESCs connected over CAN-bus. This is only is only used for current control modes.
App Cfg ▸ VESC Remote ▸ General ▸ Multiple ESCs over CAN-busTC Max ERPM Difference
app_chuk_conf.tc_max_diff
01000003000The ERPM difference at which the fastest motor gets swtiched off completely. If the difference in ERPM is lower than that the current to faster motors is scaled down proportionally to the difference.
App Cfg ▸ VESC Remote ▸ Throttle CurveThrottle Expo
app_chuk_conf.throttle_exp
-550Exponential gain for the throttle.

Zero (0)
Linear throttle

Negative (<0)
The throttle is softer close to 0 and increases exponentially towards full throttle.

Positive (>0)
The throttle reacts fast around 0 and decreases exponentially towards full throttle.

Increasing the magnitude of this value will increase the exponential effect. The full throttle curve can be seen in the throttle curve plot.
App Cfg ▸ VESC Remote ▸ Throttle CurveThrottle Expo Brake
app_chuk_conf.throttle_exp_brake
-550Exponential gain for the throttle.

Zero (0)
Linear throttle

Negative (<0)
The throttle is softer close to 0 and increases exponentially towards full throttle.

Positive (>0)
The throttle reacts fast around 0 and decreases exponentially towards full throttle.

Increasing the magnitude of this value will increase the exponential effect. The full throttle curve can be seen in the throttle curve plot.
App Cfg ▸ VESC Remote ▸ Throttle CurveThrottle Expo Mode
app_chuk_conf.throttle_exp_mode
PolynomialThe throttle curve mode.

Exponential
y = x^(1 + c)

Natural
y = (e^(cx) - 1) / (e^c - 1)

Polynomial
y = x / (1 + c(1 - x))

where

y: output
x: input
c: curve

The curve parameter, offsets and signs are mapped accordingly for each mode.
App Cfg ▸ VESC Remote ▸ General ▸ Smart ReverseUse Smart Reverse
app_chuk_conf.use_smart_rev
1Use smart reverse function. If enabled, holding full brake will switch to duty cycle mode in the reverse direction when the speed is so low that not enough brake torque can be produced.

This is useful when trying to stop downhill where you normally would roll forwards slowly even at full brake. Instead, the board will start to go reverse slowly in duty cycle mode if this mode is activated.
App Cfg ▸ NRF ▸ General ▸ AddressAddress 0
app_nrf_conf.address__0
0255198Address byte 0.
App Cfg ▸ NRF ▸ General ▸ AddressAddress 1
app_nrf_conf.address__1
0255199Address byte 1.
App Cfg ▸ NRF ▸ General ▸ AddressAddress 2
app_nrf_conf.address__2
02550Address byte 2.
App Cfg ▸ NRF ▸ General ▸ RadioRadio Channel
app_nrf_conf.channel
012576Radio channel.
App Cfg ▸ NRF ▸ General ▸ IntegrityCRC
app_nrf_conf.crc_type
1 ByteCRC checksum type.
App Cfg ▸ NRF ▸ General ▸ RadioTX Power
app_nrf_conf.power
0 dBmTransmit power or power off setting.
App Cfg ▸ NRF ▸ General ▸ IntegrityRetries
app_nrf_conf.retries
0153Maximum number of retries when no ack is received before giving up on the current packet.
App Cfg ▸ NRF ▸ General ▸ IntegrityRetry Delay
app_nrf_conf.retry_delay
250 µSDelay between retries when no ack is received. If the speed is lower than 2MBit, at least 500 µS should be used.
App Cfg ▸ NRF ▸ General ▸ IntegritySend ACK
app_nrf_conf.send_crc_ack
1Send ACK when valid packets are received.
App Cfg ▸ NRF ▸ General ▸ RadioSpeed
app_nrf_conf.speed
1 MBit/sThe air bit rate.
App Cfg ▸ PAS ▸ GeneralControl Type
app_pas_conf.ctrl_type
CadenceOff
The output is switched off regardless of the input.

Cadence
Cadence control. The output is proportional to the pedalling speed, off when there is no pedalling.

Constant Torque
Constant Torque control. Pedalling provides constant output, off when no pedalling. Suited for gearless setup.
App Cfg ▸ PAS ▸ GeneralPAS Max Current
app_pas_conf.current_scaling
010.08Maximum PAS output current will be limited to this percentage of the global output current.
App Cfg ▸ PAS ▸ GeneralInvert Pedal Direction
app_pas_conf.invert_pedal_direction
0Inverts pedal direction
App Cfg ▸ PAS ▸ GeneralSensor Magnets
app_pas_conf.magnets
612824How many magnets the PAS sensor assembly has. 24 magnets would provide 24 pulses per pedal revolution.
12 and 24 magnet setups are typical.
App Cfg ▸ PAS ▸ GeneralPedal RPM End
app_pas_conf.pedal_rpm_end
1300120Pedal RPM at which the assist stops increasing. Above this pedal speed the assist output will stay at its maximum.
App Cfg ▸ PAS ▸ GeneralPedal RPM Start
app_pas_conf.pedal_rpm_start
120010Pedal RPM at which the assist starts. Below this value the output current is zero.
App Cfg ▸ PAS ▸ GeneralNegative Ramping Time
app_pas_conf.ramp_time_neg
0.250.2 sNegative ramping time constant. This filters the PAS input with ramping and represents the amount of secods it takes to ramp from full to zero output.
App Cfg ▸ PAS ▸ GeneralPositive Ramping Time
app_pas_conf.ramp_time_pos
0.250.3 sPositive ramping time constant. This filters the PAS input with ramping and represents the amount of secods it takes to ramp from zero to full output.
App Cfg ▸ PAS ▸ GeneralSensor Type
app_pas_conf.sensor_type
QQuadrature
This interface provides 2 signals that can be decoded to know the pedalling direction (forward of backwards).
App Cfg ▸ PAS ▸ GeneralUpdate Rate
app_pas_conf.update_rate_hz
101000500 HzFrequency at which the PAS control loop is executed
App Cfg ▸ PAS ▸ GeneralUse Filter
app_pas_conf.use_filter
1Use a low pass filter in the PAS input signal
App Cfg ▸ PPM ▸ GeneralControl Type
app_ppm_conf.ctrl_type
OffOff
The output is switched off regardless of the input.

Current
Current control. The output is off when the input is centered. Input less than center brakes until the motor stops, at which point it starts in the reverse direction.

Current No Reverse
Current control. The output is off when the input is at minimum.

Current No Reverse With Brake
Current control. The output is off when the input is centered. Input less than center brakes until the motor stops, but not further.

Duty Cycle
Current control. The output is off when the input is centered. Input less than center gives negative duty cycle.

Duty Cycle No Reverse
Duty cycle control. The output is off when the input is at minimum.

PID Speed Control
PID speed control. The output is off when the input is centered. Input less than center gives negative set speed.

PID Speed Control No Reverse
Duty cycle control. The output is off when the input is at minimum.

Current Hyst Reverse With Brake
Current Hyst Reverse With Brake. The output is off when the input is centered. Input less than center brakes until the motor stops, at which point it starts in the reverse direction, but if Max dir switch ERPM is enabled it will stop the reverse when it reaches the Max ERPM for direction switch.

Current Smart Reverse
Similar to the Current No Reverse With Brake mode, but holding full brake will switch to duty cycle mode in the reverse direction when the speed is so low that not enough brake torque can be produced. This is useful when trying to stop downhill where you normally would roll forwards slowly even at full brake. Instead, the board will start to go reverse slowly in duty cycle mode if this mode is activated.


PID Position Control: 180°
Maps servo input to (-180° <> +180°) rotation. Remote should center at “Pulselegth Center” value.
Motor will rotate ±180° from the starting position.

PID Position Control: 360°Maps servo input to (+0 <> +360°) rotation. Remote should center at “Pulselegth Start” value.Motor will rotate up to +360° from the starting position. It will only rotate in the "positive" direction from the starting position.
PID Position Control notes:Servo like position control of motor. Works best with an encoder, but can work with HFI.
Angle division:
To get multiple turns of the motor for full stick movement, adjust: “Motor Settings” -> “PID Controllers” -> “Position Angle Division” to greater than 1.
For setups with angle division > 1, you will need to “home” your motor manually to the right “zero” rotation before power on.
To get less than 1 full turn, set “Position Angle Division” to less than 1.
Starting position:
To adjust the starting position of the motor, adjust: “Motor Settings” -> “PID Controllers” -> “Position PID Offset Angle”.
This will change the zero angle AFTER the angle division has been applied. To change the angle by 90° with an angle division of 2, this should be 45°.
Safe Start:
Safe start still works with PID Position Control, with an additional safety step.
To start the motor with Safe Start, you must:
Set ppm to your “center” value:
“Pulselegth Center” for 180 mode.
“Pulselegth Start” for 360 mode.
Note: disabling "Safe Start" will eliminate this step but not the second step.
Bring your commanded angle close to the actual motor angle.
This can be done by sweeping the stick the full range until the motor starts tracking.
This is done to prevent a rapid movement at start to a far off commanded pid angle.
App Cfg ▸ PPM ▸ MappingInput Deadband
app_ppm_conf.hyst
010.15 %Deadband region for the input.
App Cfg ▸ PPM ▸ GeneralMax ERPM for direction switch
app_ppm_conf.max_erpm_for_dir
0300004000The Max ERPM where the direction can be switched to reverse by braking 2 times.
App Cfg ▸ PPM ▸ GeneralMedian Filter
app_ppm_conf.median_filter
1Use a median filter on the decoded pulses. Will delay the signal slightly, but rejects outliers caused by noise.
App Cfg ▸ PPM ▸ General ▸ Multiple VESCs over CANMultiple VESCs Over CAN
app_ppm_conf.multi_esc
1Listen for other VESCs on the CAN-bus and send the same control commands to them. Notice that the application only has to be set up on the master VESC.
App Cfg ▸ PPM ▸ GeneralPID Max ERPM
app_ppm_conf.pid_max_erpm
01e+0615000The ERPM setpoint corresponding to max input when using PID Speed Control.
App Cfg ▸ PPM ▸ MappingPulselength Center
app_ppm_conf.pulse_center
01001.5 msThe PPM input in milliseconds at which the throttle is centered. Can be checked by enabling display and leaving the throttle centered. This setting has no effect in control modes where the output is not off when the stick is centered.
App Cfg ▸ PPM ▸ MappingPulselength End
app_ppm_conf.pulse_end
01002 msThe longest pulse length for the PPM input in milliseconds. Can be checked by enabling display and giving the maximum input.
App Cfg ▸ PPM ▸ MappingPulselength Start
app_ppm_conf.pulse_start
01001 msThe shortest pulse length for the PPM input in milliseconds. Can be checked by enabling display and giving the minimum input.
App Cfg ▸ PPM ▸ GeneralNegative Ramping Time
app_ppm_conf.ramp_time_neg
010000.2 sNegative ramping time constant. This filters the input with ramping. This constant represents the amount of secods it takes to ramp from full output (acceleration or braking) back to zero.
App Cfg ▸ PPM ▸ GeneralPositive Ramping Time
app_ppm_conf.ramp_time_pos
010000.4 sPositive ramping time constant. This filters the input with ramping. This constant represents the amount of secods it takes to ramp from zero to full output.
App Cfg ▸ PPM ▸ GeneralSafe Start
app_ppm_conf.safe_start
RegularPrevent motor from starting in some unsafe conditions. Modes:

Disabled
Motor can always start.

Regular
Only allow starting the motor when the input has beed zero for long enough after boot, after configuration updates and after faults.

No Faults
Same as regular, but the motor can start directly after fault codes are cleared.
App Cfg ▸ PPM ▸ GeneralSmart Reverse Max Duty Cycle
app_ppm_conf.smart_rev_max_duty
010.07Maximum duty cycle to use in smart reverse mode.
App Cfg ▸ PPM ▸ GeneralSmart Reverse Ramp Time
app_ppm_conf.smart_rev_ramp_time
01003 sTime to ramp to maximum duty cycle in smart reverse mode.
App Cfg ▸ PPM ▸ General ▸ Multiple VESCs over CANTraction Control
app_ppm_conf.tc
0Enable traction control between multiple VESCs connected over CAN-bus. This is only used for current control modes.
App Cfg ▸ PPM ▸ General ▸ Multiple VESCs over CANTC Max ERPM Difference
app_ppm_conf.tc_max_diff
01000003000The ERPM difference at which the fastest motor gets swtiched off completely. If the difference in ERPM is lower than that the current to faster motors is scaled down proportionally to the difference.
App Cfg ▸ PPM ▸ Throttle CurveThrottle Expo
app_ppm_conf.throttle_exp
-550Exponential gain for the throttle.

Zero (0)
Linear throttle

Negative (<0)
The throttle is softer close to 0 and increases exponentially towards full throttle.

Positive (>0)
The throttle reacts fast around 0 and decreases exponentially towards full throttle.

Increasing the magnitude of this value will increase the exponential effect. The full throttle curve can be seen in the throttle curve plot.
App Cfg ▸ PPM ▸ Throttle CurveThrottle Expo Brake
app_ppm_conf.throttle_exp_brake
-550Exponential gain for the throttle.

Zero (0)
Linear throttle

Negative (<0)
The throttle is softer close to 0 and increases exponentially towards full throttle.

Positive (>0)
The throttle reacts fast around 0 and decreases exponentially towards full throttle.

Increasing the magnitude of this value will increase the exponential effect. The full throttle curve can be seen in the throttle curve plot.
App Cfg ▸ PPM ▸ Throttle CurveThrottle Expo Mode
app_ppm_conf.throttle_exp_mode
PolynomialThe throttle curve mode.

Exponential
y = x^(1 + c)

Natural
y = (e^(cx) - 1) / (e^c - 1)

Polynomial
y = x / (1 + c(1 - x))

where

y: output
x: input
c: curve

The curve parameter, offsets and signs are mapped accordingly for each mode.
App Cfg ▸ General ▸ GeneralAPP to Use
app_to_use
UARTThe APP to use. With multiple VESC connected over CAN only the master needs to have an app to use set up. Notice that using the NRF nunchuk needs the NRF app.
App Cfg ▸ UART ▸ GeneralBaudrate
app_uart_baudrate
020000000115200 bpsUART Baudrate.
Refloat Cfg ▸ General ▸ ATR ▸ AdvancedAmps to Acceleration Ratio
atr_amps_accel_ratio
5309Determines how to effectively calculate Expected Acceleration from amps. Higher values mean weaker response (lower Expected Acceleration).

*NOTE: NOT MEANT TO BE MESSED WITH! This value should be kept constant and not taken advantage of for tuning, as it is meant to be used to account for motor efficiency, not weight or other factors.

Recommended Hypercore Motor Value: 9

Recommended Values: 8-18
Refloat Cfg ▸ General ▸ ATR ▸ AdvancedAmps to Deceleration Ratio
atr_amps_decel_ratio
4308Determines how to effectively calculate Expected Deceleration (Braking) from amps. Higher values mean weaker response (lower Expected Deceleration).

*NOTE: NOT MEANT TO BE MESSED WITH! This value should be kept constant and not taken advantage of for tuning, as it is meant to be used to account for motor efficiency, not weight or other factors.

Recommended Hypercore Motor Value: 8

Recommended Values: 6-18
Refloat Cfg ▸ General ▸ ATR ▸ Nose AnglingTiltback Angle Limit
atr_angle_limit
0308 °Maximum angle to which ATR is permitted to tilt.
Refloat Cfg ▸ General ▸ ATR ▸ AdvancedCurrent Filter
atr_filter
0205 HzBiquad Low-pass Filter on the current used for calculating ATR. Setting a lower value here helps smooth out spikes in the current, and prevents ATR from being twitchy. Setting a high value here improves responsiveness, but can lead to overreacting ATR during normal acceleration.
Refloat Cfg ▸ General ▸ ATR ▸ Nose AnglingMax Tiltback Release Speed
atr_off_speed
01008 °/sMax Rate at which ATR will release from the desired angle back to 0.
Refloat Cfg ▸ General ▸ ATR ▸ Nose AnglingMax Tiltback Speed
atr_on_speed
010010 °/sMax Rate at which ATR will tilt to the desired angle.
Refloat Cfg ▸ General ▸ ATR ▸ Nose AnglingTiltback Response Boost
atr_response_boost
121.5xReact more quickly to ATR responses when at high speeds. When you're riding fast and ATR increases, then you also want it to respond faster. Boost is applied twice: at 2500 and 6000 ERPM.

*Note: ERPM = RPM * (Motor Poles / 2)For an 11" Tire on a Hypercore Motor (30 Poles):
2500 ERPM ≈ 5.5 mph ≈ 9 km/h
6000 ERPM ≈ 13 mph ≈ 21 km/h
Refloat Cfg ▸ General ▸ ATR ▸ Adaptive Torque ResponseSpeed Boost
atr_speed_boost
-110.3 %Defines how ATR response changes at higher speeds. Set to negative numbers to lower the response as speed increases.
Refloat Cfg ▸ General ▸ ATR ▸ Adaptive Torque ResponseATR Downhill Strength
atr_strength_down
03.50.5How much Nose Lowering should be applied based on ATR Response.
Rather than judging based purely on current like Torque Tiltback does, ATR (Adaptive Torque Response) determines its behavior based on a calculation of Acceleration Difference (Expected Acceleration - Measured Acceleration). This can produce more consistent results for tilt response to uphills and downhills. It can also influence the overall ride feel, and can produce an appropriate stronger/weaker response for heavier/lighter riders, allowing riders of vastly different weights to effectively utilize the same PID tune and still experience similar behavior.

Recommended Values: 1.0 - 2.5 (Extreme!)

*Note: The values used for this parameter in previous firmware versions (5.3 ATR) are now scaled up 10x (i.e. a previous ATR Strength of 0.10, is now a strength of 1.0).
Refloat Cfg ▸ General ▸ ATR ▸ Adaptive Torque ResponseATR Uphill Strength
atr_strength_up
03.51How much Nose Lift should be applied based on ATR Response.Rather than judging based purely on current like Torque Tiltback does, ATR (Adaptive Torque Response) determines its behavior based on a calculation of Acceleration Difference (Expected Acceleration - Measured Acceleration). This can produce more consistent results for tilt response to uphills and downhills. It can also influence the overall ride feel, and can produce an appropriate stronger/weaker response for heavier/lighter riders, allowing riders of vastly different weights to effectively utilize the same PID tune and still experience similar behavior.

Recommended Values: 1.0 - 2.5 (Extreme!)

*Note: The values used for this parameter in previous firmware versions (5.3 ATR) are now scaled up 10x (i.e. a previous ATR Strength of 0.10, is now a strength of 1.0).
Refloat Cfg ▸ General ▸ ATR ▸ Adaptive Torque ResponseThreshold Angle Down
atr_threshold_down
051.5 °Threshold angle for braking/downhills below which no setpoint change is triggered. This means that if the computed ATR angle is below this threshold the setpoint will not be changed, producing a more predictable behavior in mellow terrain.

Once the ATR target angle exceeds the threshold, setpoint changes will be produced.

Example: If the threshold is 2 and the computed ATR angle is 3 then a 1 degree setpoint adjustment will be performed.
Refloat Cfg ▸ General ▸ ATR ▸ Adaptive Torque ResponseThreshold Angle Up
atr_threshold_up
051.5 °Threshold angle for acceleration/uphills below which no setpoint change is triggered. This means that if the computed ATR angle is below this threshold the setpoint will not be changed, producing a more predictable behavior in mellow terrain.

Once the ATR target angle exceeds the threshold, setpoint changes will be produced.

Example: If the threshold is 2 and the computed ATR angle is 3 then a 1 degree setpoint adjustment will be performed.
Refloat Cfg ▸ General ▸ ATR ▸ Nose AnglingTiltback Transition Boost
atr_transition_boost
1103xRelease faster during transitions. When ATR reverses (dip or peak), the slow release speed can cause a long delay for the nose/tail to get back to normal. This should help resolve this.
Refloat Cfg ▸ General ▸ BMSBMS High Temp Threshold
bms.bms_ht_threshold
08060 °CHigh temp threshold for the BMS temperature to trigger a safety alert.

Set to 0 to disable this alert.

Note: Requires VESC firmware version 6.06+ and a recent enough BMS firmware.
Refloat Cfg ▸ General ▸ BMSCell Balance Threshold
bms.cell_balance_threshold
0.0110.2 VCell balance threshold to trigger a warning beep while idle.
Refloat Cfg ▸ General ▸ BMSCell High Temp Threshold
bms.cell_ht_threshold
06045 °CHigh temp threshold per cell to trigger a safety alert.

Set to 0 to disable both High and Low Cell Temperature alert.
Refloat Cfg ▸ General ▸ BMSCell High Voltage Threshold
bms.cell_hv_threshold
2.54.54.3 VHigh voltage threshold per cell to trigger a safety alert.
Refloat Cfg ▸ General ▸ BMSCell Low Temp Threshold
bms.cell_lt_threshold
-20200 °CLow temp threshold per cell to trigger a safety alert.

Note: It is very bad for battery cells to be charged at below 0 °C! It is possible to set this value to a negative number, but you should ensure no significant regeneration occurs at these temperatures, otherwise you will permanently damage your battery.
Refloat Cfg ▸ General ▸ BMSCell Low Voltage Threshold
bms.cell_lv_threshold
2.54.52.7 VLow voltage threshold per cell to trigger a safety alert.
Refloat Cfg ▸ General ▸ BMSEnable BMS Integration
bms.enabled
0Enable BMS integration.
If enabled, the board will alert via pushback and haptics if any of the configured thresholds are crossed.
Note: Board restart required. After enabling and before restarting, the package will start checking for BMS values without establishing the communication and will warn about BMS Connection Error. After a restart, the warning should go away if BMS communication is established. This can be used to check the warning mechanism is in place and working.
Motor Cfg ▸ General ▸ BMSForward CAN to Local
bms.fwd_can_mode
DisabledForward CAN-frames to local device as they are received. This is useful when many BMSes are connected on a CAN-bus to avoid polling the state from each one of them.

This can cause a lot of data if there are many BMSes on the CAN-bus, so it is recommended to only do it over the USB-connection.

Options:

Disabled
This function is disabled.

USB Only
Only forward frames to device connected over USB.

Any Interface
Forward frames to device connected using any interface.
Motor Cfg ▸ General ▸ BMSBMS Limit Mode
bms.limit_mode
VCell MaxChoose how to limit the motor current based on data from the BMS.

Overtemp
Decrease the input and regen current as the battery gets too hot.

SOC
Decrease the input current as the state of charge (SOC) gets too low.

VCell Min
Decrease the input current as the lowest cell voltage gets too low.

VCell Max
Decrease the input regen current as the highest cell voltage gets too high.
Motor Cfg ▸ General ▸ BMSSOC Limit End
bms.soc_limit_end
010The battery state of charge (SOC) below which battery current is not allowed anymore.

If there is more than one BMS on the CAN-bus, the one with the lowest value will be ued.
Motor Cfg ▸ General ▸ BMSSOC Limit Start
bms.soc_limit_start
010.05The battery state of charge (SOC) below which battery current starts to get reduced.

If there is more than one BMS on the CAN-bus, the one with the lowest value will be ued.
Motor Cfg ▸ General ▸ BMSTemperature Limit End
bms.t_limit_end
09965 °CThe battery temperature above which battery current is not allowed and a fault is thrown.

If there is more than one BMS on the CAN-bus, the one with the highest value will be ued.
Motor Cfg ▸ General ▸ BMSTemperature Limit Start
bms.t_limit_start
09945 °CThe battery temperature above which battery current starts to get reduced.

If there is more than one BMS on the CAN-bus, the one with the highest value will be used.
Motor Cfg ▸ General ▸ BMSBMS Type
bms.type
VESC BMSType of BMS. This determines how BMS-related messages on the CAN-bus are interpreted. Options are:

None:
No BMS is used. All messages on the CAN-bus are ignored by the BMS module.

VESC BMS:
The VESC BMS is used.
Motor Cfg ▸ General ▸ BMSVCell Max Limit End
bms.vmax_limit_end
064.3 VThe maximum cell voltage above which regen current is not allowed anymore.

If there is more than one BMS on the CAN-bus, the one with the highest value will be ued.
Motor Cfg ▸ General ▸ BMSVCell Max Limit Start
bms.vmax_limit_start
064.2 VThe maximum cell voltage above which regen current starts to get reduced.

If there is more than one BMS on the CAN-bus, the one with the highest value will be ued.
Motor Cfg ▸ General ▸ BMSVCell Min Limit End
bms.vmin_limit_end
062.5 VThe minimum cell voltage below which battery current is not allowed anymore.

If there is more than one BMS on the CAN-bus, the one with the lowest value will be ued.
Motor Cfg ▸ General ▸ BMSVCell Min Limit Start
bms.vmin_limit_start
062.9 VThe minimum cell voltage below which battery current starts to get reduced.

If there is more than one BMS on the CAN-bus, the one with the lowest value will be ued.
Refloat Cfg ▸ General ▸ Tune ▸ Booster (Acceleration)Start Angle
booster_angle
0158 °NOTE: This feature is outdated and does not fully work as intended. If your tune doesn't already utilize Booster, we don't recommend adding it.

Angle (+/-) from which onward booster current is applied when accelerating, in relation to the setpoint.

*NOTE: Based on True Pitch (uses Mahony KP 0.2), rather than Pitch filtered by your set Mahony KP (likely heavily filtered and inaccurate).
Refloat Cfg ▸ General ▸ Tune ▸ Booster (Acceleration)Current Boost
booster_current
01000 ANOTE: This feature is outdated and does not fully work as intended. If your tune doesn't already utilize Booster, we don't recommend adding it.

Extra current added to PID Loop, to be applied when accelerating when booster angle is reached (in relation to Setpoint). Can strengthen the board response at a desired specific angle when pushing the nose down.
Refloat Cfg ▸ General ▸ Tune ▸ Booster (Acceleration)Ramp Up
booster_ramp
1104 °NOTE: This feature is outdated and does not fully work as intended. If your tune doesn't already utilize Booster, we don't recommend adding it.

Degrees over which booster will ramp from 0A to the configured Current when accelerating, starting at Start Angle (i.e. Start Angle of 8° and Ramp Up of 4° means Booster will begin at 8° nose down and strengthen to max current as the board angle approaches 12° nose down from setpoint).

*NOTE: Based on True Pitch
Refloat Cfg ▸ General ▸ Startup ▸ HoldingBrake Current
brake_current
01006 ABrake current to be applied when board is not actively engaged (only applied when an outside force causes motor to move).
Refloat Cfg ▸ General ▸ ATR ▸ Brake TiltbackBrake Tilt Lingering
braketilt_lingering
152How long it takes for Brake Tiltback to disappear; 1 is quick, 5 is real slow.

Recommended Value: 2
Refloat Cfg ▸ General ▸ ATR ▸ Brake TiltbackBrake Tilt Strength
braketilt_strength
0200Produce a slight noselift on braking to make clearing big obstacles easier (an attempt to mimic Mission behavior). 0 disables Brake Tiltback, 20 is max intensity.

Recommended Values: 7-10
Refloat Cfg ▸ General ▸ Tune ▸ Booster (Braking)Start Angle
brkbooster_angle
0158 °NOTE: This feature is outdated and does not fully work as intended. If your tune doesn't already utilize Booster, we don't recommend adding it.

Angle (+/-) from which onward booster regen current is applied when braking, in relation to the setpoint.

*NOTE: Based on True Pitch
Refloat Cfg ▸ General ▸ Tune ▸ Booster (Braking)Current Boost
brkbooster_current
01000 ANOTE: This feature is outdated and does not fully work as intended. If your tune doesn't already utilize Booster, we don't recommend adding it.

Extra current added to PID Loop, to be applied when braking when booster angle is reached (in relation to Setpoint). Can strengthen the braking intensity at a desired specific angle when raising the nose / lowering the tail.
Refloat Cfg ▸ General ▸ Tune ▸ Booster (Braking)Ramp Up
brkbooster_ramp
1104 °NOTE: This feature is outdated and does not fully work as intended. If your tune doesn't already utilize Booster, we don't recommend adding it.

Degrees over which brake-booster will ramp from 0A to the configured Regen Current, starting at Start Angle (i.e. Start Angle of 8° and Ramp Up of 4° means Brake Booster will begin at 8° nose up and strengthen to max current as the board angle approaches 12° nose up from setpoint).

*NOTE: Based on True Pitch
App Cfg ▸ General ▸ GeneralCAN Baud Rate
can_baud_rate
CAN_BAUD_500KThe baud rate of the CAN-Bus. Note that all devices on the bus must have the same baud rate.
App Cfg ▸ General ▸ GeneralCAN Mode
can_mode
VESCCAN-bus mode.

VESC
Default VESC CAN-bus. Required for CAN forwarding and configuring multiple VESCs using VESC Tool.

UAVCAN
Basic implementation of UAVCAN. Currently needs some work.

Comm Brigde
Bridge CAN-bus to commands. Useful for using the VESC and VESC Tool as a generic CAN interface and debugger.

Unused
CAN-frames are not processed at all and just ignored. Custom applications and scripts can still process CAN-frames. This is very similar to Comm Bridge, but the received frames are not forwarded using commands.

UAVCAN and VESC
Experimental mode where frames that aren't processed by UAVCAN are processed by the VESC decoder. This can give limited VESC Tool configuration support on UAVCAN networks.
App Cfg ▸ General ▸ General ▸ CAN Messages Rate 1Can Messages Rate 1
can_status_msgs_r1
Status 1Select which CAN status messages are sent are status rate 1. The messages contain:

Status 1:
RPM
Current
Duty Cucle

Status 2:
Ah Used
Ah Charged

Status 3:
Wh Used
Wh Charged

Status 4:
Temp FET
Temp Motor
Current In
PID-position Now

Status 5:
Voltage In
Tachometer

Status 6:
ADC1
ADC2
ADC3
PPM
App Cfg ▸ General ▸ General ▸ CAN Messages Rate 2Can Messages Rate 2
can_status_msgs_r2
Status 1Select which CAN status messages are sent are status rate 2. The messages contain:

Status 1:
RPM
Current
Duty Cucle

Status 2:
Ah Used
Ah Charged

Status 3:
Wh Used
Wh Charged

Status 4:
Temp FET
Temp Motor
Current In
PID-position Now

Status 5:
Voltage In
Tachometer

Status 6:
ADC1
ADC2
ADC3
PPM
App Cfg ▸ General ▸ General ▸ CAN Messages Rate 1Can Status Rate 1
can_status_rate_1
01000050 HzRate 1 at which CAN status messages are sent on the CAN-bus.
App Cfg ▸ General ▸ General ▸ CAN Messages Rate 2Can Status Rate 2
can_status_rate_2
0100005 HzRate 2 at which CAN status messages are sent on the CAN-bus.
Motor Cfg ▸ DC ▸ GeneralCurrent Controller Gain
cc_gain
050.0046Gain for the BLDC and DC current controller. Should be lower for low inductance motors.
Motor Cfg ▸ General ▸ AdvancedMinimum Current
cc_min_current
05000.05 AMinimum current used by the current controller. Commanded currents below this value will release the motor.
Motor Cfg ▸ DC ▸ GeneralCurrent Control Ramp Step Max
cc_ramp_step_max
010.04Maximum duty cycle ramp step in current control mode for DC and BLDC motors.
Motor Cfg ▸ BLDC ▸ GeneralStartup boost
cc_startup_boost_duty
010.01Startup boost in current control. Essentially defines the lowest duty cycle to be used in current control mode, to give a bit more punch when starting.
Motor Cfg ▸ BLDC ▸ GeneralCommutation Mode
comm_mode
IntegrateDelay
This is what most cheap hobby ESCs use, which is detecting a BEMF zero crossing and adding a delay

Integrate
The back-EMF is sampled continuously after a zero crossing and the area under it is integrated. This is more robust and works better at low speed. For this mode the BEMF coupling and integration limit has to be know. The detect function can be used to measure these parameters.
Refloat Cfgnone
config_name
RefloatConfig
App Cfg ▸ General ▸ GeneralVESC ID
controller_id
025574VESC ID. Used to identify this VESC on the CAN-bus.
Refloat Cfg ▸ General ▸ Specs ▸ Refloat Package DetailsDisable Package
disabled
0For Initial Setup Only!
Use this option when you need to run the motor wizard or you want to troubleshoot your motor and run terminal commands. Riding won't be possible with this set to true.
Refloat Cfg ▸ General ▸ Stop ▸ SwitchesEnable Quickstop
enable_quickstop
1Enable disengaging the board immediately by braking hard and lifting the foot off the sensor as the board stops. Requires the board to be angled back more than 14° and the wheel coming to a complete stop.
Refloat Cfg ▸ General ▸ Specs ▸ Foot SensorsADC1 Switch Voltage
fault_adc1
03.32 VVoltage below this value will trigger a fault for the corresponding sensor zone. To disable this switch, set this value to 0.

Hint: If voltage with no input does not settle near 0, consider a pulldown resisitor!
Refloat Cfg ▸ General ▸ Specs ▸ Foot SensorsADC2 Switch Voltage
fault_adc2
03.32 VVoltage below this value will trigger a fault for the corresponding sensor zone. To disable this switch, set this value to 0.

Hint: If voltage with no input does not settle near 0, consider a pulldown resisitor!
Refloat Cfg ▸ General ▸ Stop ▸ SwitchesADC Half State Fault ERPM
fault_adc_half_erpm
0100000200 ERPMERPM (absoulte value) below which a Half State on the ADC switches (sensor zones) will be considered a Fault.

*Note: ERPM = RPM * (Motor Poles / 2)For an 11" Tire on a Hypercore Motor (30 Poles):1000 ERPM ≈ 2.2 mph ≈ 3.5 km/h
Refloat Cfg ▸ General ▸ Stop ▸ FeaturesEnable Darkride
fault_darkride_enabled
0Allows riding the board upside down without sensors. A primitive Reverse Stop (disengage when rolling backwards) is active when using Darkride to allow safe dismount and prevent ghosting.

*DISCLAIMER: Requires correct speed calibration!! The board WILL ghost for sure if your normal speeds are negative!!
Refloat Cfg ▸ General ▸ Stop ▸ Angle FaultsPitch Fault Delay
fault_delay_pitch
010000250 msDelay before cutoff, in milliseconds, once a Pitch Axis Fault is detected.
Refloat Cfg ▸ General ▸ Stop ▸ Angle FaultsRoll Fault Delay
fault_delay_roll
010000250 msDelay before cutoff, in milliseconds, once a Roll Axis Fault is detected.
Refloat Cfg ▸ General ▸ Stop ▸ SwitchesFull Switch Fault Delay
fault_delay_switch_full
010000250 msDelay before cutoff, in milliseconds, once a Full Switch Fault is detected.
Refloat Cfg ▸ General ▸ Stop ▸ SwitchesHalf Switch Fault Delay
fault_delay_switch_half
010000250 msDelay before cutoff, in milliseconds, once a Half Switch Fault is detected.
Refloat Cfg ▸ General ▸ Stop ▸ SwitchesTreat Both Sensors as One (Posi)
fault_is_dual_switch
0Treats both sensors as one single-zone sensor (a.k.a. Posi Sensor). Can help guarantee continued sensor engagement, especially at low speed, but disables the Half Switch Fault (Heel Lift dismount) and can present extra ghosting risk if a sensor is stuck.

*Note: For Advanced Riders only!
Refloat Cfg ▸ General ▸ Stop ▸ SwitchesDisable Moving Faults
fault_moving_fault_disabled
0Disables ADC Faults completely as long as ERPM is positive (moving forward) and above the Half State Fault ERPM x2, as well as the Roll angle being within 40° of level. Outside of the threshold, the board will not disengage on its own, but rather just default to allowing ADC Faults to disengage the board.

*DISCLAIMER: Requires correct speed calibration and Tail Heavy Board!! The board WILL ghost for sure if your normal speeds read as negative or if your board is nose heavy!!
Refloat Cfg ▸ General ▸ Stop ▸ Angle FaultsPitch Axis Fault Cutoff
fault_pitch
459060 °Pitch Angle at which a fault is triggered and the board is disengaged. Can help potentially cut-off a runaway board with a stuck sensor (a.k.a "Ghosting").
Refloat Cfg ▸ General ▸ Stop ▸ FeaturesEnable Reverse Stop
fault_reversestop_enabled
0Allows stopping the onewheel gently by going backwards a bit. Will slowly tilt until it exceeds 15 degrees, and then turn off. It will also stop if going in reverse and staying above 5 degrees tilt for 1+ seconds, or above 10 degrees tilt for 0.5+ seconds.

*Note: With Reverse Stop enabled, it's much harder if not impossible to balance standing still

*DISCLAIMER: Requires correct speed calibration!! You WON'T be able to go forward if your normal speeds are negative!!
Refloat Cfg ▸ General ▸ Stop ▸ Angle FaultsRoll Axis Fault Cutoff
fault_roll
459060 °Roll Angle at which a fault is triggered and the board is disengaged. Can help potentially cut-off a runaway board with a stuck sensor (a.k.a "Ghosting").
Motor Cfg ▸ FOC ▸ AdvancedCurrent Controller Decoupling
foc_cc_decoupling
FOC_CC_DECOUPLING_DISABLEDFOC current controller decoupling using feed forward. This will make the current controller perform better during transient conditions; it may also introduce some noise. The available modes are:

FOC_CC_DECOUPLING_DISABLED
Decoupling is disabled

FOC_CC_DECOUPLING_CROSS
Cross decoupling between the D and Q axes is enabled.

FOC_CC_DECOUPLING_BEMF
Back EMF decoupling on the Q axis is enabled. This improves performance significantly if the motor speed changes rapidly, but makes the current controller depend on the speed tracker.

FOC_CC_DECOUPLING_CROSS_BEMF
Both options above are enabled.
Motor Cfg ▸ FOC ▸ AdvancedControl Sample Mode
foc_control_sample_mode
V0 OnlyV0 Only
Sample and run the control loop in V0 only.

V0 and V7
Sample currents and voltages in both V0 and V7 and run the full control loop at twice the rate. Can be useful for high speed motors at limited switching frequency, or in order to decrease the modulation noise. Notice that this option will require twice the amount of computational power for a given switching frequency.

This mode is only valid for hardware with phase shunts, such as the VESC Six. For other shunt configurations it is ignored.

V0 and V7 Interpolation
Regular sampling and control in V0 and advance the voltage vector with interpolation in V7. This can help motors run better at high speeds.
Motor Cfg ▸ FOC ▸ AdvancedCurrent Filter Constant
foc_current_filter_const
010.1Constant for the filtered current in the FOC implementation. Will affect how fast the slow abs max current fault triggers. Range 0 to 1, where 0 is the slowest and 1 is no filtering.
Motor Cfg ▸ FOC ▸ GeneralCurrent KI
foc_current_ki
010000011.85Current controller integral gain.
Motor Cfg ▸ FOC ▸ GeneralCurrent KP
foc_current_kp
01000000.0123Current controller proportional gain.
Motor Cfg ▸ FOC ▸ AdvancedCurrent Sample Mode
foc_current_sample_mode
Longest Zero TimeLongest Zero Time
Pick the two sensors that spend the longest time in the zero vectors and calculate the third current from them. This can help reduce noise and gives low side shunt hardware more time to rise before the sample is taken on high modulation. Note: When this mode is selected, All Sensors Combined will be used on low modulation up until a timer compare value of 900 counts, which corresponds to around 70% duty cycle on 30 kHz zero vector frequency. This is done because HFI works much better then and also because combining all sensors generally gives better samples when the avalible sampling time is longer.

All Sensors Combined
Use all three current readings and make a full Clarke transform. This helps reject common mode noise and also reduces current offsets on motors with low inductance with high current ripple.

High Current
Choose the lowest currents during sampling to derive the highest current. Since the motor currents are balanced and sum to 0, two of the phase currents can be used to derive the third one. Enabling this option will make the current measurement compare all motor currents and derive the highest one from the two lower currents. This way higher currents can be measured than the ADC gain allows by a factor of 2 / sqrt(3), or roughly 1.15. For example, for the VESC6 this increases the current measurement capability from 165A to roughly 190A.

Note
This parameter is only valid for hardware with three shunts, such as the VESC Six. For other shunt configurations it is ignored.
Motor Cfg ▸ FOC ▸ AdvancedDead Time Compensation
foc_dt_us
010000.12 µSCompensation for dead time distortion. Makes some difference at low speed.
Motor Cfg ▸ FOC ▸ AdvancedDuty Downramp Ki
foc_duty_dowmramp_ki
01e+061000The integral gain for the duty downramp controller. This controller is used in duty cycle mode when the duty cycle is decreased. Since this is done by limiting the modulation, very large current spikes can be caused. By using a controller these current spikes can be limited.
Motor Cfg ▸ FOC ▸ AdvancedDuty Downramp Kp
foc_duty_dowmramp_kp
01e+0650The proportional gain for the duty downramp controller. This controller is used in duty cycle mode when the duty cycle is decreased. Since this is done by limiting the modulation, very large current spikes can be caused. By using a controller these current spikes can be limited.
Motor Cfg ▸ FOC ▸ EncoderEncoder Inverted
foc_encoder_inverted
0The encoder is inverted if it counts backwards while the motor is turning forwards.
Motor Cfg ▸ FOC ▸ EncoderEncoder Offset
foc_encoder_offset
0360180Offset between the encoder zero and motor zero points.
Motor Cfg ▸ FOC ▸ EncoderEncoder Ratio
foc_encoder_ratio
0100007Ratio between encoder and motor. E.g. a 14 pole motor with a directly attached encoder has ratio 7.
Motor Cfg ▸ FOC ▸ AdvancedZero Vector Frequency
foc_f_zv
015000030000 kHzThe frequency at which the output toggles between the zero vectors (V0 and V7) in the space vector modulation.

The controllers and estimators run at half of this frequency. If the option Sample in V0 and V7 is active the controllers and estimators run at the full zero vector frequency, but this option is only available on hardware with phase shunts.

NOTE
There has been some confusion on what the zero vector frequency is referring to. It is the rate between the zero vectors V0 (when all low-side switches are on) and V7 (when all high-side switches are on).

If you scope one of the phases you will see a signal at half the set frequency, which is what the timer runs at. That is because the motor phases will be shorted both when the signal is low and when it is high. This is one of the core concepts of space-vector modulation and how you can effectively double the switching frequency with the same amount of switching.

There is also some frequency content at half of this frequency depending on the modulated vector, but it is mainly at the set switching frequency and this is also what matters when e.g. calculating ripple current due to motor inductance.

Some links to discussions about this:
https://vesc-project.com/node/3278
https://github.com/vedderb/bldc/pull/397
Motor Cfg ▸ FOC ▸ Field WeakeningBackoff Gain
foc_fw_backoff
0101When more field weakening than is possible to achieve is requested the current controller will place almost all voltage in vd. When that happens we can enter a runaway condition where the iq controller does not have enough headroom to overcome the D axis coupling. The backoff gain uses the iq error to reduce the field weakening setpoint when iq is greater than iq_target.
Motor Cfg ▸ FOC ▸ Field WeakeningField Weakening Current Max
foc_fw_current_max
050000 AMaximum field weakening (FW) current.
Motor Cfg ▸ FOC ▸ Field WeakeningField Weakening Duty Start
foc_fw_duty_start
010.9 %Start field weakening at this fraction of maximum duty cycle.
Motor Cfg ▸ FOC ▸ Field WeakeningQ Axis Current Factor
foc_fw_q_current_factor
010.02 %Give the q axis current this much of the field weakening current as braking current (opposite to the current direction). This helps slow the motor down when commanding 0 current in case the position has an offset and the field weakening current contributes with torque.
Motor Cfg ▸ FOC ▸ Field WeakeningField Weakening Ramp Time
foc_fw_ramp_time
0300.2 msMinimum time to ramp the field weakening current. Setting this to 0 will make the field weakening respond instantly (limited by the D axis current controller).
Motor Cfg ▸ FOC ▸ Hall SensorsHall Interpolation ERPM
foc_hall_interp_erpm
01e+06500ERPM above which hall sensors are interpolated.
Motor Cfg ▸ FOC ▸ Hall SensorsHall Table [0]
foc_hall_table__0
0255255Hall sensor table entry for sensor output 0.
Motor Cfg ▸ FOC ▸ Hall SensorsHall Table [1]
foc_hall_table__1
0255255Hall sensor table entry for sensor output 1.
Motor Cfg ▸ FOC ▸ Hall SensorsHall Table [2]
foc_hall_table__2
0255255Hall sensor table entry for sensor output 2.
Motor Cfg ▸ FOC ▸ Hall SensorsHall Table [3]
foc_hall_table__3
0255255Hall sensor table entry for sensor output 3.
Motor Cfg ▸ FOC ▸ Hall SensorsHall Table [4]
foc_hall_table__4
0255255Hall sensor table entry for sensor output 4.
Motor Cfg ▸ FOC ▸ Hall SensorsHall Table [5]
foc_hall_table__5
0255255Hall sensor table entry for sensor output 5.
Motor Cfg ▸ FOC ▸ Hall SensorsHall Table [6]
foc_hall_table__6
0255255Hall sensor table entry for sensor output 6.
Motor Cfg ▸ FOC ▸ Hall SensorsHall Table [7]
foc_hall_table__7
0255255Hall sensor table entry for sensor output 7.
Motor Cfg ▸ FOC ▸ HFIHFI Ambiguity Resolve Current
foc_hfi_amb_current
0200060 AD-axis current for HFI ambiguity resolution. Not used in the six vector mode.
Motor Cfg ▸ FOC ▸ HFIHFI Ambiguity Resolve Mode
foc_hfi_amb_mode
Six VectorsWhen starting HFI it is possible to be off by 180 degrees with the tracking, which will make the motor run in the wrong direction. This ambiguity needs to be resolved and the following methods are available for doing that.

Six Vectors
This is the old method and works for most hobby outrunners. It is faster and less intrusive, but does not work on all motors.

Id Single Pulse
Inject current into the D-axis to cause saturation and measure how the inductance changes. That is done while tracking using coupled HFI and the result is used to determine if the tracking direction should be flipped. This method is more intrusive than six vectors, but works more reliably on motors with a large iron rotor and more saliency, such as the QS165.

Id Double Pulse
Same as Id Single Pulse, but injects both a positive and a negative pulse. It is a bit more intrusive and draws a bit more power, but does not require manyally setting a threshold.
Motor Cfg ▸ FOC ▸ HFIHFI Ambiguity Resolve Threshold
foc_hfi_amb_tres
05015 %HFI ambiguity resolution threshold in one-pulse mode. Should be set to half of what the inductance is expected to drop by for the ambiguity resolution current.
Motor Cfg ▸ FOC ▸ HFIHFI Gain
foc_hfi_gain
0990.3Correction gain for the silent HFI mode. Higher values are better at handling sudden changes in speed, but also make the position tracking noisier.
Motor Cfg ▸ FOC ▸ HFIHFI Current Hysteresis
foc_hfi_hyst
05000 ACurrent hysteresis for the silent HFI mode. This sets above which current magnitude the injected voltage vector changes phase. Always setting the phase opposite of the set current is best for tracking, but every phase change causes a small click that can be heard. This hysteresis reduces how often the phase is changed around 0 current at the cost of some performance.
Motor Cfg ▸ FOC ▸ HFIHFI Max Error
foc_hfi_max_err
0.00160.15Maximum HFI angle error. Lower values help reject noise at high current, but do not keep up with too fast acceleration.
Motor Cfg ▸ FOC ▸ HFIHFI Observer Override Time
foc_hfi_obs_ovr_sec
050000.001 msOverride HFI position with observer position for this amount of time after dropping below the HFI ERPM threshold. This can prevent oscillating between the two at a transition. Setting this value too high can make HFI catch the motor 180 electrical degrees off, as the observer position might degrade too much.
Motor Cfg ▸ FOC ▸ HFIHFI Reset ERPM
foc_hfi_reset_erpm
01e+06500ERPM below which the ambiguity resolution is reset. This can usually be quite low as the observer will update the HFI state when the motor is undriven. When the motor is undriven the tracking works down to very low speeds.
Motor Cfg ▸ FOC ▸ VSSHFI Samples
foc_hfi_samples
16Number of HFI samples for each motor revolution. This can't be an arbitrary number as the size of Fourier transforms and sine tables depends on it.

Fewer samples will give noisier measurements, but allows estimating the position at a higher rate. The noise can be reduced by increasing the HFI voltage.
Motor Cfg ▸ FOC ▸ VSSHFI Start Samples
foc_hfi_start_samples
2600005Number of HFI samples to resolve ambiguity at start. Every sample takes a bit more than 0.5 ms, and no throttle can be applied during this time. The default value is barely noticeable.
Motor Cfg ▸ FOC ▸ HFIHFI Max Voltage
foc_hfi_voltage_max
07006 VHFI voltage during operation, at maximum current. Increasing the voltage at higher currents helps with tracking. A higher voltage makes HFI noisier and wastes more power, which is why this option allows increasing it at high motor currents when it is needed.

The HFI voltage is mapped between voltage_run and voltage_max, relative to the motor current.
Motor Cfg ▸ FOC ▸ HFIHFI Run Voltage
foc_hfi_voltage_run
07004 VHFI voltage during operation, after ambiguity has been resolved.
Motor Cfg ▸ FOC ▸ VSSHFI Start Voltage
foc_hfi_voltage_start
070020 VHFI voltage at start to resolve ambiguity. This voltage has to cause a current that is high enough to see signs of saturation in the motor.
Motor Cfg ▸ FOC ▸ AdvancedMaximum VD Magnitude
foc_mag_vd_max
0.410.98FOC maximum D axis voltage magnitude. When saturating the voltage output of the current controller the D axis has priority. Setting this value to less than 1.0 leaves some voltage headroom for the Q axis controller under full modulation in situations where the D axis tries to use all available voltage.
Motor Cfg ▸ FOC ▸ GeneralMotor Flux Linkage (λ)
foc_motor_flux_linkage
010000.004014 mWbThe flux linkage of the motor (λ) [mWb]
Motor Cfg ▸ FOC ▸ GeneralMotor Inductance (L)
foc_motor_l
0101.227e-05 µHThe average of LD and LQ inductance.
Motor Cfg ▸ FOC ▸ GeneralMotor Inductance Difference (Lq - Ld)
foc_motor_ld_lq_diff
-10103.77e-06 µHThe difference between Ld and Lq inductance. It represents the motor saliency. This can be measured using the measure_ind terminal command, but the regular detection interface does not print it yet.
Motor Cfg ▸ FOC ▸ GeneralMotor Resistance (R)
foc_motor_r
010000.0118The motor winding resistance. Should be half of what is measured between two motor wires.
Motor Cfg ▸ FOC ▸ AdvancedMTPA Algorithm Mode
foc_mtpa_mode
DisabledThis parameter will enable the Maximum Torque Per Amp (MTPA) algorithm that injects a negative d axis current to follow the optimum torque trajectory. This is specially valuable on Interior Permanent Magnet (IPM) motors because they have large saliency and can yield a substantial torque increase.

The available modes are:

Disabled
This disables the MTPA algorithm.

IQ Target
The D-axis current is based on the set Q-axis current. This makes the target value less noisy, but relies on the current controller keeping keeping the Q-axis current close to the set value. This mode does not work well with duty cycle control.

IQ Measured
The D-axis current is based on the measured Q-axis current. The commanded D-axis current will be more affected by noise, but it does not rely on the Q-axis current controller to keep the current at the set value.

Note: Only enable this feature if you know very well what you are doing. IPM motors are not popular and injecting negative id current can increase the motor speed. If id current suddenly collapses (under a fault condition for example) the DC Bus voltage can increase well beyond the powerstage rating causing a fire and maximum braking power at the motor shaft.
Motor Cfg ▸ FOC ▸ GeneralObserver Gain (x1M)
foc_observer_gain
02e+106.206e+07The observer gain. If the motor does not run smoothly with the calculated value, this value can be tweaked. Try with doubling or halving it in that case.
Motor Cfg ▸ FOC ▸ AdvancedObserver Gain At Minimum Duty
foc_observer_gain_slow
010.05The observer gain scaled at minimum duty cycle. Decreasing this parameter will make observer gain lower at lower modulation, which can help tracking the motor. Setting this parameter to 1 will make the observer gain constant at all modulations.
Motor Cfg ▸ FOC ▸ AdvancedObserver Offset
foc_observer_offset
-55-1Observer offset in switching cycles.

There is some delay between when the current ant voltage measurements are taken and when the output is applied. This will cause the observer phase to lag behind the motor phase at high speed when the zero vector frequency is low in comparison.

This parameter adds an offset to the observer phase in multiples of the zero vector frequency to compensate for that delay. The default value should be good for most hardware, but if needed this value can be fine-tuned using and encoder and/or a power analyzer.

Important Note
Before changing this value, make sure that any phase delay is not caused by incorrect motor parameters or incorrect measurements. Only change this value if you have excluded other possible causes and you know what you are doing.
Motor Cfg ▸ FOC ▸ AdvancedObserver Type
foc_observer_type
FOC_OBSERVER_MXLEMMING_LAMBDA_COMPType of rotor position observer for field oriented control (FOC). The options are:

FOC_OBSERVER_ORTEGA_ORIGINAL
The observer described here:
http://cas.ensmp.fr/~praly/Telechargement/Journaux/2010-IEEE_TPEL-Lee-Hong-Nam-Ortega-Praly-Astolfi.pdf

FOC_OBSERVER_MXLEMMING
Observer by David Molony, also known as mxlemming. This observer does not rely on the observer gain parameter, which is a significant advantage.

FOC_OBSERVER_MXV
Same as MXLEMMING, but truncates the flux linkage in two dimensions.

FOC_OBSERVER_ORTEGA_LAMBDA_COMP
FOC_OBSERVER_MXLEMMING_LAMBDA_COMP
FOC_OBSERVER_MXV_LAMBDA_COMP
Same as the others, but with flux linkage tracking. The flux linkage tracker uses the observer gain for both observers, but it is less critical to get it right here as the flux linkage is mostly DC (unless the current is high and the motor starts to saturate).

FOC_OBSERVER_MXV_LAMBDA_COMP_LIN
Uses linear lambda compensation instead of squares.
Motor Cfg ▸ FOC ▸ OffsetsOffset Calibration Mode
foc_offsets_cal_mode
Write EnabledCalibrate on Boot
Calibrate offsets each boot. Makes the boot slower, but ensures that the offsets are correct. Note that calibration on boot will fail if there is a fault code active during boot that does not go away within a few seconds.

Write Enabled
Enable writing from VESC Tool. When disabled, the offsets will be ignored when writing the motor configuration.

Auto Calibrate
Automatically calibrate offsets while the motor is undriven.
Motor Cfg ▸ FOC ▸ Offsets ▸ CurrentCurrent Offset 0
foc_offsets_current__0
081922047.39Current channel 0 offset in ADC counts.
Motor Cfg ▸ FOC ▸ Offsets ▸ CurrentCurrent Offset 1
foc_offsets_current__1
081922048.29Current channel 1 offset in ADC counts.
Motor Cfg ▸ FOC ▸ Offsets ▸ CurrentCurrent Offset 2
foc_offsets_current__2
081922048.89Current channel 2 offset in ADC counts.
Motor Cfg ▸ FOC ▸ Offsets ▸ VoltageVoltage Offset 0
foc_offsets_voltage__0
-220.0002 VVoltage channel 0 offset. This is at the ADC input, so it is not scaled with the voltage dividers.
Motor Cfg ▸ FOC ▸ Offsets ▸ VoltageVoltage Offset 1
foc_offsets_voltage__1
-220.0006 VVoltage channel 1 offset. This is at the ADC input, so it is not scaled with the voltage dividers.
Motor Cfg ▸ FOC ▸ Offsets ▸ VoltageVoltage Offset 2
foc_offsets_voltage__2
-22-0.0009 VVoltage channel 2 offset. This is at the ADC input, so it is not scaled with the voltage dividers.
Motor Cfg ▸ FOC ▸ Offsets ▸ Voltage UndrivenVoltage Offset Undriven 0
foc_offsets_voltage_undriven__0
-220.0005 VVoltage channel 0 offset when the motor is undriven. This is at the ADC input, so it is not scaled with the voltage dividers.
Motor Cfg ▸ FOC ▸ Offsets ▸ Voltage UndrivenVoltage Offset Undriven 1
foc_offsets_voltage_undriven__1
-22-0.0003 VVoltage channel 1 offset when the motor is undriven. This is at the ADC input, so it is not scaled with the voltage dividers.
Motor Cfg ▸ FOC ▸ Offsets ▸ Voltage UndrivenVoltage Offset Undriven 2
foc_offsets_voltage_undriven__2
-22-0.0002 VVoltage channel 2 offset when the motor is undriven. This is at the ADC input, so it is not scaled with the voltage dividers.
Motor Cfg ▸ FOC ▸ VSSOpenloop ERPM
foc_openloop_rpm
01e+061500ERPM below which openloop commutation is used when running sensorless. Can be tweaked for the best startup depending on e.g. the load inertia.
Motor Cfg ▸ FOC ▸ SensorlessOpenloop ERPM at Min Current
foc_openloop_rpm_low
010Rationale

With low current, the observer has an easier time locking onto the motor, as the `resistance_error * current` has to be low compared to the back-emf for the observer to work.

Functional description

The openloop ERPM is scaled with the motor current setpoint. This is the fraction of Openloop ERPM at 0A (i.e. minimum current).
Motor Cfg ▸ FOC ▸ AdvancedOvermodulation Factor
foc_overmod_factor
11.51FOC overmodulation factor. Allows slightly higher speed at the expense of output voltage distortion. A factor of 1.15 results in a modulated hexagon, similar to trapezoidal commutation. Generally it does not make sense to go higher than 1.15.
Motor Cfg ▸ FOC ▸ FiltersDisable Phase Filter Fault Code
foc_phase_filter_disable_fault
1Disable the phase filter fault code. This can be useful if the phase filter fault seems to trigger for no reason on some difficult motors.
Motor Cfg ▸ FOC ▸ FiltersEnable Phase Filters
foc_phase_filter_enable
1This enables the use of phase voltage filters on hardware that supports it. Instead of calculating the phase voltage from the input voltage and modulation, it is measured directly by low-pass filtering the power stage output. The advantage of doing so is that it eliminates dead-time distortion, which helps track the motor at very low speeds. It should also be very useful on hardware with an IGBT output stage, as it compensated for the effect of IGBT voltage drop too.
Motor Cfg ▸ FOC ▸ FiltersMaximum ERPM for phase filters
foc_phase_filter_max_erpm
01000004000 ERPMUse the filtered phase voltage up until this ERPM, then use the value derived from the input voltage and the modulation. The delay and attenuation from the phase filters increases with the motor speed, while the dead-time distortion becomes less significant. The delay and attenuation is partly compensated for, but at some point it is still better to derive the phase voltages from the input voltage and modulation. This parameter sets that point.
Motor Cfg ▸ FOC ▸ AdvancedSpeed Tracker Ki
foc_pll_ki
01e+0630000Speed tracker integral gain. The speed tracker estimates the motor speed by tracking the phase angle.
Motor Cfg ▸ FOC ▸ AdvancedSpeed Tracker Kp
foc_pll_kp
01e+062000Speed tracker proportional gain. The speed tracker estimates the motor speed by tracking the phase angle.
Motor Cfg ▸ FOC ▸ SensorlessSaturation Compensation Factor
foc_sat_comp
010Stator saturation compensation.

When using high currents the stator of the motor can get saturated. This will change the motor parameters, making it difficult for the sensorless observer to track the rotor position. The effect is most noticeable when running the motor with high current at low speed - it will get stuck and then "cog" when open loop operation tries to restart the motor. If you observe this behavior you can try to increase this parameter. This parameter attempts to compensate for effects of stator saturation, making it possible to run motors sensorlessly even at high current and low speed.

Reasonable values for this parameters are 15 % or less. If going higher than that gives good results something else is most likely wrong in your configuration.

Consider the following:

Motors that run at low speed and high torque tend to get saturated, such as e-bike direct drive hub motors.
Coreless motors should in theory never get saturated.
The effect of this parameter is proportional to the maximum motor current limit, meaning that this parameter has no effect at zero current and full effect at full current. If you change the maximum motor current limit you have to adapt this parameter accordingly.
Motor Cfg ▸ FOC ▸ SensorlessSaturation Compensation Mode
foc_sat_comp_mode
LambdaStator Saturation Compensation Mode:

Disabled
No saturation compensation is done.

Factor
The Saturation Compensation Factor is used to determine how much to decrease the inductance and flux linkage based on the current.

Lambda
The decrease in flux linkage is used to make a proportional decrease in inductance. This requires that one of the observers with Lambda Compensation is used.

Lambda and Factor
First the lambda compensation and then the factor is used. Also requires that one of the observers with Lambda Compensation is used.
Motor Cfg ▸ FOC ▸ GeneralSensor Mode
foc_sensor_mode
SensorlessSensor mode for the motor.

Sensorless
Don't use any position sensor on the motor and only rely on the observer and starting algorithm. Works well for most applications (not position control), but the start can be a bit delayed.

Encoder
Use an encoder on the motor shaft. Works well for position control applications such as CNC mills.

Hall Sensors
Use hall sensors with 60 or 120 degree spacing in the motor. Gives starts without any delay at all, but does not work that well for most position control applications.

HFI
High Frequency Injection. Track the position down to 0 speed by injecting voltage pulses and analyzing the response of the motor. Works on most motors that have enough difference in D-axis and Q-axis inductance.

VSS
Vedder Sensorless Start. Use HFI just after starting the motor to resolve the initial position and set the observer state to that position. This can help the observer track the motor correctly from 0 speed. As this also is based on saturation it can help start some motors with low saliency.

45 Deg V0V7 HFI (Silent)
A different approach to HFI that is completely silent if the zero vector frequency is high enough (maximum around 32 kHz). It is also more stable under high load when configured properly. This implementation relies on a good inductance measurement (in addition to some difference in Lq and Ld), so if it does not work well you can try adjusting the inductance 1-5 % up and down. Note that phase shunts are required to make this mode silent, otherwise the sampling has to be done at half the frequency in V0 only.

45 Deg V0 HFI
Same as above, but will only sample in V0.

Coupled V0V7 HFI (Silent)
Inject a voltage in the D axis and measure the response in the Q axis. It is much less sensitive to getting the average inductance correct as the coupling between the axes shows up without an offset in the response. It does not work as well as the 45 degree HFI under high load though. Credit: Elwin and David (mxlemming) on the VESC Discord channel.

Coupled V0 HFI
Same as above, but will only sample in V0.

AB Encoder (No Index Pulse)
Encoder without index pulse. Use sensorless FOC from the start. Update the encoder offset when FOC enter the sensorless ERPM - after that it will behave as if the index pulse is found. See https://github.com/vedderb/bldc/pull/894

NOTE: HFI and VSS only work when the FOC switching frequency is at or below 30 KHz.

NOTE2: Some of the HFI-methods will get a division by 0 if Ld - Lq is set to 0, which can make the CPU reboot.
Motor Cfg ▸ FOC ▸ AdvancedShort Low-Side FETs on Zero Duty
foc_short_ls_on_zero_duty
0Short low-side FETs on 0 duty cycle. This will give a bit more braking torque when the motor is standing still and braking is requested. It also uses less power to drive the FETs. The downsides are that the low-side FETs will take all load by themselves and that the transition to and from full brake will be a bit more rough.
Motor Cfg ▸ FOC ▸ EncoderSensorless ERPM
foc_sl_erpm
01e+063500ERPM above which sensorless commutation is used in sensored modes.
Motor Cfg ▸ FOC ▸ HFISensorless ERPM HFI
foc_sl_erpm_hfi
01e+063000ERPM below which HFI is used.
Motor Cfg ▸ FOC ▸ Hall SensorsSensored ERPM Start
foc_sl_erpm_start
01e+062500ERPM below which only sensored commutation is used. Above this ERPM the observer will start to have impact on the position.
Motor Cfg ▸ FOC ▸ SensorlessOpenloop Current Boost
foc_sl_openloop_boost_q
03000 ARationale
Current boost can help the motor get over its initial cogging torque more easily, but it also potentially makes the start more jittery.

Functional description
Current boost in the Q-axis during the open loop procedure.

For instance, if the commanded value is 1A and the boost is 10A, then it will run at `1A + 10A` for `Openloop lock time + Openloop ramp time + Openloop time` seconds. Then it will continue at 1A in closed-loop.
Motor Cfg ▸ FOC ▸ SensorlessOpenloop Hysteresis
foc_sl_openloop_hyst
01000.1 SGo to openloop mode if the ERPM has been below the openloop RPM for this amount of time.
Motor Cfg ▸ FOC ▸ SensorlessOpenloop Current Max
foc_sl_openloop_max_q
-1300-1 ALimit the current during the openloop sequence to this value. Setting the boost current higher than this value means that the openloop current is a constant value (this one).

A negative value means that this limit is disabled.
Motor Cfg ▸ FOC ▸ SensorlessOpenloop Time
foc_sl_openloop_time
01000.05 SStay in openloop for this amount of time after finishing the ramp.
Motor Cfg ▸ FOC ▸ SensorlessOpenloop Lock Time
foc_sl_openloop_time_lock
01000 SLock motor for this amount of time in the beginning of the open loop sequence.
Motor Cfg ▸ FOC ▸ SensorlessOpenloop Ramp Time
foc_sl_openloop_time_ramp
01000.1 SRamp up the openloop speed in the openloop sequence for this amount of time.
Motor Cfg ▸ PID Controllers ▸ General ▸ Speed ControllerSpeed Tracker Position Source
foc_speed_soure
Corrected PositionPosition source for the speed trackers.

Corrected Position
Use the derived motor control position from sensors, HFI and observer.

Observer
Use the observer position. This is usually less noisy than hall sensors or hfi, but it can drift slowly at 0 speed.
Motor Cfg ▸ FOC ▸ SensorlessStart Current Decrease
foc_start_curr_dec
011Decrease the current limit to this percentage at start. This helps starting the motor as the observer can track it easier when the current is low.

This setting will not give the full starting torque, but for some applications, such as propellers and pumps, that does not matter.
Motor Cfg ▸ FOC ▸ SensorlessStart Current Decrease ERPM
foc_start_curr_dec_rpm
01e+062500Above this ERPM the full current is available.
Motor Cfg ▸ FOC ▸ SensorlessTemp Comp
foc_temp_comp
0Use temperature compensation for the motor resistance used by the observer. Should help at low speed when the motor temperature is far away from the temperature at which the resistance was measured.
Motor Cfg ▸ FOC ▸ SensorlessTemp Comp Base Temp
foc_temp_comp_base_temp
-12012025 °CMotor temperature at which the motor resistance was measured.
Motor Cfg ▸ BLDC ▸ SensorsSensorless ERPM Hybrid
hall_sl_erpm
01e+062000ERPM above which sensorless commutation is used in hybrid mode.
Motor Cfg ▸ BLDC ▸ SensorsHall Table [0]
hall_table__0
-16-1Hall sensor table entry for sensor output 0.
Motor Cfg ▸ BLDC ▸ SensorsHall Table [1]
hall_table__1
-161Hall sensor table entry for sensor output 1.
Motor Cfg ▸ BLDC ▸ SensorsHall Table [2]
hall_table__2
-163Hall sensor table entry for sensor output 2.
Motor Cfg ▸ BLDC ▸ SensorsHall Table [3]
hall_table__3
-162Hall sensor table entry for sensor output 3.
Motor Cfg ▸ BLDC ▸ SensorsHall Table [4]
hall_table__4
-165Hall sensor table entry for sensor output 4.
Motor Cfg ▸ BLDC ▸ SensorsHall Table [5]
hall_table__5
-166Hall sensor table entry for sensor output 5.
Motor Cfg ▸ BLDC ▸ SensorsHall Table [6]
hall_table__6
-164Hall sensor table entry for sensor output 6.
Motor Cfg ▸ BLDC ▸ SensorsHall Table [7]
hall_table__7
-16-1Hall sensor table entry for sensor output 7.
Refloat Cfg ▸ General ▸ Haptic Feedback ▸ GeneralCurrent Threshold
haptic.current_threshold
010 %A current threshold for solid tone haptic feedback as a percentage of the configured maximums for motor and battery currents. Whenever one of the currents (battery or motor) crosses this percentage threshold, solid tone haptic feedback will be triggered.

Set to 0% to disable.
Refloat Cfg ▸ General ▸ Haptic Feedback ▸ Audible Feedback (firmware 6.05+)Warning Audible Frequency
haptic.duty.frequency
3001000495 HzAudible frequency of the Speed and Duty Cycle Alert haptic feedback. Also used for Current Limit haptic feedback, if enabled.

(generated by foc_play_tone of the 6.05 firmware)
Refloat Cfg ▸ General ▸ Haptic Feedback ▸ Audible Feedback (firmware 6.05+)Warning Audible Strength
haptic.duty.strength
0123 VMaximum strength of the audible Speed and Duty Cycle haptic feedback, in Volts. Also used for Current Limit haptic feedback, if enabled.

Actual strength is determined by strength scaling, which depends on speed. This value is the maximum strength, which will be reached at your configured Maximum Strength Speed.

Set to 0.0 to disable the audible frequency for haptic alerts.
Refloat Cfg ▸ General ▸ Haptic Feedback ▸ GeneralDuty Cycle Solid Offset
haptic.duty_solid_offset
010.05 %Duty Cycle offset to trigger solid tone haptic feedback, in precentage points.

Example: If your Duty Cycle Threshold is 80% and your Duty Cycle Solid Offset is 5%, haptic feedback will turn to solid tone after you cross 85% Duty Cycle.

Set to 0% to only have solid tone Duty Cycle haptic feedback. Set to 100% to disable.
Refloat Cfg ▸ General ▸ Haptic Feedback ▸ Audible Feedback (firmware 6.05+)Error Audible Frequency
haptic.error.frequency
3001000550 HzAudible frequency of the Error haptic feedback.

(generated by foc_play_tone of the 6.05 firmware)
Refloat Cfg ▸ General ▸ Haptic Feedback ▸ Audible Feedback (firmware 6.05+)Error Audible Strength
haptic.error.strength
0123 VMaximum strength of the audible Error haptic feedback, in Volts.

Actual strength is determined by strength scaling, which depends on speed. This value is the maximum strength, which will be reached at your configured Maximum Strength Speed.

Set to 0.0 to disable the audible frequency for haptic alerts.
Refloat Cfg ▸ General ▸ Haptic Feedback ▸ GeneralMaximum Strength Speed
haptic.max_strength_speed
1010030 km/hThe speed at which the strengths of all the feedback types will reach their configured maximums. Beyond this value, the haptic feedback strength will remain the same.
Refloat Cfg ▸ General ▸ Haptic Feedback ▸ GeneralMinimum Strength
haptic.min_strength
010.2 %Minimum strength of the feedback at zero speed, as a precentage of the strength configured for the given feedback type.
Refloat Cfg ▸ General ▸ Haptic Feedback ▸ GeneralStrength Curvature
haptic.strength_curvature
010.6The curvature of the strength / speed curve, i.e. how fast it grows as speed increases.

Set to 0 to make the curve straight (linear). The higher the number, the mellower the speed increase at low speeds and steeper at high speeds. When set to 1, the strength will grow the slowest at zero speed and the fastest at your configured Maximum Speed Strength (the shape will be quadratic).
Refloat Cfg ▸ General ▸ Haptic Feedback ▸ Vibration FeedbackVibrate Frequency
haptic.vibrate.frequency
1020070 HzVibrating frequency of both Warning and Error haptic feedback.

Note: When changing this option, the actual frequency will be changing in larger discrete steps, as the configured frequency is being rounded down to the nearest division of control loop frequency / 2.

(generated by modulating a square wave on requested current, not using foc_play_tone from 6.05)
Refloat Cfg ▸ General ▸ Haptic Feedback ▸ Vibration FeedbackVibrate Strength
haptic.vibrate.strength
0250 AMaximum strength of the vibrating haptic feedback, in Amps.

Actual strength is determined by strength scaling, which depends on speed. This value is the maximum strength, which will be reached at your configured Maximum Strength Speed.

Set to 0.0 to disable the vibrating frequency for haptic alerts.
Refloat Cfg ▸ General ▸ Specs ▸ Leds (changes require reboot)Front LED Color Order
hardware.leds.front.color_order
GRBFront LED color order:

GRB: WS2811, WS2812b, SK2812
GRBW: SK6812
RGB: WS2815
WRGB: WS2814

Some strips have different color order. If your strip is not on the list, test which value works for you.
Refloat Cfg ▸ General ▸ Specs ▸ Leds (changes require reboot)Front LED Strip Length
hardware.leds.front.count
03020Number of LEDs in your front LED strip.

Board restart required for changes to take effect.
Refloat Cfg ▸ General ▸ Specs ▸ Leds (changes require reboot)Front LED Strip Order
hardware.leds.front.order
2ndOrder of the front LED strip in the chain. Set to "Not Present" if you don't have a front LED strip.

Board restart required for changes to take effect.
Refloat Cfg ▸ General ▸ Specs ▸ Leds (changes require reboot)Reverse Front LED Direction
hardware.leds.front.reverse
0Reverse the direction of the front LED strip.

Board restart required for changes to take effect.
Refloat Cfg ▸ General ▸ Specs ▸ Leds (changes require reboot)LED Mode
hardware.leds.mode
OffLED control mode:

Off: Disable LED controls
Internal: LEDs driven by the Refloat package
External: External LED control modules, such as the Floatwheel LCM
Internal and External: Both of the above (e.g. connect status bar directly to VESC and front/rear lights to VESC Express)

External (LCM)
External Modules have their own simple LED configuration, which uses three brightness levels:
Brightness
Brightness (Idle)
Status Brightness

For configuring these from Refloat, the following Refloat options will be used for the above LCM parameters respectively (for status, the one used depends on the Headlights On switch):
Headlights Brightness
Front Brightness
Status Brightness (Headlights Off)
Status Brightness (Headlights On)

You can use the LEDs On switch to turn LCM lights on and off.

You can toggle the Headlights On switch to have Headlights Brightness be used when engaged. When it's off, Front Brightness will be used regardless of whether the board is engaged or idle. Also, the corresponding Status Brightness will be used.

The rest of the options is ignored for the External LED type.

Board restart required for changes to take effect.
Refloat Cfg ▸ General ▸ Specs ▸ Leds (changes require reboot)LED Pin
hardware.leds.pin
Dedicated LED pinThe pin to which the LEDs are connected on the VESC.

PPM/Servo pin: Little FOCer v3.x, Tronic 250R, Ubox V2 75V/100V (pin B6)
Dedicated LED pin: Little FOCer v4.x, Thor 300/301/400 (pin B7)
JetFleet F6 v1 AUX pin (pin C9)

Board restart required for changes to take effect.

Note: For the PPM/Servo pin to work, you need to remove a capacitor from the VESC. For Little FOCer / Tronic it's the C3 capacitor.
Refloat Cfg ▸ General ▸ Specs ▸ Leds (changes require reboot)LED Pin Configuration
hardware.leds.pin_config
Pullup to 5VThe configuration of the LED pin:

Pullup to 5V: Most controllers with a dedicated LED pin (Little FOCer v4, all Thors), custom solutions on the PPM/Servo pin with an external 1kOhm pullup resistor to 5V
No Pullup: JetFleet F6 v2, custom solutions with no external pullup

Board restart required for changes to take effect.

Note: The No Pullup option may work for the Pullup to 5V controllers, but the signal will be limited to 3.3V.
Refloat Cfg ▸ General ▸ Specs ▸ Leds (changes require reboot)Rear LED Color Order
hardware.leds.rear.color_order
GRBRear LED color order:

GRB: WS2811, WS2812b, SK2812
GRBW: SK6812
RGB: WS2815
WRGB: WS2814

Some strips have different color order. If your strip is not on the list, test which value works for you.
Refloat Cfg ▸ General ▸ Specs ▸ Leds (changes require reboot)Rear LED Strip Length
hardware.leds.rear.count
03020Number of LEDs in your rear LED strip.

Board restart required for changes to take effect.
Refloat Cfg ▸ General ▸ Specs ▸ Leds (changes require reboot)Rear LED Strip Order
hardware.leds.rear.order
3rdOrder of the rear LED strip in the chain. Set to "Not Present" if you don't have a rear LED strip.

Board restart required for changes to take effect.
Refloat Cfg ▸ General ▸ Specs ▸ Leds (changes require reboot)Reverse Rear LED Direction
hardware.leds.rear.reverse
0Reverse the direction of the rear LED strip.

Board restart required for changes to take effect.
Refloat Cfg ▸ General ▸ Specs ▸ Leds (changes require reboot)Status LED Color Order
hardware.leds.status.color_order
GRBStatus bar LED color order:

GRB: WS2811, WS2812b, SK2812
GRBW: SK6812
RGB: WS2815
WRGB: WS2814

Some strips have different color order. If your strip is not on the list, test which value works for you.
Refloat Cfg ▸ General ▸ Specs ▸ Leds (changes require reboot)Status LED Strip Length
hardware.leds.status.count
03010Number of LEDs in your status bar strip.

Board restart required for changes to take effect.
Refloat Cfg ▸ General ▸ Specs ▸ Leds (changes require reboot)Status LED Strip Order
hardware.leds.status.order
1stOrder of the status bar strip in the chain. Set to "Not Present" if you don't have a status bar.

Board restart required for changes to take effect.
Refloat Cfg ▸ General ▸ Specs ▸ Leds (changes require reboot)Reverse Status LED Direction
hardware.leds.status.reverse
0Reverse the direction of the status bar LED strip.

Board restart required for changes to take effect.
Refloat CfgRefloat Cfg
hw_name
This is the VESC Logging and Communication Module.
App Cfg ▸ IMU ▸ General ▸ AHRSAccelerometer Confidence Decay
imu_conf.accel_confidence_decay
09991This factor sets how fast the accelerometer confidence will be decreased if the acceleration vector differs from 1.0.
App Cfg ▸ IMU ▸ GeneralAccel lowpass filter X
imu_conf.accel_lowpass_filter_x
010000 HzAccelerometer lowpass filter

Biquad lowpass filter applied to X axis. This is run on the ESC and will be applied regardless of IMU model.

Setting the filter to 0Hz will disable it.
App Cfg ▸ IMU ▸ GeneralAccel lowpass filter Y
imu_conf.accel_lowpass_filter_y
010000 HzAccelerometer lowpass filter

Biquad lowpass filter applied to Y axis. This is run on the ESC and will be applied regardless of IMU model.

Setting the filter to 0Hz will disable it.
App Cfg ▸ IMU ▸ GeneralAccel lowpass filter Z
imu_conf.accel_lowpass_filter_z
010000 HzAccelerometer lowpass filter

Biquad lowpass filter applied to Z axis. This is run on the ESC and will be applied regardless of IMU model.

Setting the filter to 0Hz will disable it.
App Cfg ▸ IMU ▸ General ▸ OffsetsAccel Offset X
imu_conf.accel_offsets__0
-16160 GAccelerometer offset X.
App Cfg ▸ IMU ▸ General ▸ OffsetsAccel Offset Y
imu_conf.accel_offsets__1
-16160 GAccelerometer offset Y.
App Cfg ▸ IMU ▸ General ▸ OffsetsAccel Offset Z
imu_conf.accel_offsets__2
-16160 GAccelerometer offset Z.
App Cfg ▸ IMU ▸ GeneralAccel/Gyro Filter
imu_conf.filter
IMU_FILTER_LOWSet the onboard accel/gyro filters.
App Cfg ▸ IMU ▸ GeneralGyro lowpass filter
imu_conf.gyro_lowpass_filter
010000 HzGyrosocpe lowpass filter

Biquad lowpass filter applied to all 3 axes of the gyroscope. This is run on the ESC and will be applied regardless of IMU model.

Setting the filter to 0Hz will disable it.
App Cfg ▸ IMU ▸ General ▸ OffsetsGyro Offset X
imu_conf.gyro_offsets__0
-100010000 °/sGyro offset (drift) X.
App Cfg ▸ IMU ▸ General ▸ OffsetsGyro Offset Y
imu_conf.gyro_offsets__1
-100010000 °/sGyro offset (drift) Y.
App Cfg ▸ IMU ▸ General ▸ OffsetsGyro Offset Z
imu_conf.gyro_offsets__2
-100010000 °/sGyro offset (drift) Z.
App Cfg ▸ IMU ▸ General ▸ AHRSMadgwick Beta
imu_conf.madgwick_beta
09990.1Beta for Madgwick filter. Decides how much the accelerometer is used for attitude estimation. Increasing this value helps against gyro offsets, but makes the output noisier.
App Cfg ▸ IMU ▸ General ▸ AHRSMahony KI
imu_conf.mahony_ki
09990KI for Mahony filter. Integrates gyro offsets over time.
App Cfg ▸ IMU ▸ General ▸ AHRSMahony KP
imu_conf.mahony_kp
09990.3KP for Mahony filter. Decides how much the accelerometer is used for attitude estimation. Increasing this value helps against gyro offsets, but makes the output noisier.
App Cfg ▸ IMU ▸ General ▸ AHRSIMU AHRS Mode
imu_conf.mode
AHRS_MODE_MADGWICKUse the Madgwick or Mahony AHRS filter.
App Cfg ▸ IMU ▸ General ▸ RotationImu Rotation Pitch
imu_conf.rot_pitch
-3603600 °Pitch rotation of IMU. Can be adjusted if the IMU is not aligned with the vehicle.
App Cfg ▸ IMU ▸ General ▸ RotationImu Rotation Roll
imu_conf.rot_roll
-3603600 °Roll rotation of IMU. Can be adjusted if the IMU is not aligned with the vehicle.
App Cfg ▸ IMU ▸ General ▸ RotationImu Rotation Yaw
imu_conf.rot_yaw
-3603600 °Yaw rotation of IMU. Can be adjusted if the IMU is not aligned with the vehicle.
App Cfg ▸ IMU ▸ GeneralSample Rate
imu_conf.sample_rate_hz
110000200 HzIMU sample rate. Higher sample rates use more CPU cycles, but perform better.
App Cfg ▸ IMU ▸ GeneralIMU Type
imu_conf.type
IMU_TYPE_INTERNALIMU type. The internal IMU is only available if the hardware supports it. External IMUs can be connected to the SDA and SCL pins. If using an external IMU, make sure that no app that uses the same pins is selected.
App Cfg ▸ IMU ▸ GeneralUse magnetometer
imu_conf.use_magnetometer
1Use magnetometer.
Refloat Cfg ▸ General ▸ Remote ▸ Remote TiltbackTiltback Angle Limit
inputtilt_angle_limit
09010 °Maximum angle to which Remote Tiltback will tilt. Determines the scaling of throttle-to-angle (i.e. Max Angle of 10° + 50% Throttle = 5° Tilt Angle).

Note: Pitch Axis Faults and Quickstop will be disabled when Remote Tilt Setpoint is beyond 30°, making it safe to use for Vert.

WARNING: Tilting the setpoint beyond the point of nose/tail dragging will cause the board to accelerate on its own (tail dragging forward). Additionally, a high maximum tilt angle can result in unintended nose/tail diving at speed when not used carefully. BE CAUTIOUS when using maximum angles beyond 20°!
Refloat Cfg ▸ General ▸ Remote ▸ Remote TiltbackInput Deadband
inputtilt_deadband
00.50.1 %Deadband region for the center of the input throttle. Can assist with remotes that do not fully return to center.

For example, a Deadband of 10% will only begin adjusting setpoint once the throttle reaches a value of +/- 10%. From there, it will scale as if 10% throttle was the center point (0%).
Refloat Cfg ▸ General ▸ Remote ▸ Remote TiltbackInvert Throttle
inputtilt_invert_throttle
1False:
Throttle Forward = Nose Lift
Throttle Backward = Nose Lower

True (Default):
Throttle Forward = Nose Lower
Throttle Backward = Nose Lift
Refloat Cfg ▸ General ▸ Remote ▸ Remote TiltbackRemote Type
inputtilt_remote_type
NoneSelect how the remote's reciever communicates with VESC (PPM or UART).

Note: Remote Tiltback requires an input device (such as a UART/PPM Eskate remote)! If not applicable, the type should remain as "None."

Note: For PPM, make sure to keep the Beeper DISABLED (under "Specs" tab) for proper functionality. A reboot may be required following the switch.
Refloat Cfg ▸ General ▸ Remote ▸ Remote TiltbackTiltback Speed
inputtilt_speed
015025 °/sRate at which Remote Tiltback will tilt to the desired angle.
Refloat Cfg ▸ General ▸ Specs ▸ MiscellaneousEnable Beeper on Servo/PPM
is_beeper_enabled
0Enable/disable beeper. Beeper is controlled by Servo/PPM. Active beeper required, 3pin version recommended.
Refloat Cfg ▸ General ▸ Pushback Alerts ▸ General ConfigBeep on Duty Pushback
is_dutybeep_enabled
0Beep during duty cycle pushback.

Warning: beeper may not be easily audible at high speeds!
Refloat Cfg ▸ General ▸ Specs ▸ Foot SensorsBeep on Sensor Fault
is_footbeep_enabled
1Beep when both sensors turn off above 2000erpm (beeps for as long as the sensor remains off)
Refloat Cfg ▸ General ▸ Tune ▸ PIDAngle I
ki
00.50.005Angle I (Integral) value
As time passes with the board angle away from setpoint (considered "error"), Angle I will strengthen the board response based on cumulative error over time. Can be a subtle effect, and has most noticeable effect at the start of uphills/downhills, as well as tricks involving motor freespin.

This is a more nuanced parameter, and it's not recommended to tweak it too much if you're not sure what you're doing. Most riders should be fine with the default value of 0.005.

Recommended Values: 0.005 - 0.08 (Caution with higher values!!)
Refloat Cfg ▸ General ▸ Tune ▸ PIDI Term Limit
ki_limit
050030 AI Term Limiter (Limit Integral Amps)
Limits the amount of current the I component of PID is allowed to accumulate over time. This limits the max response in scenarios with extreme error, such as inclines/declines, as well as freespin tricks, curb nudges, etc. that may overshoot on the landing otherwise.

Recommended Value: 20A - 30A

*Note: 0 = Disabled (Not Recommended)

*Note: Was under the parameter "Deadzone" in previous firmware versions. The values used for that parameter before are now scaled up 10x (i.e. a previous "Deadzone" value of 3, is now an I Term Limit of 30A).
App Cfg ▸ General ▸ GeneralKill Switch Mode
kill_sw_mode
DisabledKill switch input. When this input is active the motor is disabled and optionally braking if timeout_brake_current is greater than 0. The kill switch overrides all other inputs and can be used as an emergency stop.

The following modes can be used:

Disabled
No kill switch is used.

PPM Low
The kill switch is active when the PPM input goes low.

PPM High
The kill switch is active when the PPM input goes high.

ADC2 Low
The kill switch is active when the ADC2 input goes low.

ADC2 High
The kill switch is active when the ADC2 input goes high.
Refloat Cfg ▸ General ▸ Tune ▸ PIDAngle P
kp
04020Angle P (Proportional)
Determines how strong the board responds to a difference in Board Angle vs. Setpoint Angle (i.e. nose below setpoint will accelerate, nose above setpoint will brake).

Recommended Values: 10 - 35 (Take caution closer to 35!)

*Note: Angle P and Rate P work together to shape a large part of the ride feel. If trying to soften the effects of both and you would like to maintain the ride feel, these values should be adjusted together by the same proportion (i.e. If reducing Angle P by half, such as from 20 -> 10, Rate P should be reduced by half as well, such as from 0.6 -> 0.3).
Refloat Cfg ▸ General ▸ Tune ▸ PIDRate P
kp2
030.6Rate P (Proportional) value
Determines how strong the board responds to the nose's angular velocity, regardless of setpoint (i.e. pushing nose down will accelerate, pulling nose up will brake). Essentially, stronger Rate P makes the board more resistant to quick changes in nose angle.Most noticeable in quick/aggressive manuevers, as well as scenarios where Angle P is not effective. For example, coming from hard braking (nose high above setpoint), Rate P will allow the board to begin to accelerate the moment you start pushing the nose down, before the nose is even below setpoint.

For our use case, while Rate P is a Proportional value, we utilize it practically as the D (Derivative) component for our PID loop, working as a damper for the Angle P component.

Recommended Values: 0.6 - 1.0
(Above 1.0 is possible, but you may experience negative side effects such as vibrations, especially in low speed turns. Increment 0.1 at a time.)

*Note: Angle P and Rate P work together to shape a large part of the ride feel. If trying to soften the effects of both and you would like to maintain the ride feel, these values should be adjusted together by the same proportion (i.e. If reducing Angle P by half, such as from 20 -> 10, Rate P should be reduced by half as well, such as from 0.8 -> 0.4).
Refloat Cfg ▸ General ▸ Tune ▸ Brake ScalingRate P (Braking)
kp2_brake
031xScales your Rate P value for braking. For example, if:
Rate P = 0.6,
Rate P (Braking) = 0.5x,
then your brakes will use a Rate P of 0.3, half the strength of your acceleration Rate P.
Refloat Cfg ▸ General ▸ Tune ▸ Brake ScalingAngle P (Braking)
kp_brake
0.231xScales your Angle P value for braking. For example, if:
Angle P = 20,
Angle P (Braking) = 0.5x,
then your brakes will use an Angle P of 10, half the strength of your acceleration Angle P.
Motor Cfg ▸ General ▸ Current ▸ MotorAbsolute Maximum Current
l_abs_current_max
05000150 AThe current magnitude above which all output will be switched off and a fault code thrown. Usually the current control loops take care of limiting the current, but in some conditions short current spikes can appear very quickly. The system can handle them quite well in most cased, so this value can be set relatively high compared to the other current values to avoid cutouts.
Motor Cfg ▸ General ▸ AdvancedAdditional Faults
l_additional_faults
Encoder SlipEncoder Slip
Check for mechanical slip by comparing the FOC observer phase against the physical encoder phase. If enabled, a fault will be triggered if the phase gap exceeds 15 degrees for more than 500ms while spinning. This check will only be performed while the ERPM is higher than the Openloop ERPM setting.

Overspeed
Triggers a fault code if the ERPM exceeds the Max ERPM limit.

Underspeed
Triggers a fault code if the reverse ERPM exceeds the Max ERPM Reverse limit.

Absolute Overspeed
Triggers a fault code if absolute ERPM exceeds the highest of the Max ERPM and Max ERPM reverse limits.
Motor Cfg ▸ General ▸ VoltageBattery Voltage Cutoff End
l_battery_cut_end
011008 VThe input voltage below which current draw is not allowed anymore. There is still full braking current available as braking only charges the battery.
Motor Cfg ▸ General ▸ VoltageBattery Voltage Cutoff Start
l_battery_cut_start
0110010 VThe input voltage where current starts to get reduced. There is still full braking current available as braking only charges the battery.
Motor Cfg ▸ General ▸ VoltageBattery Voltage Regen Cutoff End
l_battery_regen_cut_end
011001100 VThe input voltage above which regen braking current is not allowed anymore.

When regenerative braking is used, the controller can dump a large amount of energy into the battery, charging it at higher currents than the actual battery charger.

This setting can be used to avoid overcharging the battery in long downhills or hard regen braking.

Note that beyond this value, regen braking will be completely disabled.
Motor Cfg ▸ General ▸ VoltageBattery Voltage Regen Cutoff Start
l_battery_regen_cut_start
011001000 VThe input voltage where regen braking current starts to get reduced.

When regenerative braking is used, the controller can dump a large amount of energy into the battery, charging it at higher currents than the actual battery charger.

This setting can be used to avoid overcharging the battery in long downhills or hard regen braking.

Note that beyond this value, regen braking will start to become weaker.
Motor Cfg ▸ General ▸ Current ▸ MotorMotor Current Max
l_current_max
0500060 AMaximum motor current.
Motor Cfg ▸ General ▸ Current ▸ MotorMax Current Scale
l_current_max_scale
011Maximum current scale. This value is multiplied with the maximum current. It is a convenient method to scale the current limits without forgetting the actual maximum value.
Motor Cfg ▸ General ▸ Current ▸ MotorMotor Current Max Brake
l_current_min
-50000-60 AMaximum (braking) motor current. The is the maximum current that will be fed back to the VESC and when braking, thus negative. The energy from the braking current will be fed back to the battery.
Motor Cfg ▸ General ▸ Current ▸ MotorMin Current Scale
l_current_min_scale
011Minimum current scale. This value is multiplied with the minimum current. It is a convenient method to scale the current limits without forgetting the actual maximum value.
Motor Cfg ▸ General ▸ AdvancedDuty Cycle Current Limit Start
l_duty_start
011Start to reduce the current at this duty cycle. Lowering this number will make the motor limit the torque softly when reaching max speed, however, it will also decrease the top speed a bit.
Motor Cfg ▸ General ▸ RPMERPM Limit Start
l_erpm_start
010.8Start to reduce the current at this fraction of the ERPM limit. Lowering this number will make the ERPM limit softer.
Motor Cfg ▸ General ▸ Current ▸ BatteryInput Current Map Filter
l_in_current_map_filter
010.005Input current filter for the mapped Q axis current limit. Range 0.0 to 1.0 where 1.0 is no filtering and the closer to 0.0 the more filtering there is. Filtering the input current before the mapped limit can affect oscillations caused by the limit.
Motor Cfg ▸ General ▸ Current ▸ BatteryInput Current Limit Map Start
l_in_current_map_start
011Start limiting the Q axis current when the input current reaches this fraction of the maximum input current. The default value of 100% disables this function. This is useful for limiting the input current when using field weakening and MTPA.

Setting this value too low will limit the current more than needed and setting it too high can lead to oscillation close to the maximum current. A value of 80-90% is a good starting point.
Motor Cfg ▸ General ▸ Current ▸ BatteryBattery Current Max
l_in_current_max
0500099 AThe maximum current that can be drawn from the battery. The battery current is always lower than or equal to the motor current.
Motor Cfg ▸ General ▸ Current ▸ BatteryBattery Current Max Regen
l_in_current_min
-50000-60 AThe maximum regenerative current that can be fed to the battery (thus negative). The battery current is always lower than or equal to the motor current.
Motor Cfg ▸ General ▸ AdvancedMaximum Duty Cycle
l_max_duty
010.95 %Maximum allowed duty cycle.
Motor Cfg ▸ General ▸ RPMMax ERPM
l_max_erpm
01e+06100000The maximum electrical RPM.
Motor Cfg ▸ BLDC ▸ AdvancedMax ERPM Full Brake
l_max_erpm_fbrake
01e+06300The maximum ERPM at which a full brake is allowed (BLDC Only).
Motor CfgMax ERPM Full Brake Current Control
l_max_erpm_fbrake_cc
01e+061500The ERPM below which a direction change is allowed in current control (BLDC Only).
Motor Cfg ▸ General ▸ AdvancedMaximum Input Voltage
l_max_vin
0110057 VThe input voltage above which a fault code is thrown.
Motor Cfg ▸ General ▸ AdvancedMinimum Duty Cycle
l_min_duty
010.005 %Minimum allowed duty cycle.
Motor Cfg ▸ General ▸ RPMMax ERPM Reverse
l_min_erpm
-1e+060-100000The maximum reverse electrical RPM.
Motor Cfg ▸ General ▸ AdvancedMinimum Input Voltage
l_min_vin
011008 VThe input voltage below which a fault code is thrown.
Motor Cfg ▸ General ▸ Current ▸ MotorSlow ABS Current Limit
l_slow_abs_current
0Use the filtered current for the ABS max fault code. Will not trigger as easily on very short spikes.
Motor Cfg ▸ General ▸ Temperature ▸ GeneralAcceleration Temperature Decrease
l_temp_accel_dec
010.15 %Decrease the motor and MOSFET temperature limits by this amount during acceleration. This is useful to still have braking torque left when the components get warm. A decrease of 0 % means that the acceleration temperature limits are the same as the braking temperature limits, and a decrease of 100 % meanse that the acceleration temperature limits are at 25 °C.
Motor Cfg ▸ General ▸ Temperature ▸ MOSFETMOSFET Temp Cutoff End
l_temp_fet_end
0190100 °CThe MOSFET temperature above which motor current is not allowed and a fault is thrown.
Motor Cfg ▸ General ▸ Temperature ▸ MOSFETMOSFET Temp Cutoff Start
l_temp_fet_start
019085 °CThe MOSFET temperature at which motor current starts to get reduced.
Motor Cfg ▸ General ▸ Temperature ▸ MotorMotor Temp Cutoff End
l_temp_motor_end
0190100 °CThe motor temperature above which motor current is not allowed and a fault is thrown.
Motor Cfg ▸ General ▸ Temperature ▸ MotorMotor Temp Cutoff Start
l_temp_motor_start
019085 °CThe motor temperature at which motor current starts to get reduced.
Motor Cfg ▸ General ▸ WattageMaximum Wattage
l_watt_max
02e+061.5e+06 WMaximum allowed wattage output. If your region has laws that only allow a limited wattage, this parameter can be useful. However, keep in mind that limiting the wattage does not make much sense in practice since torque, heat losses, mechanical wear and component load are all current dependent.

Notice that setting this parameter to a very high value essentially disables it, which is why the default value is high. The other limits will still apply.
Motor Cfg ▸ General ▸ WattageMaximum Braking Wattage
l_watt_min
-2e+060-1.5e+06 WMaximum allowed braking wattage (thus negative). There usually aren't any laws limiting how much braking is allowed, and limiting the wattage does not make much sense in general, so this parameter is present mostly for the sake of completeness. There might be some applications where limiting the braking wattage is useful though.

Notice that setting this parameter to a very high value essentially disables it, which is why the default value is high. The other limits will still apply.
Refloat Cfg ▸ General ▸ LEDs ▸ GeneralDirection Transition
leds.direction_transition
FadeTransition used when you change ride direction to switch from headlights to taillights on the front and back LED strips. Not used if you have headlights off.
Refloat Cfg ▸ General ▸ LEDs ▸ FrontFront Brightness
leds.front.brightness
010.5%Front LED strip brightness when headlights are off.

Note: On very low brightness levels the LEDs will lose color precision and eventually turn off completely. This is a limitation of the LED strips and can't be alleviated.
Refloat Cfg ▸ General ▸ LEDs ▸ FrontFront Primary Color
leds.front.color1
RedFront primary color.

Note: There are three whites due to the extra white channel on RGBW LEDs:
White (full) is full brightness on all four channels, the brightest it can be. It also consumes the most power. On RGB LEDs, this is the same as White (rgb).
White (rgb) is the white of the three RGB channels.
White (single) only works on RGBW and is the single white channel. It's black on RGB-only LEDs. Less bright than White (full), but consumes significantly less power.
Refloat Cfg ▸ General ▸ LEDs ▸ FrontFront Secondary Color
leds.front.color2
BlackFront secondary color (used for most of the animated modes).
Refloat Cfg ▸ General ▸ LEDs ▸ FrontFront Mode
leds.front.mode
Knight RiderFront LED strip mode (effect) when headlights are off.
Refloat Cfg ▸ General ▸ LEDs ▸ FrontFront Speed
leds.front.speed
0151Front animation speed.
Refloat Cfg ▸ General ▸ LEDs ▸ HeadlightsHeadlights Brightness
leds.headlights.brightness
010.5%Forward-facing strip (switches according to ride direction) brightness when headlights are on.

Note: Default is conservatively set to 50%. Set to 100% to get the maximum headlights brightness.

Note: On very low brightness levels the LEDs will lose color precision and eventually turn off completely. This is a limitation of the LED strips and can't be alleviated.
Refloat Cfg ▸ General ▸ LEDs ▸ HeadlightsHeadlights Primary Color
leds.headlights.color1
White (full)Headlights primary color.

Note: There are three whites due to the extra white channel on RGBW LEDs:
White (full) is full brightness on all four channels, the brightest it can be. It also consumes the most power. On RGB LEDs, this is the same as White (rgb).
White (rgb) is the white of the three RGB channels.
White (single) only works on RGBW and is the single white channel. It's black on RGB-only LEDs. Less bright than White (full), but consumes significantly less power.
Refloat Cfg ▸ General ▸ LEDs ▸ HeadlightsHeadlights Secondary Color
leds.headlights.color2
BlackHeadlights secondary color (used for most of the animated modes).
Refloat Cfg ▸ General ▸ LEDs ▸ HeadlightsHeadlights Mode
leds.headlights.mode
SolidForward-facing strip (switches according to ride direction) mode (effect) when headlights are on.
Refloat Cfg ▸ General ▸ LEDs ▸ HeadlightsHeadlights Speed
leds.headlights.speed
0151Headlights animation speed.
Refloat Cfg ▸ General ▸ LEDs ▸ GeneralHeadlights On
leds.headlights_on
1Turns headlights and tail lights on or off. Headlights and taillights activate when you engage the board (using the Headlights Transition). They switch according to the direction you ride.

Primary use of headlights is the white and red light for riding at night, but the settings are the exact same for Headlights, Taillights, Front and Rear. Use headlights to get whatever cool effect you want that'll switch to nose/tail according to the direction you ride.
Refloat Cfg ▸ General ▸ LEDs ▸ GeneralHeadlights Transition
leds.headlights_transition
FadeTransition to and from headlights and taillights. Occurs when you engage the board if you have the headlights on.
Refloat Cfg ▸ General ▸ LEDs ▸ GeneralLights Off When Lifted
leds.lights_off_when_lifted
1When enabled, turns off front and rear leds when you lift the board nose up (pitch angle > 60°). So that the LEDs don't blast into your eyes when you carry it.
Refloat Cfg ▸ General ▸ LEDs ▸ GeneralLEDs On
leds.on
1Turns LEDs on or off completely.
Refloat Cfg ▸ General ▸ LEDs ▸ RearRear Brightness
leds.rear.brightness
010.5%Rear LED strip brightness when headlights are off.

Note: On very low brightness levels the LEDs will lose color precision and eventually turn off completely. This is a limitation of the LED strips and can't be alleviated.
Refloat Cfg ▸ General ▸ LEDs ▸ RearRear Primary Color
leds.rear.color1
AzureRear primary color.

Note: There are three whites due to the extra white channel on RGBW LEDs:
White (full) is full brightness on all four channels, the brightest it can be. It also consumes the most power. On RGB LEDs, this is the same as White (rgb).
White (rgb) is the white of the three RGB channels.
White (single) only works on RGBW and is the single white channel. It's black on RGB-only LEDs. Less bright than White (full), but consumes significantly less power.
Refloat Cfg ▸ General ▸ LEDs ▸ RearRear Secondary Color
leds.rear.color2
BlackRear secondary color (used for most of the animated modes).
Refloat Cfg ▸ General ▸ LEDs ▸ RearRear Mode
leds.rear.mode
PulseRear LED strip mode (effect) when headlights are off.
Refloat Cfg ▸ General ▸ LEDs ▸ RearRear Speed
leds.rear.speed
0151Rear animation speed.
Refloat Cfg ▸ General ▸ LEDs ▸ StatusStatus Brightness (Headlights Off)
leds.status.brightness_headlights_off
010.5%Status brightness when headlights are off, intended to be daylight-level brightness. Set high so that you can see the status in direct sunlight.

Note: On very low brightness levels the LEDs will lose color precision and eventually turn off completely. This is a limitation of the LED strips and can't be alleviated.
Refloat Cfg ▸ General ▸ LEDs ▸ StatusStatus Brightness (Headlights On)
leds.status.brightness_headlights_on
010.2%Status brightness when headlights are on, intended to be night-time brightness. Set low so that the status bar doesn't glare into your eyes when it's dark.

Note: On very low brightness levels the LEDs will lose color precision and eventually turn off completely. This is a limitation of the LED strips and can't be alleviated.
Refloat Cfg ▸ General ▸ LEDs ▸ StatusStatus Idle Timeout
leds.status.idle_timeout
03000sAmount of seconds after which the status bar hoes into Idle. In Idle the status bar shows an animation which can be configured just like the Front / Rear animations.

Set to 0 to disable Idle.
Refloat Cfg ▸ General ▸ LEDs ▸ StatusMotor Utilization Threshold
leds.status.motor_utilization_threshold
0.1510.6%Threshold above which motor utilization is shown on the status bar (instead of the battery). Motor utilization is the maximum of duty cycle, motor current saturation, and battery current saturation. Note there is a 10% hysteresis, meaning if motor utilization shows at 60%, it will keep showing until it drops below 50% (to avoid constant blinking).

The colors are as follows:Duty cycle: amber
Motor current: pink
Battery current: teal

Note: Since duty above 95% is not achievable and you're unlikely to ever benefit from values above 90% being shown on your status bar, duty level of 90% is scaled to 100% on the status bar to make full use of its real estate.
Refloat Cfg ▸ General ▸ LEDs ▸ StatusRed Color Bar Percentage
leds.status.red_bar_percentage
00.50.2%Percentage threshold at which the low end of the battery bar and the high end of the duty bar will be colored red. Mainly intended for fine-tuning the amount of red LEDs on status bars with different LED counts.
Refloat Cfg ▸ General ▸ LEDs ▸ StatusShow Sensor Indicators While Running
leds.status.show_sensors_while_running
1When on, the blue footpad sensor indicators will show while running, if at least one of the sensors is deactivated. When off, no footpad sensor indicators will be shown.
Refloat Cfg ▸ General ▸ LEDs ▸ Status IdleStatus Idle Brightness
leds.status_idle.brightness
010.3%Status brightness when in Idle.

Note: On very low brightness levels the LEDs will lose color precision and eventually turn off completely. This is a limitation of the LED strips and can't be alleviated.
Refloat Cfg ▸ General ▸ LEDs ▸ Status IdleStatus Idle Primary Color
leds.status_idle.color1
RedStatus Idle primary color.

Note: There are three whites due to the extra white channel on RGBW LEDs:
White (full) is full brightness on all four channels, the brightest it can be. It also consumes the most power. On RGB LEDs, this is the same as White (rgb).
White (rgb) is the white of the three RGB channels.
White (single) only works on RGBW and is the single white channel. It's black on RGB-only LEDs. Less bright than White (full), but consumes significantly less power.
Refloat Cfg ▸ General ▸ LEDs ▸ Status IdleStatus Idle Secondary Color
leds.status_idle.color2
BlackStatus Idle secondary color.

Note: There are three whites due to the extra white channel on RGBW LEDs:
White (full) is full brightness on all four channels, the brightest it can be. It also consumes the most power. On RGB LEDs, this is the same as White (rgb).
White (rgb) is the white of the three RGB channels.
White (single) only works on RGBW and is the single white channel. It's black on RGB-only LEDs. Less bright than White (full), but consumes significantly less power.
Refloat Cfg ▸ General ▸ LEDs ▸ Status IdleStatus Idle Mode
leds.status_idle.mode
Knight RiderStatus Idle mode (effect). Set Status Idle Timeout to a non-zero value to enable the Status Idle mode.
Refloat Cfg ▸ General ▸ LEDs ▸ Status IdleStatus Idle Speed
leds.status_idle.speed
0151Status Idle animation speed.
Refloat Cfg ▸ General ▸ LEDs ▸ GeneralStatus On Front When Lifted
leds.status_on_front_when_lifted
1Show the status bar on the front LED strip when you lift the board nose up (pitch angle > 60°).

If you have Lights Off When Lifted on at the same time, will go dark after 3 seconds. You can make it show again by pressing the footpad sensor.

Uses the status bar brightness settings.
Refloat Cfg ▸ General ▸ LEDs ▸ TaillightsTaillights Brightness
leds.taillights.brightness
010.5%Backwards-facing strip (switches according to ride direction) brightness when headlights are on.

Note: On very low brightness levels the LEDs will lose color precision and eventually turn off completely. This is a limitation of the LED strips and can't be alleviated.
Refloat Cfg ▸ General ▸ LEDs ▸ TaillightsTaillights Primary Color
leds.taillights.color1
RedTaillights primary color.

Note: There are three whites due to the extra white channel on RGBW LEDs:
White (full) is full brightness on all four channels, the brightest it can be. It also consumes the most power. On RGB LEDs, this is the same as White (rgb).
White (rgb) is the white of the three RGB channels.
White (single) only works on RGBW and is the single white channel. It's black on RGB-only LEDs. Less bright than White (full), but consumes significantly less power.
Refloat Cfg ▸ General ▸ LEDs ▸ TaillightsTaillights Secondary Color
leds.taillights.color2
BlackTaillights secondary color (used for most of the animated modes).
Refloat Cfg ▸ General ▸ LEDs ▸ TaillightsTaillights Mode
leds.taillights.mode
SolidBackwards-facing strip (switches according to ride direction) mode (effect) when headlights are on.
Refloat Cfg ▸ General ▸ LEDs ▸ TaillightsTaillights Speed
leds.taillights.speed
0151Taillights animation speed.
Motor Cfg ▸ General ▸ VoltageBattery Filter Constant
m_batt_filter_const
09945Battery Level Filtering. The higher this number is the more the battery level is filtered. Too little filtering will make the battery level affected by the power draw and too much filtering will prevent the battery level to keep up with changes.
Motor Cfg ▸ BLDC ▸ AdvancedMaximum Switching Frequency
m_bldc_f_sw_max
30004000035000 kHzThe maximum switching frequency in BLDC mode.
Motor Cfg ▸ BLDC ▸ AdvancedMinimum Switching Frequency
m_bldc_f_sw_min
3000400003000 kHzThe minimum switching frequency in BLDC mode.
Motor Cfg ▸ DC ▸ GeneralCurrent Backoff Gain
m_current_backoff_gain
0500.5Gain for the BLDC and DC current backoff. Used to limit the current in duty cycle mode.
Motor Cfg ▸ DC ▸ GeneralSwitching Frequency
m_dc_f_sw
30002500025000 kHzThe switching frequency in DC mode.
Motor Cfg ▸ General ▸ Current ▸ DRV8301DRV8301 OC Adjustment
m_drv8301_oc_adj
03119The threshold for the over current protection feature of the DRV8301. Lower values correspond to lower currents. See the datasheet for more information about this setting.

Notice
This setting only has impact on hardware with the DRV8301
Motor Cfg ▸ General ▸ Current ▸ DRV8301DRV8301 OC Mode
m_drv8301_oc_mode
Current LimitThe mode for the over current protection feature of the DRV8301. The over current protection in the DRV8301 works by measuring the voltage drop across the MOSFETs and shuts them off of it exceeds a configurable limit.

Notice
This setting only has impact on hardware with the DRV8301
Motor Cfg ▸ DC ▸ GeneralDuty Ramp Step Max
m_duty_ramp_step
010.02Maximum duty cycle ramp step for DC and BLDC motors.
Motor Cfg ▸ General ▸ Sensors ▸ Sin/Cos EncoderCosine Amplitude
m_encoder_cos_amp
0.0121 VAmplitude of the cosine-input in volts.
Motor Cfg ▸ General ▸ Sensors ▸ Sin/Cos EncoderCosine Offset
m_encoder_cos_offset
03.31.65 VCosine offset in volts.
Motor Cfg ▸ General ▸ Sensors ▸ ABI EncoderEncoder counts
m_encoder_counts
0300000008192ABI Encoder
Number of counts for the A-B-Index encoder. This usually is the encoder resolution times 4, since every edge in the quadrature signal is counted. This setting only matters when using an ABI encoder.
Motor Cfg ▸ General ▸ Sensors ▸ Sin/Cos EncoderSine Amplitude
m_encoder_sin_amp
0.0121 VAmplitude of the sine-input in volts.
Motor Cfg ▸ General ▸ Sensors ▸ Sin/Cos EncoderSine Offset
m_encoder_sin_offset
03.31.65 VSine offset in volts.
Motor Cfg ▸ General ▸ Sensors ▸ Sin/Cos EncoderSin/Cos Filter Constant
m_encoder_sincos_filter_constant
010.5Sin/Cos Encoder low pass filter constant. Will affect the ratio between lag and noise on the encoder position feedback. Range 0 to 1, where 0 has the lowest noise and most phase lag, and 1 has no lag and unfiltered noise.
Motor Cfg ▸ General ▸ Sensors ▸ Sin/Cos EncoderSin/Cos Phase Correction
m_encoder_sincos_phase_correction
-45450 °Sin/Cos Phase error compensation in deg. Some sin/cos encoders do not output perfect 90° phase between sin and cos signals. This parameter allows for compensating a phase error between sin and cos signals.
Motor Cfg ▸ General ▸ AdvancedFault Stop Time
m_fault_stop_time_ms
-130000000500 msAmount of time to leave the motor disabled after a fault code.
Motor Cfg ▸ FOC ▸ Hall SensorsHall Sensor Extra Samples
m_hall_extra_samples
0993Read the hall sensor port this many extra samples and use a median filter. Increasing this number will reduce noise on the hall sensor readings, but makes the motor control interrupt take longer and thus limits the maximum switching frequency.
Motor Cfg ▸ General ▸ GeneralInvert Motor Direction
m_invert_direction
0Invert the motor direction. This option can be used to make the motor turn in the opposite direction. All state and control commands in mc_interface will respect this setting, so it should work as well as swithcing two motor cables for all applications.
Motor Cfg ▸ General ▸ Temperature ▸ Motor Temperature Sensor TypeMotor Temperature Sensor Type
m_motor_temp_sens_type
NTC 10K at 25°CMotor temperature sensor type. Most small hobby motors have a 10K NTC thermistor, whereas some larger motors have 1K PTC thermistors (such as the KTY84).
Motor Cfg ▸ General ▸ Temperature ▸ Motor Temperature Sensor TypeBeta Value for Motor Thermistor
m_ntc_motor_beta
1001000003380 KBeta Value for Motor Thermistor.
Motor Cfg ▸ General ▸ Temperature ▸ Motor Temperature Sensor TypeCustom NTC/PTC Resistance
m_ntcx_ptcx_res
10020000010000Resistance of custom NTC/PTC resistor.
Motor Cfg ▸ General ▸ Temperature ▸ Motor Temperature Sensor TypeCustom NTC/PTC Base Temperature
m_ntcx_ptcx_temp_base
-27450025 °CBase temperature of custom NTC/PTC resistor.
Motor Cfg ▸ General ▸ AdvancedAuxiliary Output Mode
m_out_aux_mode
OffAuxiliary output mode. Can be used to e.g. activate a relay after a certain delay for bus capacitor precharging.
Motor Cfg ▸ General ▸ Temperature ▸ Motor Temperature Sensor TypeCoefficient for PTC Motor Thermistor
m_ptc_motor_coeff
0.051000.61 %/KCoefficient for PTC Motor Thermistor. Unit: %/K
Motor Cfg ▸ General ▸ SensorsSensor Port Mode
m_sensor_port_mode
Hall SensorsMode for the sensor port. Can be changed for compatibility with different rotor position sensors. Notice that this setting does not have any impact when running sensorless.

The modes are:

Hall Sensors
The motor has hall sensors built in which give a position resolution of 120 degrees.

ABI Encoder
A rotary encoder with A-B-Index output. Notice that this encoder does not help until the index pulse is found, so when running FOC open loop mode will be used for up to one mechanical revolution to find the index position when trying to run a motor for the first time after a power cycle.

Notice that you also have to set the number of encoder counts in order to use this type of encoder. This usually is the number of pulses per revolution times 4, since every edge of both pulse trains is counted.

AS5047 Encoder
An AS5047 magnetic encoder connected over SPI. This one provides absolute positions from start, but tends to have a bit of nonlinearity.

AS5X47U Encoder
An AS5147U or AS5247U magnetic encoder connected over SPI. It is similar to the AS5047 but with additional safety features making it capable of automotive safety levels. It must be connected to SPI in the COMM port. To use this encoder, you have to make sure that no app uses UART, I2C, ADC2, or ADC3.

SIN/COS Encoder
A Sin/Cos encoder is a position feedback device similar to a quadrature encoder, except instead of outputting digital pulses, it outputs analog voltages with sinusoidal shapes offset by 90°. Provides absolute positions from the start, but its sensitive to EMI and requires special filtering, transient protections and shielded wiring.

TS5700N8501 Encoder
This encoder uses RS485, so it has to be connected to the COMM port. A RS485-transceiver such as the ADM485 is required, where RX and TX are used as the data lines. ADC1 is used to trigger between RX and TX, which is needed as the communication is half duplex. To use this encoder, you have to make sure that no app uses UART or ADC1.

TS5700N8501 Encoder Multiturn
Same as above, but uses the multiturn function. The angle is divided by 10000, thus can be used for up to 10000 revolutions. The position PID parameters need to be increased by a factor of around 10000 for this to work similarly to the single turn mode. Note that this is not a good implementation and needs improvement in the future. 180 degrees PID setpoint corresponds to multiturn position 0.

MT6816 Encoder
A magnetic encoder using a high speed SPI communication. Provides absolute position from start. It has to be connected to a hardware-based SPI peripheral.

BISSC Encoder
This encoder uses RS422, so it has to be connected to the COMM port for high speed communication. A RS422-transceiver such as the MAX490 is required, where CLK and MISO are used as clock and data input lines. To use this encoder, you have to make sure that no app uses UART or ADC1. The ABI resolution field is used to set the BISSC encoder accuracy: 2^(BissC Resolution)

TLE5102 Encoder
A magnetic encoder using the bidirectional SSC protocol. Provides absolute position from start and error protected communication. Currently both “SSC SW” and “SSC HW” use software bitbanging. “SSC SW” uses the hall connector pins which must not have filters. “SSC HW” uses the 7-8 pin adc/uart connector. Recommend 5v sensor power.
Wires must be shielded and/or run together or you will get communication errors.“SSC SW” Connections: H1 = SCK, H2 = DATA , H3 = CS “SSC HW” Connections: ADC1 = SCK, TX = DATA , NSS = CS

Custom Encoder
This means that a native library is loaded that handles reading of the encoder and provides the decoded angle. LispBM can also be used to implement a custom encoder.

PWM
Use the PPM/PWM input for the encoder. Make sure that the PPM-app is disabled.

PWM + ABI
Use the PPM/PWM input until the ABI index-pulse is found, then switch to ABI mode. Make sure that the PPM-app is disabled.

MA782
MPS MA782 encoder. Require HW SPI.

AMT22 (SW SPI)
AMT22 encoder connected over software SPI on the hall sensor port. SCK connects to HALL1, MISO to HALL2 and CS to HALL3. Note that MOSI on the encoder must be connected to GND.
Refloat Cfg ▸ General ▸ Tune ▸ Balance (Mahony) FilterPitch KP
mahony_kp
0.232KP for the pitch axis of the Mahony IMU Filter
Defines the amount of accelerometer correction applied to the pitch axis (forward-backward tilt) of the Mahony filter.

In practice, increasing this value will loosen up the board, specifically in the center of the board and in how quickly it rebounds to level. If you want a snappier board, drop this down a bit. If you want things a bit looser, with increased board angle control, bump it up a notch or two.

Technically, this value affects how the board behaves when experiencing acceleration. With a higher value, harder acceleration will make the nose softer, and harder deceleration/braking will make the tail softer.

This parameter is amongst those that have the most impact on the feel of the ride and how the board behaves in undulated terrain.

Recommended Values: 1.5 - 2.5 (Caution with higher or lower values!)
Refloat Cfg ▸ General ▸ Tune ▸ Balance (Mahony) FilterRoll KP
mahony_kp_roll
031.4KP for the roll axis of the Mahony IMU Filter
Defines the amount of accelerometer correction applied to the roll axis (board sideways rotation) of the Mahony filter.

High Pitch KP makes the board response mellow and makes the tilt "linger" longer. This is not desireable for the roll axis, because as the board rotates in yaw during a turn, roll becomes pitch. If you roll a board to the side when making a turn, the angle will propagate into your pitch and the nose will be dipping when turning. This effect is presumably more pronounced with roundier tires.

Setting the Roll KP lower than Pitch KP will make the nose hold up better in turns and make the board stiffer in general, and especially in tight carves.

However, unequal axes KPs skew the Mahony's mathematical model and setting Roll KP too low brings unwanted side-effects, like the board being twitchy and the nose lifting too much during sudden rotations.

Recommended Values: 0.8 - 1.8
Refloat Cfg ▸ Internal ▸ MetaConfig is Default
meta.is_default
1An internal flag indicating the config has default values, meaning it has been reset. Used for the auto-backup feature.
Motor Cfg ▸ Additional Info ▸ GeneralMotor Brand
motor_brand
The motor brand, e.g. Turnigy.
Motor CfgMotor Description
motor_description
A motor description can be edited here.This is an editor where a description can be stored for your motor configuration. Images can also be inserted. Notice that this information is not written to the VESC, so it has to be stored in an XML file.
Motor Cfg ▸ Additional Info ▸ GeneralMotor Model
motor_model
The motor model, e.g. 6374 168KV.
Motor Cfg ▸ Additional Info ▸ QualityBearing Quality
motor_quality_bearings
-550Motor bearing quality. 0 is neutral/unknown, negative is bad and positive is good.
Motor Cfg ▸ Additional Info ▸ QualityConstruction Quality
motor_quality_construction
-550Motor construction quality. 0 is neutral/unknown, negative is bad and positive is good.
Motor CfgQuality Description
motor_quality_description
Some comments about the motor quality. Images can be added as well.A text summary of the motor quality.
Motor Cfg ▸ Additional Info ▸ QualityMagnet Quality
motor_quality_magnets
-550Motor magnet quality. 0 is neutral/unknown, negative is bad and positive is good.
Motor Cfg ▸ Additional Info ▸ GeneralPosition Sensor
motor_sensor_type
No sensorDoes this motor come with some kind of position sensor?
Motor Cfg ▸ General ▸ GeneralMotor Type
motor_type
FOCBLDC
Trapezoidal commutation mode for PMSM motors.

DC
DC motor. A DC motor is connected to phase 1 and phase 3.

FOC
Field Oriented Control (FOC) for PMSM (or BLDC) motors. The motor is commutated with sine waves instead of a trapezoidal waveform as is the case for BLDC commutation. FOC runs the motors more quietly (especially at low speed and high load), is slightly more efficient and provides automatic optimal timing.

GPD
General Purpose Drive between phase 1 and 3. Should be used with a custom application on the VESC, or on the computer with the VESC Tool backend providing samples.
Motor Cfg ▸ Additional Info ▸ GeneralMotor Weight
motor_weight
05000000 gThe weight of the motor in grams.
App Cfgnone
new_parameter
TODO
Refloat Cfg ▸ General ▸ Tune Modifiers ▸ Nose AnglingNose Angling Speed
noseangling_speed
01005 °/sMaximum Rate at which nose will tilt to the desired angle during Constant and/or Variable Tiltback.
Motor Cfg ▸ PID Controllers ▸ General ▸ Position ControllerPosition Angle Division
p_pid_ang_div
01000001Angle division for the position controller. Can be used to map one control rotation to several motor rotations.
Motor Cfg ▸ PID Controllers ▸ General ▸ Position ControllerGain Decrease Angle
p_pid_gain_dec_angle
030000 °Decrease position PID-gains when the errors is below this angle in electrical degrees. Helps at low speed when using low resolution encoders, such as hall sensors. A value of around 300 seems to work ok with hall sensors.
Motor Cfg ▸ PID Controllers ▸ General ▸ Position ControllerPosition PID Kd
p_pid_kd
0100000Derivative gain for the position controller.
Motor Cfg ▸ PID Controllers ▸ General ▸ Position ControllerPosition PID Kd Filter
p_pid_kd_filter
010.2Filter on derivative term for position controller. The range is 0 to 1, where 0 is the maximum amount of filtering (infinite) and 1 is no filtering.
Motor Cfg ▸ PID Controllers ▸ General ▸ Position ControllerPosition PID Kd Process
p_pid_kd_proc
0100000.00035Derivative gain for the position controller. This derivative term is applied on the process variable (position_now) only and not on the error term (position_set - position_now). This way oscillations can be dampened without amplifying control signal input.
Motor Cfg ▸ PID Controllers ▸ General ▸ Position ControllerPosition PID Ki
p_pid_ki
0100000Integral gain for the position controller.
Motor Cfg ▸ PID Controllers ▸ General ▸ Position ControllerPosition PID Kp
p_pid_kp
0100000.025Proportional gain for the position controller.
Motor Cfg ▸ PID Controllers ▸ General ▸ Position ControllerPosition PID Offset Angle
p_pid_offset
-3603600 °Angle offset for the position controller.
App Cfg ▸ General ▸ GeneralPairing Done
pairing_done
0Pairing done flag. If this flag is set, a bluetooth connection can only be made if the VESC Tool instance making the connection has been paired to this VESC. The pairing is done by storing the UUID of the VESC in the pairing list.
Refloat Cfg ▸ General ▸ Startup ▸ HoldingParking Brake
parking_brake_mode
IdleParking Brake is a strong brake keeping the motor from turning at standstill. It is applied via shorting the motor phases on Firmware 6.05+.

Possible values:
Always: Parking Brake is applied whenever the board is not engaged and motor is turning slower than 2000 ERPM. If the motor is turning faster, Brake Current is applied.
Idle: Parking Brake is activated once the motor stops turning after disengaging. When disengaging while the motor is running, only Brake Current is applied (allowing for tricks like ghost ride, etc.).
Never: Only Brake Current is applied when disengaged.
App Cfg ▸ General ▸ GeneralEnable Permanent UART
permanent_uart_enabled
1Enable the permanent UART port (if the hardware has one). This port can be connected to e.g. the NRF51 for providing a BLE link. You may want to disable this to prevent access to your VESC over BLE.
Refloat Cfg ▸ General ▸ Pushback Alerts ▸ General ConfigPersistent Fatal Error
persistent_fatal_error
1When enabled, any serious problem (even if only momentary) like a firmware fault will set a Fatal Error state which will need to be cleared via Vesc Tool or power cycling the board.

Fatal Error state is signalled via Pushback and Haptic Feedback (four beeps).
Motor Cfg ▸ BLDC ▸ AdvancedPWM Mode
pwm_mode
SynchronousThe PWM mode to use for BLDC motors. Synchronous is the most tested and recommended mode. The others are likely to cause problems.
Refloat Cfg ▸ General ▸ Remote ▸ Remote ThrottleThrottle Current Maximum
remote_throttle_current_max
0500 AMax Current able to be applied using Remote Throttle, allowing the control of the board using your remote's throttle when disengaged. Actual current applied is linearly scaled up to Max Current, based on your throttle percentage.

Recommended Values: 5A - 10A

*DISCLAIMER: Make sure your remote idles at 0% throttle!! Otherwise, current will be continually request, which can drain your battery. Reference "Remote Input" in AppUI Tab of VESC Tool. If it is not idling at 0%, you must either tweak Input Deadband above, or properly calibrate your remote.
Refloat Cfg ▸ General ▸ Remote ▸ Remote ThrottleGrace Period
remote_throttle_grace_period
06010 sDelay after disengaging, during which Remote Throttle cannot be used.

*DISCLAIMER: Be CAUTIOUS if using a Grace Period of/near 0 seconds!! A short delay can lead to accidental throttle if using Remote Tilt as the board disengages.
Motor Cfg ▸ PID Controllers ▸ General ▸ Speed ControllerAllow Braking
s_pid_allow_braking
1Allow the speed controller to apply braking current. In general this option should be enabled, but for some applications it might make sense to disable braking during speed control.
Motor Cfg ▸ PID Controllers ▸ General ▸ Speed ControllerSpeed PID Kd
s_pid_kd
0100000.0001Derivative gain for the speed controller. FOC and BLDC need different parameters because their speed controllers differ.
Motor Cfg ▸ PID Controllers ▸ General ▸ Speed ControllerSpeed PID Kd Filter
s_pid_kd_filter
010.2Filter on derivative term for speed controller. The range is 0 to 1, where 0 is the maximum amount of filtering (infinite) and 1 is no filtering.
Motor Cfg ▸ PID Controllers ▸ General ▸ Speed ControllerSpeed PID Ki
s_pid_ki
0100000.004Integral gain for the speed controller. FOC and BLDC need different parameters because their speed controllers differ.
Motor Cfg ▸ PID Controllers ▸ General ▸ Speed ControllerSpeed PID Kp
s_pid_kp
0100000.004Proportional gain for the speed controller. FOC and BLDC need different parameters because their speed controllers differ.
Motor Cfg ▸ PID Controllers ▸ General ▸ Speed ControllerMinimum ERPM
s_pid_min_erpm
01e+06900ERPM below which the speed controller is disabled.
Motor Cfg ▸ PID Controllers ▸ General ▸ Speed ControllerRamp eRPMs per second
s_pid_ramp_erpms_s
-110000025000This allows to control how fast the input of the speed command is allowed to increase each second. If user does not want to use this ramp, just apply a negative value such as -1.0. Only positive values are considered.
Motor Cfg ▸ PID Controllers ▸ General ▸ Speed ControllerSpeed Source
s_pid_speed_source
PLLSpeed source for the PID speed controller.

PLL
Phase locked loop. Low noise, but slow response.

Fast Estimator
Filtered phase difference per time. Faster than the PLL but more noise.

Faster Estimator
Same as fast estimator, but less filtering. Fastest update but the most noise.
Motor Cfg ▸ BLDC ▸ GeneralSensor Mode
sensor_mode
SensorlessSensor mode for BLDC commutation. Hybrid means that sensors will be used at low speed and sensorless at high speed.
App Cfg ▸ General ▸ GeneralEnable Servo Output
servo_out_enable
0Enable servo output on PPM-port when PPM-app is disabled.
App Cfg ▸ General ▸ GeneralShutdown Mode
shutdown_mode
OFF_AFTER_30MShutdown mode for hardware that supports it (such as the VESC HD). Determines how the VESC shuts itself off, which eliminates the need for an external switch.

NOTE: Most VESCs with this feature also support push to start, which means that the VESC will switch on as soon as the motor is turned at a minimum speed.

The available modes are:

ALWAYS_OFF
The VESC power is only determined by the inverted state of the shutdown input.

ALWAYS_ON
The VESC always stays on after being powered.

TOGGLE_BUTTON_ONLY
A normally closed (NC) momentary button can be connected to the shutdown input to toggle the power on or off. The VESC will sample the button and determine whether it is pressed, which can be used to shut down after the button is released.

OFF_AFTER_x
Same as the TOGGLE_BUTTON_ONLY mode, but the VESC will shut down after X time of inactivity. This mode is useful for setups without any switch at all if the hardware supports push to start, such as the VESC HD.
Motor Cfg ▸ Additional Info ▸ SetupBattery Capacity
si_battery_ah
010006 AhBattery capacity in ampere hours.
Motor Cfg ▸ Additional Info ▸ SetupBattery Cells Series
si_battery_cells
12553Battery cells in series.
Motor Cfg ▸ Additional Info ▸ SetupBattery Type
si_battery_type
BATTERY_TYPE_LIION_3_0__4_2Battery Type

BATTERY_TYPE_LIION_3_0__4_2,
Lithium ion, voltage range: 3.0 to 4.2

BATTERY_TYPE_LIIRON_2_6__3_6,
Lithium iron phosphate, voltage range: 2.6 to 3.6

BATTERY_TYPE_LEAD_ACID
Lead Acid, voltage range: 2.1 to 2.36
Motor Cfg ▸ Additional Info ▸ SetupGear Ratio
si_gear_ratio
099993Gear ratio. For example, if the motor has a 12 tooth pulley and the wheel has a 36 tooth pulley, the gear ratio is:

36 / 12 = 3.0
Motor Cfg ▸ Additional Info ▸ SetupMotor No Load Current
si_motor_nl_current
09991 ANo load current for the motor. Can be measured by running the motor at around 50% duty cycle without load and noting the motor current draw.

The no load current can be used in the motor comparison tool for calculating efficiencies and comparing different motors, gear ratios etc.
Motor Cfg ▸ Additional Info ▸ SetupMotor Poles
si_motor_poles
225414Motor pole count. Most outrunners have 14 poles. Inrunners usually have 2 or 4 poles. The motor pole count is required for speed and travel distance calculation.
Motor Cfg ▸ Additional Info ▸ SetupWheel Diameter
si_wheel_diameter
099990.083 mmWheel diameter, in mm.
Motor Cfg ▸ BLDC ▸ SensorlessBEMF Coupling
sl_bemf_coupling_k
05000600BEMF coupling. Roughly describes how much of the input voltage is seen on the BEMF at low modulation. Compensating for that at low speed helps the startup a lot.
Motor Cfg ▸ BLDC ▸ SensorlessCycle Integrator Limit
sl_cycle_int_limit
0300062Cycle integrator limit. This is how much area will be integrated under the back EMF after a zero crossing before doing a commutation. A too low value will cause a too early commutation, and a too high value will cause a too late commutation. A too late commutation will cause more problems than too early commutations.
Motor Cfg ▸ BLDC ▸ AdvancedBR ERPM
sl_cycle_int_rpm_br
01e+0680000The ERPM at which phase advance (timing) is the maximum.
Motor CfgMax Brake Current at Direction Change
sl_max_fullbreak_current_dir_change
050010 AOnly allow motor direction change below this current.
Motor Cfg ▸ BLDC ▸ SensorlessMinimum ERPM
sl_min_erpm
01e+06150Minimum sensorless ERPM (BLDC Only). Run the motor in open loop when the estimated ERPM is below this value.
Motor Cfg ▸ BLDC ▸ SensorlessMinimum ERPM Integrator
sl_min_erpm_cycle_int_limit
01e+061100The minimum ERPM for which the integrator limit is calculated. Setting this too low will make the coupling compensation too large at low speed resulting in bad startup.
Motor Cfg ▸ BLDC ▸ AdvancedPhase Advance at BR ERPM
sl_phase_advance_at_br
010.8Phase (timing) advance at the BR ERPM value. Below that value the advance will be less proportional to the current ERPM.
Motor Cfg ▸ PID Controllers ▸ General ▸ CommonPID Loop Rate
sp_pid_loop_rate
1000 HzRate at which the position and speed controllers run.
Refloat Cfg ▸ General ▸ Startup ▸ Start OptionsStart/Stop Click Current
startup_click_current
0200 AStrength of the noticeable "click" when engaging and disengaging.
0A = Stealthy start
20A = Very noticeable click
Refloat Cfg ▸ General ▸ Startup ▸ Start OptionsEnable Dirty Landings
startup_dirtylandings_enabled
0Allow landing with an extra 10 degrees pitch tilt within 1 second of disengaging both sensors (not active after heel-lift dismount).
Refloat Cfg ▸ General ▸ Startup ▸ TolerancesStartup Pitch Axis Angle Tolerance
startup_pitch_tolerance
0804 °Pitch Angle range from "Level" at which the board is allowed to engage. Measured in degrees from Level (0° Pitch).
Refloat Cfg ▸ General ▸ Startup ▸ Start OptionsEnable Push Start
startup_pushstart_enabled
0Allow starting the board by jumping onto it, regardless of pitch angle, as long as the speed is 1000 ERPM (~2 mph) or higher.
Refloat Cfg ▸ General ▸ Startup ▸ TolerancesStartup Roll Axis Angle Tolerance
startup_roll_tolerance
08045 °Roll Angle (Heel-to-Toe) range from "Flat" at which the board is allowed to engage. Measured in degrees from Flat (0° Roll).
Refloat Cfg ▸ General ▸ Startup ▸ Start OptionsEnable Simple Start
startup_simplestart_enabled
0Allow starting with a single sensor, while still allowing heel-lift dismounts. To avoid accidental re-engagement when heel-lift dismounting, this feature is disabled for one second from the last disengagement.
Refloat Cfg ▸ General ▸ Startup ▸ CenteringStartup Centering Speed
startup_speed
010030 °/sRate at which the board will level itself on startup.
Refloat Cfg ▸ General ▸ Tune Modifiers ▸ Nose AnglingConstant Tiltback
tiltback_constant
-10100 °Tiltback that will be applied above a configurable minimum ERPM. AKA Nose Angle adjustment, can be downwards (negative) too.

*Note: Should not be used to accomodate tilted rail angle! Instead, the IMU calibration should be adjusted accordingly, either manually or using the IMU Wizard. Otherwise, you will experience the opposite of the desired effect while riding backwards.
Refloat Cfg ▸ General ▸ Tune Modifiers ▸ Nose AnglingConstant Tiltback ERPM
tiltback_constant_erpm
200100000500 ERPMERPM (absolute value) above which Constant Tiltback will be applied.*Note: ERPM = RPM * (Motor Poles / 2)For an 11" Tire on a Hypercore Motor (30 Poles):1000 ERPM ≈ 2.2 mph ≈ 3.5 km/h
Refloat Cfg ▸ General ▸ Pushback Alerts ▸ General ConfigDuty Cycle Threshold
tiltback_duty
010.8Duty Cycle threshold to trigger a safety pushback (Pushback raises the nose of the board, informing you to slow down).

Set to 100% to disable.

*DISCLAIMER: Max Duty Cycle on a VESC is 95%, NOT 100%! Reaching 95% Duty Cycle and pushing beyond WILL result in a nosedive.
Refloat Cfg ▸ General ▸ Pushback Alerts ▸ General ConfigPushback Angle
tiltback_duty_angle
0305 °Setpoint angle for Speed and Duty Cycle Pushback.
Refloat Cfg ▸ General ▸ Pushback Alerts ▸ General ConfigPushback Speed
tiltback_duty_speed
0303 °/sRate at which nose is tilted up during Speed and Duty Cycle Pushback (fast pushback can be dangerous!).
Refloat Cfg ▸ General ▸ Specs ▸ Voltage PushbacksHigh Voltage Threshold
tiltback_hv
01504.3 VHigh Voltage threshold to trigger a safety pushback (Pushback raises the nose of the vehicle to alert you). High voltage pushback is most likely to be triggered when braking or going downhill on a full battery, sometimes resulting in a tail drag (take caution!).

Since Refloat 1.2, per-cell value is supported if on firmware version 6.05+.

On firmware 6.05+: Set to a per-cell value (recommended 4.3V, which is now default).

On firmware 6.02: Set to total voltage value, e.g. 4.3V * Cell Count (i.e. for a 15s battery, 4.3V * 15 = 64.5V).
Refloat Cfg ▸ General ▸ Pushback Alerts ▸ High Voltage Alert PushbackPushback Angle
tiltback_hv_angle
0308 °Setpoint angle for High Voltage Pushback.
Refloat Cfg ▸ General ▸ Pushback Alerts ▸ High Voltage Alert PushbackSpeed
tiltback_hv_speed
0301 °/sRate at which nose is tilted up during High Voltage Pushback (fast pushback can be dangerous!).
Refloat Cfg ▸ General ▸ Specs ▸ Voltage PushbacksLow Voltage Threshold
tiltback_lv
01503 VLow Voltage threshold to trigger a safety pushback (Pushback raises the nose of the vehicle informing you to slow down).

Since Refloat 1.2, per-cell value is supported if on firmware version 6.05+.

On firmware 6.05+: Set to a per-cell value (recommended 3.0V, which is now default).

On firmware 6.02: Set to total voltage value, e.g. 3.0V * Cell Count (i.e. for a 15s battery, 3.0V * 15 = 45V).

*DISCLAIMER: Make sure your Voltage Cutoff Start and End (Motor CFG -> General -> Voltage) are below this threshold! LV Pushback should be used as a notice to stop riding immediately, while the Voltage Cutoffs should be used as a last resort measure to protect the battery.

ALWAYS RESPECT LOW VOLTAGE PUSHBACK!
Refloat Cfg ▸ General ▸ Pushback Alerts ▸ Low Voltage Alert PushbackPushback Angle
tiltback_lv_angle
03010 °Setpoint angle for Low Voltage Pushback.
Refloat Cfg ▸ General ▸ Pushback Alerts ▸ Low Voltage Alert PushbackSpeed
tiltback_lv_speed
0301 °/sRate at which nose is tilted up during Low Voltage Pushback (fast pushback can be dangerous!).
Refloat Cfg ▸ General ▸ Pushback Alerts ▸ General ConfigReturn To Level Speed
tiltback_return_speed
0101 °/sRate at which nose is returned from pushback back to normal.
Refloat Cfg ▸ General ▸ Pushback Alerts ▸ General ConfigSpeed Threshold
tiltback_speed
01000 km/hSpeed Threshold to trigger pushback (Pushback raises the nose of the board, informing you to slow down).

Set to 0 to disable.
Refloat Cfg ▸ General ▸ Tune Modifiers ▸ Nose AnglingVariable Tiltback Rate
tiltback_variable
050.3 °/1000 ERPMRate at which the nose angle is adjusted towards Variable Tiltback Target, in degrees per 1000 ERPM.*Note: ERPM = RPM * (Motor Poles / 2)For an 11" Tire on a Hypercore Motor (30 Poles):1000 ERPM ≈ 2.2 mph ≈ 3.5 km/h
Refloat Cfg ▸ General ▸ Tune Modifiers ▸ Nose AnglingVariable Tiltback Start ERPM
tiltback_variable_erpm
01000000 ERPMERPM (absolute value) above which Variable Tiltback will begin to be applied.*Note: ERPM = RPM * (Motor Poles / 2)For an 11" Tire on a Hypercore Motor (30 Poles):1000 ERPM ≈ 2.2 mph ≈ 3.5 km/h
Refloat Cfg ▸ General ▸ Tune Modifiers ▸ Nose AnglingVariable Tiltback Target
tiltback_variable_max
-10100 °Target angle that Variable Tiltback approaches at the specified rate (Variable Tiltback Rate), positive or negative. Added in addition to Constant Tiltback and does not affect or prevent alert pushbacks.
App Cfg ▸ General ▸ GeneralTimeout Brake Current
timeout_brake_current
05000 AApply brake with this amount of current after a timeout.
App Cfg ▸ General ▸ GeneralTimeout
timeout_msec
0300000001000 msSwitch off the motor when no input has beed received for this amount of time. Notice that VESC Tool will send alive packets while connected, so the timeout won't occur before you disconnect VESC Tool even if the input gets disconnected.
Refloat Cfg ▸ General ▸ Tune Modifiers ▸ Torque TiltbackTiltback Angle Limit
torquetilt_angle_limit
0308 °Maximum angle to which Torque Tiltback will tilt.
Refloat Cfg ▸ General ▸ Tune Modifiers ▸ Torque TiltbackMax Tiltback Release Speed
torquetilt_off_speed
01008 °/sMax Rate at which Torque Tiltback will release from the desired angle back to 0 (tilt will be slower if current decreases slowly).
Refloat Cfg ▸ General ▸ Tune Modifiers ▸ Torque TiltbackMax Tiltback Speed
torquetilt_on_speed
010010 °/sMax Rate at which Torque Tiltback will tilt to the desired angle (tilt will be slower if current increases slowly).
Refloat Cfg ▸ General ▸ Tune Modifiers ▸ Torque TiltbackStart Current Threshold
torquetilt_start_current
010015 AMinimum output current threshold for Torque Tiltback to start applying.
Refloat Cfg ▸ General ▸ Tune Modifiers ▸ Torque TiltbackStrength
torquetilt_strength
010.1 °/AHow much Nose Lift should be applied based on output current (Postive / Acceleration Current Only!). Can be used alongside ATR to increase aggressiveness on flat and uphill acceleration, or on its own to ensure some uphill tiltback is applied in the absence of ATR.

Recommended Values: 0 - 0.35
Refloat Cfg ▸ General ▸ Tune Modifiers ▸ Torque TiltbackStrength (Regen)
torquetilt_strength_regen
010.1 °/AHow much Nose Lowering should be applied based on output current (Negative / Regen Current Only!). Can be used alongside ATR to increase aggressiveness on flat and downhill braking, or on its own to ensure some downhill nose lowering is applied in the absence of ATR.

Recommended Values: 0 - 0.35
Refloat Cfg ▸ General ▸ Tune Modifiers ▸ Turn TiltbackTiltback Angle Limit
turntilt_angle_limit
0303 °Maximum angle to which Turn Tiltback will tilt. This wont change the power curve, only stop it at the limit.
Refloat Cfg ▸ General ▸ Tune Modifiers ▸ Turn TiltbackSpeed Boost %
turntilt_erpm_boost
010000200 %Increases the strength based on ERPM. Boost percent is added linearly from 0 ERPM (0% boost) to Max ERPM (Full configured boost % is applied).

*Note: ERPM = RPM * (Motor Poles / 2)For an 11" Tire on a Hypercore Motor (30 Poles):1000 ERPM ≈ 2.2 mph ≈ 3.5 km/h
Refloat Cfg ▸ General ▸ Tune Modifiers ▸ Turn TiltbackSpeed Boost Max ERPM
turntilt_erpm_boost_end
1001000005000 ERPMERPM (absolute value) to end boosting the Turn Tiltback effect. Above this ERPM, there will be constant boost % (at your configured boost %).

*Note: ERPM = RPM * (Motor Poles / 2)For an 11" Tire on a Hypercore Motor (30 Poles):1000 ERPM ≈ 2.2 mph ≈ 3.5 km/h
Refloat Cfg ▸ General ▸ Tune Modifiers ▸ Turn TiltbackMax Tiltback Speed
turntilt_speed
01005 °/sMax Rate at which Turn Tiltback will tilt to the desired angle (tilt will be slower if Yaw Angle increases slowly).
Refloat Cfg ▸ General ▸ Tune Modifiers ▸ Turn TiltbackTurn Aggregate Threshold
turntilt_start_angle
0455 °Minimum Yaw Angle threshold to apply Turn Tiltback. Similar to a deadzone, except after reaching the set angle, it will apply as if it started from 0.
Refloat Cfg ▸ General ▸ Tune Modifiers ▸ Turn TiltbackERPM Threshold
turntilt_start_erpm
1001000002000 ERPMERPM threshold to apply Turn Tiltback.

*Note: ERPM = RPM * (Motor Poles / 2)For an 11" Tire on a Hypercore Motor (30 Poles):1000 ERPM ≈ 2.2 mph ≈ 3.5 km/h
Refloat Cfg ▸ General ▸ Tune Modifiers ▸ Turn TiltbackStrength
turntilt_strength
-30300How much Tiltback should be applied based on turning radius (Yaw) and speed.
Refloat Cfg ▸ General ▸ Tune Modifiers ▸ Turn TiltbackTurn Aggregate Target
turntilt_yaw_aggregate
5036090 °The amount of turning (Yaw) required before reaching max carving strength. Higher values mean a turn must be maintained for longer in order to reach max carving strength.
App Cfg ▸ General ▸ GeneralUAVCAN ESC Index
uavcan_esc_index
02550ESC index in UAVCAN messages.
App Cfg ▸ General ▸ GeneralUAVCAN Raw Throttle Mode
uavcan_raw_mode
Current ControlDrive mode for the raw throttle command in UAVCAN.

Current Control
The raw command corresponds to a fraction of the configured current limit. 1.0 is maximum current forwards and -1.0 is maximum current reverse.

Current No Reverse Brake
Same as current control, but negative values only give braking and don't start the motor in the other direction.

Duty Cycle Control
Duty cycle control.

RPM Control
RPM control. Use the raw command times the maximum configured ERPM value. Negative values will run the motor in reverse. Note that this will set the value in ERPM, so the RPM will be scaled by the number of pole pairs.
App Cfg ▸ General ▸ GeneralUAVCAN Raw RPM Max
uavcan_raw_rpm_max
040000050000Maximum ERPM for the RPM mode of the raw command.
App Cfg ▸ General ▸ GeneralUAVCAN Status Current Mode
uavcan_status_current_mode
Motor CurrentCurrent to send in status message.