In this post I have explained a universal ESC circuit or an electronic speed controller circuit which can be universally applied for controlling any type 3 phase BLDC or even an alternator motor.
What is an ESC
An ESC or electronic speed controller is an electronic circuit which is normally used for operating and controlling a BLDC 3-phase motor.
BLDC motor stands for brushless DC motor which clearly states that such motors are void of brushes, quite opposite to the brushed type of motors which rely on brushes for commutation.
Due to the absence of brushes BLDC motors are able to operate with maximum efficiency since the absence of brushes relieves it from frictions and other related inefficiency.
However BLDC motors have one major downside, these cannot be operated through a single supply like the other brushed motors, instead a BLDC motor requires a 3-phase driver for operating them.
Despite of this technical complexity, BLDC motors become highly preferable compared to their brushed counterpart, because BLDC motors are extremely efficient in terms power consumption and virtually no wear and tear issues.
This is why BLDC motors are today used in electric vehicles, windmills, airplanes, quad copters, and most motor related equipment.
As discussed above operating a BLDC motor looks quite complex, and if you try to look for a driver or an electronic speed controller circuit for BLDC motors you would probably come across circuits which are too complex using MCUs, or employ hard to find components.
In this post I have explained how to make a simple and effective ESC circuit which may be universally applied to operate most BLDC motors through some minor modifications.
Once you learn the details of the circuit, you could use it to build electric vehicles, quad copters, robots, automatic gates, vacuum cleaner and any motor operated product with maximum efficiency.
Three Phase Generator Circuits
Since a BLDC motor requires a 3 phase signal, the first thing that needs to be designed is a 3-phase generator circuit.
The following circuits show how this can be made using a handful of operating parts.The first one uses opamps while the second one makes use of just a few BJTs.
Simple 3 phase Generators


The 3-phase signal output needs to be integrated with a 3-phase mosfet driver circuit for enabling the motor operation.
Therefore the second important element is the 3 phase alternator driver circuit, which is supposed to respond to the above 3 phase generator circuit for operating the connected BLDC motor.
For a 3 phase driver, you could employ any standard 3-phase driver IC, such as a A4915, 6EDL04I06NT, or our old:
- IRS2330(D) (2.5µs deadtime)
- IRS2332(D) (0.8µs deadtime)
In our universal ESC circuit we will use the IRS2330 and see how this can be configured for the intended electronic speed control and implemented for most BLDC motors. The following image shows the entire circuit of the proposed ESC design.
The ESC Schematic

The presented ESC alternator driver circuit looks pretty straightforward and does not seem to employ any complex stages.
The 3 phase signals acquired from the 3 phase generator circuits is applied to the inputs of the NOT gates shown at the top left of the above diagram.
These 3 phase signals are converted into the required HIN, and LIN inputs for the 3 phase MOSFET driver IC IRS2330.
The IC IRS2330 hence process these signals to operate the connected BLDC motor with the correct phase and torque via the associated driver mosfets or IGBTs.
We can also see an IC 555 based PWM stage. This stage is configured with the low side mosfets or IGBTs, for chopping their gate triggers into appropriate sections.
This gate chopping forces the devices to operate at a rate determined by these chopping PWM duty cycle rate. Wider duty cycles enables the motor to rotate faster and narrower duty cycle allows the motor to slow down proportionately.
The PWM rate is controlled through the IC 555 through the indicated PWM pot.
Simplifying the PWM Control of the IGBTs
The above universal ESC BLDC speed controller circuit can be further simplified by eliminating the complex BJTs stages at the low side IGBT PWM control section, as shown below:





