Reading and correcting VESC errors: overcurrent, DRV errors, undervoltage, etc.

When a VESC controller shuts down, it almost always records a fault code. This code is the best clue for identifying the cause: it indicates whether the problem stems from current, voltage, temperature, or a sensor. This guide explains how to read these fault codes, and then what the most common ones mean and how to fix them.

The essentials

  • The VESC Tool displays the current fault, and the `faults` command in the terminal lists the faults that have been recorded since the device was powered on.
  • The most common issues encountered with electric scooters relate to current, battery voltage, and temperature.
  • A recurring fault indicates a problem that needs to be addressed, not just a setting that needs to be adjusted.
  • Please note the condition of the machine at the time of the failure: speed, acceleration, battery charge, and temperature.

Read the error codes

Connect to the controller using VESC Tool (see our guide for installing VESC Tool). The current fault is displayed in the status bar and in the real-time data, in the format FAULT_CODE_ followed by its name. In the VESC Tool terminal, the faults command lists the faults that have been recorded since the power-on, along with the controller's status at that moment: current, voltage, temperature, duty cycle, and speed. These values often reveal the cause of the problem.

The recorded error codes are lost when the power is turned off: please read them before switching off the power.

Current faults

ABS_OVER_CURRENT

The current exceeded the absolute maximum limit, and the controller shut down everything. Common causes include: incorrect motor detection, an absolute limit too close to the maximum motor current, position sensors providing incorrect information, or strong vibrations causing inaccurate position estimation. Re-perform the motor detection, check the sensors, and verify the margin between the limits. Refer to our guides on motor detection and current limits.

DRV

The circuit that controls the power transistors has detected a problem. This could be due to a short circuit in one of the phases or within the motor, an unstable power supply, or a damaged power stage. Check the phase cables and the motor's insulation; if the fault persists with the motor disconnected, the controller needs to be inspected.

HIGH_OFFSET_CURRENT_SENSOR and UNBALANCED_CURRENTS

An abnormal current reading at idle, or an imbalance in the currents across the three phases, often indicates a faulty sensor or phase, or a poorly connected phase cable.

Voltage faults

UNDER_VOLTAGE

The input voltage has dropped below the set minimum. On an electric scooter, this is often due to a nearly empty battery, or a battery that is failing under the load because the requested current exceeds what it can provide. Reduce the battery current or check the condition of the battery cells. See our guide on batteries that cut out.

OVER_VOLTAGE

The voltage has exceeded the maximum, which almost always happens during electric braking with a fully charged battery, or when the BMS (Battery Management System) has cut off the charging process. Reduce the "Battery Current Max Regen" and the braking current, and check the "field weakening" setting: a cutoff at high speed with active "field weakening" can cause the voltage to rise. See our guide on "field weakening" in VESC Tool.

GATE_DRIVER_OVER_VOLTAGE, GATE_DRIVER_UNDER_VOLTAGE, MCU_UNDER_VOLTAGE

The internal power supply of the controller is outside its operating range. These errors often indicate a hardware problem or a power supply issue; it is recommended to have it checked.

Temperature faults

OVER_TEMP_FET and OVER_TEMP_MOTOR

The controller or motor has exceeded its temperature limit. To prevent this, the controller gradually reduces the current. Check the controller's cooling system, the current limits, and for the motor, the temperature sensor and its settings. See our guide on motor overheating.

Sensor malfunctions

The ENCODER_… (SPI, SINCOS, NO_MAGNET, MAGNET_TOO_STRONG…) and RESOLVER_… errors relate to the motor position sensor: cable issues, improperly positioned magnets, or a faulty sensor. Refer to our guide on motor position sensors.

Other issues:

  • BOOTING_FROM_WATCHDOG_RESET: The controller restarted after a program crash. A single occurrence might be due to a temporary issue; repeated occurrences require further investigation.
  • FLASH_CORRUPTION and its variants: The memory containing the program or configuration has been corrupted. It is necessary to re-flash or rewrite the configuration.
  • OVERSPEED and ABS_OVERSPEED: The speed has exceeded a set limit.

Workshop tip

Never override a safety limit to eliminate a fault without understanding its cause. A current or voltage fault is a protective mechanism that has activated: disabling it simply means waiting for the next failure, which is often more costly.

For a complete diagnostic procedure, please refer to our guide on scooters that cut out while accelerating. If you prefer to have us handle the troubleshooting, our workshop charges for diagnostics based on labor time.

Frequently Asked Questions

Where can I find the history of errors?

In the VESC Tool terminal, use the "faults" command. This will list any errors that have occurred since the last power-up. Be sure to read these errors before turning off the device.

What does "ABS_OVER_CURRENT" mean?

The current exceeded the absolute limit, and the controller shut down. The most common causes include the need to re-calibrate the motor, faulty position sensors, or an absolute current limit that is too close to the motor's maximum current.

My controller displays "UNDER_VOLTAGE" when I'm accelerating.

The battery is failing under load. Reduce the battery current or have the battery checked: worn-out cells can no longer handle the current.

The DRV fault keeps recurring.

Check the phase cables and the motor's insulation. If the fault persists with the motor disconnected, the power stage of the controller is likely the cause.

OVER_VOLTAGE during braking: what to do?

Reduce the charging current and the braking current, especially when the battery is fully charged, and ensure that the BMS (Battery Management System) is not interrupting the charging process.