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:
- 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. - 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:
- 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. - 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. - 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:
- Battery Voltage
The controller must be capable of safely handling the battery’s maximum charged voltage. - Phase Current
The controller must be capable of supplying the phase current required to produce the desired motor torque. - 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. - 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 Rating | Max Battery Voltage | Max Cells in Series (Li-Ion) |
|---|---|---|
| 60V | 54.6V | 13S |
| 100V | 92.4V | 22S |
| 120V | 109.2V | 26S |
| 150V | 134.4V | 32S |
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.
| Product | Input Voltage Max (V) | Rated Battery Series (Li-Ion) | Continuous Phase Current (A) | Burst Phase Current (A) | Dual Motor Controller | Max Power (kW) | 12V Output (A) | 5V Output (A) | ESP32 (Wi-Fi & Bluetooth) | Integrated Storage | IMU | CANBUS | USB | ADC Inputs | Weatherproof | Length (mm) | Width (mm) | Height (mm) | Weight (g) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| VESC Minim | 100 | 4–22S | 50 | 65 | - | 3 | - | 2 | - | - | Yes | Yes | USB-C | 3 | - | 72 | 43 | 23 | 115 |
| VESC Duet XS 60V | 60 | 6-13S | 80 | 100 | Yes | 5 | 0.5 | 1 | - | - | Yes | Yes | USB-C | 3 | - | 87 | 54 | 18 | 163 |
| VESC Duet XS 100V | 100 | 6–22S | 50 | 65 | Yes | 6 | 0.5 | 1 | - | - | Yes | Yes | USB-C | 3 | - | 87 | 54 | 18 | 163 |
| VESC Duet | 100 | 6–22S | 140 | 200 | Yes | 8 | 0.8 | 1 | Yes | 512MB | Yes | Yes | USB-C | 3 | - | 134 | 70 | 24 | 418 |
| VESC Classic | 100 | 4–22S | 160 | 200 | - | 10 | 0.5 | 1 | - | - | Yes | Yes | USB-C | 2 | - | 100 | 48 | 19 | 153 |
| VESC Classic+ | 100 | 4–22S | 300 | 400 | - | 20 | 0.5 | 1 | - | - | Yes | Yes | USB-C | 2 | - | 107 | 72 | 19 | 306 |
| VESC Pronto | 100 | 8–22S | 150 | 200 | - | 10 | 5 | 2 | Yes | 512MB | Yes | Yes | USB-C (via dongle) | 5 | Potted | 121 | 47 | 27 | 365 |
| VESC Maxim 120V | 120 | 8–26S | 400 | 600 | - | 30 | 5 | 2 | Yes | 1GB | Yes | Yes | USB-C (via dongle) | 5 | Potted | 126 | 117 | 37 | 713 |
| VESC Maxim 150V | 150 | 8–32S | 250 | 400 | - | 30 | 5 | 2 | Yes | 1GB | Yes | Yes | USB-C (via dongle) | 5 | Potted | 126 | 117 | 37 | 713 |
| VESC Maxim+ 120V | 120 | 6–26S | 660 | 1000 | - | 50 | 5 | 2 | Yes | 1GB | Yes | Yes | USB-C (via dongle) | 5 | Potted | 183 | 132 | 37 | 1120 |
| VESC Maxim+ 150V | 150 | 6–32S | 420 | 660 | - | 50 | 5 | 2 | Yes | 1GB | Yes | Yes | USB-C (via dongle) | 5 | Potted | 183 | 132 | 37 | 1120 |
