How Brushless Motor and ESC Work

In this tutorial we will learn how brushless motor and ESC work. This article is the first part of the following video, where we will learn the working principle of a brushless DC motor and ESC (Electronic Speed Controller), and in the second part we will learn how to control BLDC motor using Arduino.

How It Works


A BLDC motor consist of two main parts, a stator and a rotor.  For this illustration the rotor is a permanent magnet with two poles, while the stator consists of coils arranged as shown in the picture below.

Brushless motor main parts - a stator and a rotor

We all know that if we apply current through a coil it will generate a magnetic field and the magnetic field lines or the poles depends on the current direction.

Magnetic field generated by current running through a coil

So if we apply the appropriate current, the coil will generate a magnetic field that will attract the rotors permanent magnet. Now if we activate each coil one after another the rotor will keep rotating because of the force interaction between permanent and the electromagnet.

Force interaction between permanent and electromagnet in BLDC Motor

In order to increase the efficiency of the motor we can wind two opposite coils as a single coil in way that will generate opposite poles to the rotors poles, thus we will get double attraction force.

Brushless motor coils electromagnets force interaction

With this configuration we can generate the six poles on the stator with just three coils or phase. We can further increase the efficiency by energizing two coils at the same time. In that way one coil will attract and the other coil will repel the rotor.

BLDC motor working principle

In order the rotor to make a full 360 degrees cycle, it need six steps or intervals.

BLDC Motor current waveform

If we take a look at the current waveform we can notice that in each interval there is one phase with positive current, one phase with negative current and the third phase is turned off. This gives the idea that we can connect the free end points of each of the three phases together and so we can share the current between them or use a single current to energize the two phases at the same time.

Here’s an example. If we pull up phase A High, or connect it to the positive DC voltage, with some kind of switch, for example a MOSFET, and on the other side, connect the phase B to ground, then the current will flow from VCC, through phase A, the neutral point and phase B, to ground. So, with just a single current flow we generated the four different poles which cause the rotor to move.

Generating 4 magnetic poles with just a single current flow - Brushless motor working principle

With this configuration we actually have a star connection of the motor phases, where the neutral point is internally connected and the other three ends of the phases come out of the motor and that’s why brushless motor have three wires coming out of it.

Brushless motor star connection

So, in order the rotor to make full cycle we just need to activate the correct two MOSFETS in each of the 6 interval and that’s what ESCs are actually all about.

How a Stepper Motor Works

In this tutorial article you will learn how a stepper motor works. We will cover the basic working principles of stepper motors, their driving modes and… 

How does an ESC Work (Electronic Speed Controller)

An ESC or an Electronic Speed Controller controls the brushless motor movement or speed by activating the appropriate MOSFETs to create the rotating magnetic field so that the motor rotates. The higher the frequency or the quicker the ESC goes through the 6 intervals, the higher the speed of the motor will be.

How does an ESC Work - Electronic Speed Controller

However, here comes an important question, and that’s how do we know when to activate which phase. The answer is that we need to know the position of the rotor and there are two common methods used for determining the rotor position.

The first common method is by using Hall-effect sensors embedded in the stator, arranged equally 120 or 60 degrees from each other.

Brushless motor rotor position using Hall-effect sensors

As the rotors permanent magnets rotate the Hall-effect sensors sense the magnetic field and generate a logic “high” for one magnetic pole or logic “low” for the opposite pole. According to this information the ESC knows when to activate the next commutation sequence or interval.

The second common method used for determining the rotor position is through sensing the back electromotive force or back EMF. The back EMF occurs as a result of the exact opposite process of generating a magnetic field or when a moving or changing magnetic field pass through a coil it induces a current in the coil.

Back EMF in Brushless motor

So, when the moving magnetic field of the rotor pass through the free coil, or the one that’s not active, it will induce a current flow in coil and as result a voltage drop will occur in that coil. The ESC captures these voltage drops as they occur and based on them it predicts or calculates when the next interval should take place.

So that’s the basic working principle of brushless DC motors and ESCs and it’s the same even if we increase the number of poles of the both the rotor and the stator. We will still have a three-phase motor, only the number of intervals will increase in order to complete a full cycle.

Here we can also mention that BLDC motors can be inrunners or outrunners. An inrunner brushless motor has the permanent magnets inside the electromagnets, and vice versa, an outrunner motor has the permanent magnets outside the electromagnets. Again, they use the same working principle and each of them has its own strengths or weaknesses.

Inrunner vs outrunner brushless motor

Ok, that’s enough theory so now let’s demonstrate and see in real life what we explained above. For that purpose we will we connect the three phases of a brushless motor to an oscilloscope. I connected 3 resistors in a single point to make a virtual neutral point and on the other side I connected them to the three phases of the BLDC motor.

connecting a brushless motor to an oscilloscopeThe first thing that we can notice here are the three sine waves. These sine waves are actually the back EFM generated in the phases when they are not active.

BLDC motor Phases and Back EMF displayed on an Oscilloscope

We can see that as we change the RPM of the motor, the frequency of the sine waves changes and as well as their amplitude. The higher the RPM, the higher are the frequency and the amplitude of the back EMF sine waves. However, what drives the motor are actually these peaks, which are the active phases that generate the changing magnetic field.

BLDC motor phases activations displayed on a Rigol DS1054Z Oscilloscope

We can notice that at each interval, there are two active and one inactive phase. For example, here we have phase A and B active, while phase C is inactive. Then we have phase A and C active, while phase B is inactive, and so on.

Here I would like to give shout-out to Banggood.com for providing me this oscilloscope. It’s the Rigol DS1054Z and it’s one of the best entry-level oscilloscopes for its price point. It has four input channels, 50MHz bandwidth, which is hackable to 100MHz, it has a sampling rate of 1GSa/s and relatively large memory depth of 24Mpts.

Rigol DS1054Z SPI and I2C decoding

The display is 7 inches and it’s really nice and bright. It features various math functions, low pass and high pass filters, SPI and I2C decoding and much more. So again, big thanks to Banggood.com and make sure you check out this oscilloscope in their store.

Nevertheless, that’s the basic working principle of brushless motor. In case you want some more real live examples and learn how to control brusheless motors using Arduino you should check the part two of this tutorial.

Controlling brushless motor using Arduino and ESC

I hope you enjoyed this tutorial and learned something new . Feel free to ask any question in the comments section below and don’t forget to check my collection of Arduino Projects.

Leave a Reply

Your email address will not be published.