Choosing a Motor Controller

This guide explains how to choose the right VESC motor controller for your application. It has been written by the experienced engineers who design our VESC controllers, together with our customer support team, and answers many of the questions most frequently asked by our customers.

The guide is split into two sections:

  1. Designing an Electrical System from Scratch
    For applications where you have not yet selected a battery, motor or controller and need guidance on designing the complete electrical system.
  2. Which VESC Motor Controller Should I Buy?
    For applications where you already have a battery and motor, but need help selecting the most suitable controller.

The first questions which need to be answered are:

  • What RPM range do you require?
  • How much torque is required?

These two parameters define the mechanical performance required from the system. Once they have been established, the motor, battery and controller can be selected.

Note that within some limitations it is possible to achieve the same result using different combinations of these three components.

Recommended Design Process

When designing a new electrical system, it is generally best to select the components in the following order:

  1. Motor
    Choose a motor capable of meeting the required torque and RPM for the application. These two parameters determine the mechanical performance of the system.
  2. Battery
    Select a battery voltage capable of achieving the desired motor speed. The battery must also be capable of supplying the required battery current and have sufficient capacity for the application.
  3. Motor Controller
    Once the motor and battery have been selected, determine the phase current required to achieve the target torque. The battery voltage and required phase current determine which controllers are suitable for driving the motor at the desired performance.

Selecting a Motor

Generally speaking, a higher battery voltage will spin a given motor at a higher RPM. However, choosing a motor with a different kV rating can achieve the same RPM at a lower battery voltage.

Motor speed is commonly specified using the motor’s kV rating, which describes how many RPM the motor will spin per volt applied. The kV value should be listed in the motor datasheet or technical specifications.

The following equation can be used to estimate the no-load motor speed:

RPM = kV × Voltage

When choosing a motor, ensure it can provide the required torque and operate within the required RPM range.

Mechanical Power vs Electrical Power

Mechanical power is the useful power delivered by the motor shaft and is determined by the motor torque and speed:

Mechanical Power = Torque × RPM

Electrical power is the power supplied by the battery:

Electrical Power = Voltage × Battery Current

Due to losses in the motor and controller, the electrical power drawn from the battery will always be greater than the mechanical power delivered by the motor.

Selecting a Battery

Once the required motor speed has been determined, a suitable battery voltage can be selected.

The battery voltage should be chosen such that the motor can achieve the required RPM while operating within a suitable voltage range.

Once the required electrical power and battery voltage are known, the expected battery current can be estimated using:

Battery Current = Power ÷ Voltage

Where:

  • Power = electrical power (W)
  • Voltage = battery voltage (V)

The battery must be capable of continuously supplying this current without exceeding its rated limits.

In addition to voltage and current capability, the battery must also have sufficient capacity to provide the required runtime for the application.

Which VESC Motor Controller should I buy?

Before choosing a controller, there are four key considerations:

  1. Battery Voltage
    The controller must be capable of safely handling the battery’s maximum charged voltage.
  2. Phase Current
    The controller must be capable of supplying the phase current required to produce the desired motor torque.
  3. Dual Motor Support
    If your application uses two motors, a dual motor controller such as the VESC Duet or VESC Duet XS may be a suitable option.
  4. Additional Features
    Consider whether you require features such as Wi-Fi, Bluetooth, onboard data logging, 12V accessory outputs, or waterproof construction.

Once these requirements have been identified, selecting a suitable controller becomes much easier using the filters while browsing motor controllers or the comparison table below.

1. Battery Voltage

The controller must be capable of safely handling the maximum battery voltage.

Always check the battery’s fully charged voltage, not its nominal voltage.

Lithium-ion cells, for example, are typically charged to 4.2V per cell when fully charged.

For example, a 28S Li-Ion battery will charge to 117.6V.

Battery Voltage = Cells in Series (S) × 4.2V

At first glance, a 120V controller may appear suitable. However, this leaves very little margin for voltage spikes caused by regenerative braking or other operating conditions. In this case, we would recommend using a 150V controller instead.

Choose a controller with sufficient voltage headroom above the battery’s fully charged voltage.

Never operate a controller at the absolute maximum voltage stated in the datasheet!
Voltage spikes and regenerative braking events can exceed this limit and potentially damage the controller.

The absolute maximum voltage is determined by the voltage ratings of the components used within the controller and should not be considered a normal operating voltage.

Battery to Controller Voltage Selector

Controller Voltage RatingMax Battery VoltageMax Cells in Series (Li-Ion)
60V54.6V13S
100V92.4V22S
120V109.2V26S
150V134.4V32S

