I'm from a computer programming background, but I'm interested in combining hardware with software, so I'm playing around with Arduino.

Currently going through things on things needed to build a quadcopter. And I came across ESC and PWM. The way I think is that both control the rpm of the motor, so whats the difference of the two?

I googled a bit about it, and I got something related to brushed and brushless motor, without diving in too deep, I understand there is difference in the design of the two motors. But the question remains can I use PWM to build a quadcopter or do I have to use ESC?

  • \$\begingroup\$ Did you mean PWM? \$\endgroup\$
    – JRE
    Commented Jun 7, 2016 at 12:58
  • \$\begingroup\$ oops yes PWM....I have changed it \$\endgroup\$
    – 6119
    Commented Jun 7, 2016 at 12:59
  • 1
    \$\begingroup\$ It would appear that you would use a PWM signal to control an ESC \$\endgroup\$
    – JRE
    Commented Jun 7, 2016 at 13:01
  • \$\begingroup\$ Don't contemplate building a quadcopter from scratch until you have spent a lot of time thoroughly understanding how existing ones work. Historically, questions on the subject here have gotten a lot of unworkably wrong answers when people tried to guess from first principles without doing any research - you are best looking on sites like rcgroups.com and others where people actually designing and building these discuss them. Also, don't use an Arduino, but rather something tailored to this purpose, most of which have moved on to ARM cores several years ago. \$\endgroup\$ Commented Jun 7, 2016 at 16:44

3 Answers 3


First, let's define some terms.

Quadcopter: an aerial vehicle that uses 4 horizontal propellers for lift. For stability a 3 axis gyro senses yaw, pitch, and roll, and varies the power to each motor independently.

Brushed DC Motor: a DC motor which has brushes and a commutator. To run it you simply apply voltage to the two terminals, and the commutator automatically switches power to the armature coils in synchronization with its rotation.

Brushless DC Motor (BLDC): a DC motor with no brushes or commutator. An external circuit is required to switch power to each of the 3 coils in turn, synchronized to the rotor's angular position.

Pulse Width Modulation (PWM): a technique that involves creating a 'square' pulse with varying width or on/off ratio. Can be used to vary motor voltage by switching it on and off rapidly, or to send a value by encoding it as a variable width pulse, eg. standard radio control servo signal is a 1~2ms pulse repeated every 20ms (50Hz).

Electronic Speed Controller (ESC): A device which controls a motor by varying the power (voltage) applied to it. Usually uses 0-100% PWM to vary the power, and may itself be controlled by a 1~2ms servo PWM signal. A brushless ESC will have some way of detecting the brushless motor's rotor position so that it can switch the coils at the correct times. This can done with hall sensors on the motor, or by measuring the back-emf from the coils themselves. 'Sensorless' ESC's and motors are usually used with propellers because the motor doesn't have to be controlled at very low speed (when back-emf would be too weak) and only has 3 wires between the ESC and motor.

You can use either brushed or brushless motors in a quadcopter. Brushless motors have the advantages of higher power/weight and better efficiency, but are more expensive and difficult to make in very small sizes. A brushless ESC is complex and requires a dedicated MCU, so these are usually provided as a separate unit that you control with a servo signal.

Brushed motors are not as efficient or powerful, but can be controlled with a simple PWM switching circuit. If your controller has high-speed 0-100% PWM outputs then you just need a power MOSFET and diode to make the 'ESC' for each motor.

For good stability a quadcopter needs a fast feedback loop between attitude (gyro signals) and propeller thrust (motor speed). Applying PWM directly to the motor provides faster response than sending servo pulses to a separate ESC. However a brushless motor practically requires a separate ESC, so some brushless ESC's have special 'multirotor' firmware that accepts a higher servo pulse frequency (up to 300Hz) and is optimized for fast acceleration.

If you are building a small quadcopter then it may be cheaper and easier to use brushed motors and make your own ESCs, but if you expect it to weigh over ~500g then you should use brushless motors and ESC's. And get plenty of spare props because you are bound to chew a few up!


For a quadcopter, you will need :

  • Propellers, designed for your motors. If you have a too big and resistant propeller, your motor will burn. If you have a too weak propeller with a too fast motor, the motor will shear down.
  • Brushless motors. Those are powered & controlled (speed) by a 3 phases signal. This signal is generated by an ESC. Some low quality copters are made with DC motors, which is less robust as it often twist the axes on any chocks. Plus, if your rotor is blocked, the motor could burn.
  • ESCs: Electronic speed controllers generate the 3 phase signals. The ESC answer to a PWM (same as servo, it's a 50Hz ppm with one channel, 400Hz is preferred). High quality ESC produce "beautiful" sinusoidals. Low quality ones produce something that looks like a sinusoidal.
  • Flight controller (Naze32, ArduinoMega with an IMU & communication, PixHawk, ... ) : The flight controller compute the attitude of the multicopter and gives the commands to the ESCs.
  • 1
    \$\begingroup\$ I am doubtful that 'sinus' is the word you want (in English) - maybe 'sinusoid'? \$\endgroup\$
    – Spike0xff
    Commented May 28, 2018 at 17:36

An ESC is a device. PWM is a technique.

Most ESCs use PWM in one form or another.

  • \$\begingroup\$ If PWM is a technique, and ESCs is a device using that technique. Will it be possible to build a Quadcopter with a motor having PWM and without ESCs? Like CPU fan has PWM \$\endgroup\$
    – 6119
    Commented Jun 7, 2016 at 13:10
  • \$\begingroup\$ You will need to control the speed of the motors one way or another. Are you suggesting building a quadcopter with mechanical speed control? I suppose it would be possible, but not very practical. \$\endgroup\$
    – Dampmaskin
    Commented Jun 7, 2016 at 13:16
  • \$\begingroup\$ I am suggesting that CPU fan has 3 pins (power,ground,control).......so using arduino I could control the speed of the fan on the quadcopter. Would it work? \$\endgroup\$
    – 6119
    Commented Jun 7, 2016 at 13:30
  • \$\begingroup\$ A CPU fan has an ESC circuit built into the housing. \$\endgroup\$
    – user80875
    Commented Jun 7, 2016 at 13:32
  • 1
    \$\begingroup\$ I think you are getting downvotes because you have not dug deep enough into tutorial information that can be found elsewhere. This site is for answering questions. It is not a good format for presenting impromptu tutorials. You should dig into tutorial sites that have been carefully thought out and illustrated. Then ask questions here to clarify points that you don't understand. \$\endgroup\$
    – user80875
    Commented Jun 7, 2016 at 15:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.