Compared to a conventional brushed dc motor, which is controlled via its applied voltage, the control of a brushless dc motor with its three phase wires requires a dedicated controller. Such a controller is known as electronic speed controller (ESC). The responsibility of this part is to control the flow of current direction through its individual output phases that are connected to a brushless dc.

Four DYS Aria ESCs to control each motor individually.

ESC Function

Given a desired input signal from the transmitter, an ESC takes over the coordination to correctly control flow of current through the three phase wires of a brushless motor of which the currently set motor position needs to be aquired. This can be achieved through two ways: one is to use Hall effect sensors or to make use of the so called counter-electromotive force (also known as back EMF). A spinning motor also acts as a generator that generates a force which can be measured by the ESC. With this measurement the position of the rotor can be infered.

A Hall effect sensor can make use of the magnetic interaction of the magnets on the rotor to provide a signal that evaluates to the position of the rotor. A receiver or flight controller (FC) commands the the speed of a motor and compares the desired with the target speed value. With this speed difference it is possible to adjust the speed to reduce the difference.

An ESC controls the speed of a motor via pulse witdth modulation (PWM). The ESC controls the power supplied from the battery to the motor taking into account the commands of a flight controller or a receiver. For example, an ESC can be targeted to provide 50% of the maxium possible power to its connected motor. PWM controls the rate at which power is fed from the power source (battery) to the load (motor). For example, given that the PWM rate for 100% motor power is 50 kHz, an ESC which should operate the motor at 50% power will provide the full battery power at a 25 kHz rate.


The feed-through of energy is realised through transistors. An ESC with a “FET” imprint, shows it consists of field-effect transistor. Field-effect transitors consist of a metal–oxide–semiconductor which are known as MOSFETs. They are seperated in n-type and p-type. The n stands for negative (transistor electron conduction) and the p stands for positive (transistor electron hole conduction). N-type FETs are much more efficient because of their construction design, which is due to their lower inner resistance. This means, that an n-type FET wastes less energy through thermal loss.

P-type Fets heat up much more because of their internal resistor and need to be cooled better. This is why they are mounted in the air flow of the rotor. An ESC which is equipped exclusively with n-type FETs operates more efficient. This leads to an increased flight time at the cost of a higher price for the component. Therefore, low-priced and small ESCs, found in smaller drones, contain a mix of p-type and n-type FETs.

DYS Aria ESC with BLHeli firmware and OneShot protocol.

Brushless controllers are common in many RC-models, especially where brushless dc motors are used. As mentioned, multi copters are controlled via the rotational speed of the motors, which is why they require a special type of controller. For a stable flight behavior it is important to use a suitable ESC that is capable of quickly processing and applying the information which rotor speed should be set to a motor. Processing and applying this signal faster leads to a more percise and faster control of the race drone. The processing-speed of the controller is especially important for acrobatic or race flights.

ESC Software

A drone will crash if the information of a flight pose correction gets passed to a controller that is not capable of applying the updated rotational speed fast enough. This is why, a special kind of ESCs was developed for use in multi copters - to be more percise: special software that runs on the ESCs. Common brushless controllers have a latency (speed of reaction) of 20 ms, which is equivalent to a rate of 50 Hz. This suffice for the conventional RC-models but it isn’t for multicopters. The datasheet of an ESC for a multi copter should list 400 Hz.

There are at least two options to choose suitable ESCs. On the one hand, manufacturers of multicopter motors offer suitable ESCs for their motors. These ESCs match to the use with the motors of the manufacturer. On the other hand, it is possible to buy brushless controllers with a dedicated multicopter software or to flash suitable controllers with this software.

Flashing means to update the software, also refered to as firmware, that runs on a device, such as an ESC. ESCs which are not intended to be used with multicopters can be made usable by flashing a dedicated firmware.


One of the most used software, that was specifically developed to be used in multicopters, is the SimonK software, by Simon Kirby.

The software was developed to realise quick changes of motor velocity and is freely available in SimonK’s GitHub repository. A lot of multicopter brushless ESCs come pre installed with this software. A list of compatible ESCs can be found in this Google spread sheet. One characteristic feature is that the control signals of the flight controller are processed with clock frequencies above 400 Hz, which is fast enough to control a multicopter. Unlike a regural ESC, the acutation of the motor doesn’t happen with 8,000 Hz but rates up to 18,000 Hz. This means that the ESC is controlling the motor 18,000 times pre second, which enables fast pose corrections and agressive flight maneuvers.


BLHeli is another commonly used firmware for multicopters. Originally developed for helicopters, today it is optimized and usable for multicopters as well. In most cases this software provides the OneShot additon. This is a new ESC protocol to replace PWM which allows to increase the communication frequency between flight controller and ESC. This way the drone is able to realise new pose adjustemns or control inputs quickly. Because of the optimisation technique that OneShot provides, ESCs that run BLHeli firmware are commonly used for FPV race quads.

OneShot125 Protocol