2. Phase Current

Phase current determines how much torque a motor can produce and is typically the most important specification when selecting a motor controller.

The controller must be capable of supplying the phase current required to achieve the target torque while remaining within its thermal limits.

To determine the required phase current, first calculate the maximum torque required by your application.

The motor datasheet may specify a torque constant (Kt), which relates torque to phase current:

Torque = Kt × Phase Current

If Kt is not specified, it can be estimated from the motor kV value:

Kt = 8.27 ÷ kV

Rearranging gives:

Phase Current = Torque ÷ Kt

or

Phase Current = Torque × kV ÷ 8.27

This provides an estimate of the minimum phase current required to produce the desired torque.

Phase current is also the primary source of heating within both the motor and controller. The heat generated is proportional to the square of the current, meaning that doubling the phase current results in approximately four times the heating.

When selecting a controller, ensure that both the continuous and peak phase current ratings meet or exceed the requirements of the application!

3. Dual Motor Controllers

If your application uses two motors, a dual motor controller may be a suitable option.

Controllers such as the VESC Duet and VESC Duet XS are designed to control two motors from a single device. By sharing components between both motor channels, they can reduce overall cost, wiring, and system complexity compared to using two separate controllers.

The two motors can be operated either independently or in a coordinated manner, depending on the requirements of the application. This allows dual motor controllers to be used in applications ranging from simple dual-drive vehicles to more advanced systems requiring separate control of each motor.

Benefits of a dual motor controller include:

  • Reduced wiring complexity
  • Coordinated or independent control of two motors
  • More compact system design
  • Lower overall cost compared to using two separate controllers

Typical applications include:

  • Dual-motor electric skateboards
  • Electric scooters
  • Electric bikes with front and rear motors
  • Tracked vehicles and robots
  • Any application requiring synchronized control of two motors

If your application only uses a single motor, a standard single motor controller will typically be the most suitable option.

4. Additional Features

Once the voltage and phase current requirements have been satisfied, additional features may influence the final controller selection.

Some VESC controllers include built-in features such as:

  • Wi-Fi / Bluetooth
    Monitor performance and configure your VESC remotely using a computer or mobile device.
  • Onboard storage
    Log motor, battery and system data for analysis and diagnostics.
  • 12V outputs
    Power lights, accessories, sensors and other peripherals directly from the controller.
  • Potting / waterproofing
    Improves durability and reliability in wet, dusty or off-road environments. Potting also helps protect sensitive electronic components from vibration and mechanical shock, reducing stress on solder joints and internal connections in demanding applications.

If a controller does not include onboard storage, Wi-Fi or Bluetooth, these features can be added using the VESC Nanolog.

The VESC Nanolog is a plug-and-play module that provides data logging, Wi-Fi connectivity and remote configuration capabilities. This can be a cost-effective way to add advanced monitoring and logging features while keeping the controller selection focused on the required voltage and phase current capabilities.

5. Motor Controller Comparison

Use the comparison table below or browse all motor controllers to find the controller which is suitable. 

ProductInput Voltage Max (V)Rated Battery Series (Li-Ion)Continuous Phase Current (A)Burst Phase Current (A)Dual Motor ControllerMax Power (kW)12V Output (A)5V Output (A)ESP32 (Wi-Fi & Bluetooth)Integrated StorageIMUCANBUSUSBADC InputsWeatherproofLength (mm)Width (mm)Height (mm)Weight (g)
VESC Minim1004–22S5065-3-2--YesYesUSB-C3-724323115
VESC Duet XS 60V606-13S80100Yes50.51--YesYesUSB-C3-875418163
VESC Duet XS 100V1006–22S5065Yes60.51--YesYesUSB-C3-875418163
VESC Duet1006–22S140200Yes80.81Yes512MBYesYesUSB-C3-1347024418
VESC Classic1004–22S160200-100.51--YesYesUSB-C2-1004819153
VESC Classic+1004–22S300400-200.51--YesYesUSB-C2-1077219306
VESC Pronto1008–22S150200-1052Yes512MBYesYesUSB-C (via dongle)5Potted1214727365
VESC Maxim 120V1208–26S400600-3052Yes1GBYesYesUSB-C (via dongle)5Potted12611737713
VESC Maxim 150V1508–32S250400-3052Yes1GBYesYesUSB-C (via dongle)5Potted12611737713
VESC Maxim+ 120V1206–26S6601000-5052Yes1GBYesYesUSB-C (via dongle)5Potted183132371120
VESC Maxim+ 150V1506–32S420660-5052Yes1GBYesYesUSB-C (via dongle)5Potted183132371120