Comments
Hi Mr. Swagatam;
this is cool,
i have no experience with bldc motor, i have read here and there and know litle the concept
now the problem, my air conditioner is stop working,
fortunately i still can fix it,
but i have to prepare for one day, when i can fix the module, so i have to build by myself, now the question
can i using your circuit for my case? i believe of course you can
as far as i know, using FET transistor is more popular,
and maybe i need to replace the transistor with bigger power (votage and current)
need your advice
Thank you Djoko,
Yes, you can easily replace the IGBTs with MOSFETs rated appropriately as per the motor specifications.
I have added a much simplified version of the circuit at the bottom of the above post, you can check it out…
Hi Mr. Swagatam;
I removed the HDD Motor (5V DC 0,65A / 12V DC 0,5A) and would lilke to run it with a simple driver. Do you have any circuit for it at your site?
Hi Suat,
I think HDD motor requires a microcontroller based driver, so i am not sure how it can be driven through a discrete motor driver concept…
Thanks Swagatam, I have seen the video in which only as the main parts 3 mosfets and 3 diodes were being used.(it can be seen under the header of bldc controller esc circuit at the youtube) One cuts the other when it is triggered so the necessary voltage form for the motor consists. There are 4 pins of the motor and I am confused on finding the common leg. However the measurement shows the value 0.5 ohm between the leg1 and others (2-3 and 4) whereas the others (2-3-4) show about 1.2 ohm between each other. So the leg1 should be the common. Thanks anyway.
Thank you Suat, However, I never used an HDD motor practically, soo i have no idea how to figure out its wire polarities, and connections, it will probably need to be done on a trial and error basis…
Hi
thanks to you and your Esc design, I Want use Esc circuit to drive brushless motor for rc model would you please tell me how I can use it? thank you again
my Gmail ep2rr.es@gmail.com
Hi, I think there are specialized driver circuits available for BLDC motors, online, which you can try, instead of using this Esc.
Is your BLDC sensorless or with sensors?
hi
I have 310vdc 110,000rpm bldc . can I use this circuit for speed control ?
Yes, you can use the above controller circuit for your BLDC motor if it is a sensor less motor.
pak, saya dari indonesia, bisakah saya meminta skema driver untuk kompresor kulkas inverter?, skema yang sederhana tetapi bagus dan bekerja dengan baik,
Thanks for your help but please which software can be used for the designing
Sorry, I have no idea about that!
please i need a circuit diagram of a soft starter using IGBT for three phase motors
Email.blessways9@gmail.com
I do not have this circuit for 3 phase motors.
Please any recommendations
I do not have any recommendations for a 3 phase motor….however I have a concept explained for single phase motors as given below:
https://www.homemade-circuits.com/adding-soft-start-to-water-pump-motors/
Can you help me? I’m not so clever at electronics, and I want to make a controller for BLDC, which I need 60A to drive that motor. What should I do to make that controller? Ur suggestion will be helpful for me. Thankss
I would suggest you to use a circuit which is specially designed for driving BLDC motors. I have a few BLDC circuits in the following link which you can refer to:
https://www.homemade-circuits.com/?s=BLDC
Thanks for ur help, but how do I know the current output for the circuit?
I’m using this project : High Current Sensorless BLDC Motor Controller using Back EMF | Homemade Circuit Projects (homemade-circuits.com)
The current output will depend on the supply current and load current. You can attach an ammeter in series with the Vbuss supply DC line and monitor how much current the motor is consuming.
Can BC547 or BC548 Be used
yes, can be used!
it is unusual to control speed via slip ( the way you are using the pwm as a speed control here)as it isnt constant and the speed will vary with load. the pwm should reduce the voltage to the stop motor overheating at lower rpm and the speed should be controlled by the reference oscillator frequency coming into phase 1 ,2 ,3 imho
Thank you for speaking. I was so confused by this circuit given my prior knowledge of the optimal input signal to a three phase BLDC motor. Frequency of input signal —> speed of motor… AC voltage level —> output power in (watts/horsepower).
Slip is good for an engineered point of failure maybe, but not for standard operating mode.
Quarry 1: Q1,Q3 and Q5 gates are not connected with anything should i directly connect to 3 phase controllers ho1,h02 and ho3 ? If so please clarify why Q1,Q3 and Q5 gates do not have transistor circuit similar to Q2,Q4 and Q6 gates?
Quarry 2: A4915 IC have hall sensor input pins which is not mentioned in the post, i need to drive BLDC without sensor, can i Run BLDC motor with A4915 IC without hall sensor? please guide if any modification is required in the diagram mentioned in the post.
1) Yes you must connect the gates of Q1, Q3, Q5 with the IC ho1, ho2, ho3 pinouts. The BC547 transistors are for PWM integration which should be connected only with the gates of low side devices. The high side devices do not require the PWM integration.
2) As far as I know the above circuit can be used to operate a BLDC without sensors….but A4915 cannot be used for operating a BLDC without the sensors.
Please note that IRS2330DSPBF datasheet suggest “6EDL04I06NT” for new design.
Request to suggest necessary changes required for the “6EDL04I06NT” in above circuit diagram.
The IC pinout connections are almost same as IRS2330 except the current control section. I will try to update the new design soon.
I appreciate your guidance.
Can you please confirm that should i kept VS1,VS2,VS3 and Fault pin open or should i ground all?
The VS1, VS2, VS3 are supposed to be connected at the intersections of the IGBT pairs, indicated by the the letters U, V, W.
Fault pin can remain open, or you can connect an LED with a 1K series resistor between the VCC and Fault pin. If this LED illuminates will indicate that there’s some fault in the functioning of the IC, or there’s an over current.
Hello again
Please guide what value to be set for potentiometer of 1K, which is connected between VSS and VSO.
The adjustment will depend on the load. You will have to drive the load at maximum overload current and then adjust the preset so that the circuit just cuts off.
Thanks for the answer
Output waveform frequency is same as input PWM frequency or is there any internal multiplayer?
Hello
Can you explain why 1 ohm resistor connected across VSO and ground have 40Watt rating?
and How can i choose wattage rating for any particular application?
It is for sensing over-current and tripping the ITRIP pin of the IC.
It will be same as far as I know, you can confirm it by checking with a frequency meter.
Thank you for your quick response.
I a going with IRS2330DSPBF insted of A4915. I hope the above circuit diagram works with it. If not please suggest most suitable IC for the above circuit diagram.
Do you have any idea how this amazon product work it seems to have smaller dimension with 30Amp capacity.
https://www.amazon.in/DIY-Mini-Z-Bidirectional-Miniature-Brushed/dp/B00W1E4AWM
You can surely try it. however there are a few things you must take care of. You must do it with proper understanding. You can refer to the datasheet for the detailed information. I have created the diagram exactly as per the information provided in the datasheet.
Secondly, do not build the PWM section initially. First complete the basic 3 phase inverter, if you are perfectly successfully only then go for the PWM section and its integration.
I am not sure how the amazon kit is able to produce 3 phase using only two mosfets. We normally require 6 mosfets to operate any 3 phase load
Is there a circuit using mosfets and an alternator
You can replace the IGBTs with MOSFETs
Can you please post a simple way to build three phase bldc circuit diagram with MOSFET and resistors only. without adding hard to find components
I don’t have this circuit with me at this moment, If I find it will surely update it for you here
I’ve designed an inverter circuit to control BLDC Motor. I’m stuck at this stage . I need your guidance for further procedure. I’m controlling the MOSFETs via Arduino and using IR2110 as voltage driver IC
My Arduino knowledge is not good, so it will be difficult for me to provide any help on this subject.
I’m thinking about converting a car alternator to a starter-alternator combo.
Can this be adapted to combine ESC and Rectifier to make a alternator-starter motor combo?
When we’re going to start the car, we use the ESC to spin the engine using the alternator.. after the engine started, the alternator take the rotation power into regulated 14v to charge the car battery. is this possible?
Sorry, I am not sure whether that may be possible or not, you may have to consult a good automotive engineer to confirm this.
I appreciate you response to my last comment. I only have one other question about this circuit. What role does VB1,2,3 play in the circuit. Does it take input from the inactive coil so the driver knows when time everything?
Those are for integrating, the diode, capacitor network with the ICs internal bootstrapping network. Without the associated diode, capacitor and the VB1,2,3 integration the circuit cannot provide the required boosted voltage for the high side mosfets, and the IC cannot work like a 3 phase driver IC
Hi, thanks, and glad you liked the post. The above circuit also uses positive edged trigger through the NOT gates, so the basic driving sequence will be the same for both the ICs.