OneShot is a newer communication protocol between flight controller and the ESCs. When the ESCs are capable of processing the OneShot signal (mostly printed on them) and the protocol is activated in the flight controller software (for example BetaFlight, the commands to change the motor velocity are faster outputted from the flight controller, processed by the ESC and applied at the motor. This allows a faster and more percise control of the multicopter, which can be a crucial advantage especially during a FPV-race.

With the OneShot125 protocol the signal from the flight controller is issued each 125 microseconds. Using conventional PWM communication between flight controller and ESC this happens only between 1,500 and up to 3,500 microseconds. With that, the reaction time is by a factor of 12 higher. To put this in perspective, a fast fpv race copter flying 130 km/h can travel 25 to 50 cm in that time difference, which can make the difference in a fast race between mowing the lawn and hitting the ground.

BEC or Optocoupler

ESCs are not exclusively used to provide the motor with current. Especially in the classic rc hobby sector the ESCs task is to power other parts such as the receiver and servos. This happens with a special circuit which branches of power from the battery over the information cable (the red cable of the three wire servo connector). When such an ESC is connected to a receiver and further devices, for example servos connected to the receiver, it provides 5 volt with a maximum indicated current, for example 3 ampere. Because for these devices an additional battery isn’t required, the abbreviation BEC (Battery Elimination Circuit) is used for such ESCs.

The difference between a regular rc plane and a multicopter is that the ESC’s signal wires are not directly connected with the receiver. Instead they are connected to the flight controller. There are two possibilities to provide the flight controller with power. One is to use power from the ESCs, in which case one of the ESCs requires an internal BEC. The other option is to power the flight controller separate wire. In this case, it is even undesired if the connected ESCs have a current leading BEC connector. For such use cases, in which no additional current flow is required at the ESC servo connector, there exist brushless controllers without BEC. They are marked with the addition “Opto”, which stands for optocoupler. With the optocoupler it is possible to separate the high powered circuit, which provides power from the battery over the brushless controller to the motor, from the information signal circuit. This means that there’s no power available at the servo connector.

To connect an ESC with BEC to an externally powered flight controller it is required to remove the red servo cable. This prevents flowing current from the ESC into the flight controller.

An optocoupler doesn’t have a BEC to power further devices, such as a receiver. The high power circuit, used to power the motor, is galvanically separated from the control circuit of the ESC. The advantage of this are less distortions and smaller and more leightweight ESC because of less circuit electronics inside the device.

Ampere (A) and Load Capacity

ESCs control the conduction of electrical engergy from the battery to the motor. This energy throughput certainly leads to a high electrical load at the ESC. Because of this, ESCs are manufactured for different maximum load capacities, which are indicated in ampere (A). As an ESC has to fit to a selected motor, it is also important to take the maximum current the motor can pull from the ESC into account. Consider for example a motor in combination with an air blade and a specific battery voltage that requires a maximum current flow of 18 A. Such a motor cannot be controlled with an ESC that allows a maximum electrical load which is less than 18 A, for example 15 would be too less. Such a setup would damage the ESC and lead to a crashing multicopter.

To avoid this, it is important to use an ESC which can handle the maximum power consumption of the rotors and which inner build is designed for such high loads. Always make sure there is a safety buffer. A motor having a maximum current flow specification of 15 A should be operated with an ESC that can handle 20 A. For these parts it is common to see specifications that declare which maximum peak load they can handle for a short period of time.

For example, a motor can handle 20 A for longer periods and 25 A for approximately 15 seconds. While choosing an ESC this has to be kept in mind. An ESC has also an extrem value. If it is specified for 25 A, it can handle up to 30 A for 15 seconds, depending on the manufacturer specifications.

Especially during FPV races, the components have to endure high loads and are at the same time chosen to operate at their limit. This enusres power and agility. ESCs with a maximum load of 20 A are installed even if the motor can pull a maximum of 20 A. For beginners, such setups are not recommended because it can lead to damaged components quickly. Instead, components should be selected with generous specifications, meaning that their limit values are not easily exceeded.

For example, when using an ESC and motor which both have their load limit at 20 A it is possible that the copter get stuck in the gras after a possible crash or the start. In such situations the motor tries, without success, to counter against the gras. After a few rotations the gras will wind around the motor which leads to increased current flow because of hight load. This value can easily increase above what is specified in the datasheet and result in a smoking ESC, even while starting.

Voltage (V) and Cell Count (S)

Another important aspect when using ESCs is that not every battery can be connected. A LiPo battery often has not only one, but two, three or even more cells. The more cells are connected in series, the higher the battery voltage. Often this is not indicated in volt but in cell count (S) of the battery. In the chapter LiPo battery the cell count is explained in more detail. It is important, that LiPo batteries are divided in cell counts from one to six (1S to 6S). However, an ESC always has a maximum operating voltage or battery cell count with that it’s allowed to be operated. This means, if indicated on the ESC or its data sheet that it is only allowed to be operated with up to 3S or 4S, only a battery with that specifications must be used. With a 3S battery the voltage mean lies at 11.1 volt.

UBEC Voltage Supply without ESC

If the electronic components in a copter should be powered independently of the ESCs or if only optocoupler ESCs are used, there exist other ways to power the flight controller and other electronic components such as LEDs: It’s possible to use an UBEC (Universial Battery Elimination Circuit). This device is connected to the battery and can be used to provide constant output voltage for electronic components.

Power supply via UBEC.

If connected to a 11.1 volt battery it is possible to power for example a receiver with 5 volt. Consult the datasheet of the manufacturer to find a suitable UBEC that is capable of handling the input voltage and maximum current and provides the requried output voltage.

For example:

  • Input voltage 6 to 26 V
  • Output voltage 5 V
  • Maximum current 3 A

Further reading material

ESC Article on Wikipedia

OneShot explained

A flashing tutorial can be found in the RCgroups forum and to install generic usb drivers on windows you can use Zadig.