VESC Traction Control: What it is, how it works, and how to adjust it

The VESC traction control system is designed to limit wheel slippage on machines with multiple motors. It doesn't measure grip; instead, it compares the rotational speed of the motors connected via the CAN bus and reduces the current to the motor that is spinning faster than the others. It's a simple and effective system on a well-tuned dual-motor scooter, but it's important to understand what it actually does to avoid asking it to perform tasks it's not capable of.

The essentials

  • The option is called "Traction Control" and is configured within the input settings (App ADC, PPM, or VESC Remote) of the main controller.
  • It only works with multiple controllers connected via CAN and with the "Multiple VESCs Over CAN" option enabled.
  • It compares electric motor speeds (ERPM): the motors must be identical, and the wheels must have the same diameter.
  • It only functions during acceleration, in normal operating mode, and not during braking.
  • The only setting is TC Max ERPM Difference: this is the speed difference beyond which the fastest motor is cut off.

The principle: comparing the speed of the motors

On a dual-motor scooter, both wheels move at the same speed as long as they maintain traction. If one wheel starts to slip, for example on a wet surface, on a gravel patch, or during acceleration, it will suddenly spin faster than the other. It is this difference in speed that the traction control system monitors.

Each VESC controller periodically sends status messages over the CAN bus, which include, among other things, the speed of its motor. The main controller, the one connected to the throttle, reads these messages, identifies the slowest motor, and considers that it is providing the actual speed of the vehicle. Any motor that is spinning faster than the slowest one receives less current.

The comparative speed is expressed in ERPM (revolutions per minute), which is the electrical speed: the mechanical speed multiplied by the number of pole pairs in the motor. This is an important point, and we will discuss it further below.

Where are the settings located in the VESC Tool?

Traction control is not a motor setting, but rather a setting for the input signal. In the VESC Tool, open "App Settings", then the page for the input being used (often "ADC" for a trigger, "PPM" for a radio receiver), and go to the "General" tab. You will find the following settings there:

  • Multiple VESCs Over CAN: The main controller listens to the other controllers on the bus and sends them the same commands. Without this option, traction control is not possible.
  • Traction Control: Enables or disables the function.
  • TC Max ERPM Difference: The speed difference, in ERPM, from which the fastest motor is completely cut off.

Only the main controller requires this configuration; the others receive their commands via the CAN bus. The wiring of the CAN bus, the identifiers, and the shared commands are detailed in our guide on connecting two VESC controllers via CAN.

How is the gap transformed into a reduction in current?

According to the public firmware code, the reduction is proportional to the difference:

  • As long as the difference is very small (the code includes a small, fixed tolerance), nothing changes
  • As the difference in speed between the motors increases, the current drawn by the faster motor decreases proportionally
  • When the difference reaches the TC Max ERPM Difference threshold, the motor no longer receives any current at all.

A low value makes traction control very sensitive: it cuts power early, risking intervention even with minor, normal variations. A high value makes it more tolerant: it allows for more wheel slip before cutting power.

Situation:What traction control does
Both wheels have good tractionNothing, both motors receive the same command
One of the wheels is slipping slightlyThe current of this motor decreases proportionally to the distance
One of the wheels is clearly slippingThis motor is disabled until the difference decreases
Both wheels are slipping simultaneouslyNothing: there is no gap to measure
Electric brakingNothing: the function only operates during acceleration

Here are the limitations you should be aware of

Identical motors, identical wheels

Since the comparison is based on ERPM (revolutions per minute), two motors with a different number of poles, or two wheels with different diameters, will have different ERPM values even without any slippage. In this case, the traction control system would perceive constant slippage and could unnecessarily cut off one of the motors. On a scooter with a different motor in the front and rear, or with tires of different sizes, it's best to leave this function disabled.

Turns

When turning, the front wheel and the rear wheel do not follow exactly the same path: the front wheel travels a slightly longer distance. Therefore, an overly restrictive setting can reduce current during turns, at a time when consistent traction is desired. This is a reason not to set the TC Max ERPM Difference too low.

Only in current mode

Traction control is only used in current control modes (Control Type "Current…"), which are the modes typically used on a vehicle. It does not engage in pulse-width modulation (PWM) mode or speed regulation mode. See our guide on VESC control modes.

This is not an automotive anti-lock braking system

This calculation does not use independent wheel speed sensors or an inertial measurement unit. If both wheels are slipping simultaneously, or if the vehicle only has one motor, the function will not detect this. It does not replace a progressive throttle control or properly calibrated ramps.

The adjustment method

  1. Ensure that both motors are detected, rotating in the correct direction, and that the CAN communication is working without traction control engaged.
  2. Activate Traction Control by initially setting a high value for TC Max ERPM Difference.
  3. Ride on a clean surface, first in a straight line and then in a curve, and check that no power loss occurs without a clear reason.
  4. On a low-grip surface, and in a safe environment, observe the reaction to wheel slippage, then gradually tighten the setting in small increments.
  5. Stop immediately if the machine loses traction when cornering or going over bumps: the value has become too low.

Pensez aussi aux rampes d'accélération (Positive Ramping Time) : une montée de couple plus douce évite une partie des patinages avant même que le contrôle de traction n'ait à intervenir. Notre guide de réglage de l'accélérateur et du frein les détaille.

Workshop tip

First, set up a healthy system without traction control: ensure the motors are properly detected, currents are reasonable, and acceleration ramps are smooth. Traction control should then be implemented as a safety net. If it intervenes frequently, it means the requested torque is too aggressive for the terrain or tires. If you prefer to have the installation done by a professional, our workshop can handle it by the hour (https://rage-mechanics.com/en/our-products/1529-labor-30-minutes.html); and for a complete set of controllers, display, and telemetry designed to work together, the RageLink range is coming soon, and there is a waiting list.

Frequently Asked Questions

Does traction control work on a single-motor scooter?

No. It compares the speed of multiple motors connected via the CAN bus. With a single motor, it has no reference point and does nothing.

Should it be enabled on both controllers?

No. It is configured within the main controller's application, with "Multiple VESCs Over CAN" enabled. The other controllers receive their commands via the bus.

Can I use it if my front motor and my rear motor are different?

It's best to avoid it. The comparison is made in ERPM (revolutions per minute). With motors having different numbers of poles or wheels of different sizes, the speeds will differ even without wheel slippage, and the function could incorrectly cut off a motor.

Does the traction control system engage during braking?

No, according to the public firmware code, it only functions during acceleration in the standard mode. The intensity of the electric braking is adjusted using the braking current limits and the ramp settings.

What value should be entered for "TC Max ERPM Difference"?

There is no universal value; it depends on the number of motor poles, the wheel diameter, and the intended use. Start with a wider setting, then gradually tighten it in small increments until the vehicle loses traction when cornering.