I read this is possible here:

How to drive brushless motor with Arduino?

I'm just getting started with Arduino and electronics in general, can anyone recommend a tutorial or guide that could serve as a starting point for how to approach controlling a brushless ESC with an Arduino?

I can't seem to find much information about how a brushless ESC even works, let alone what it will take to use an Arduino to communicate with one (or more).

Thanks in advance!


2 Answers 2


If it's the kind of ESC used with R/C planes, the hook-up is pretty straight-forward.

On the output side, there will be three wires to connect to the motor. It almost doesn't matter how you connect them, except that if your rotation is opposite to what you expected, you can just swap any two of the three.

For input, the ESC takes a power feed from your DC source, usually a lithium-poly with planes, and a control signal from the R/C receiver.

The control signal is the same kind used with servos. There is a pulse of a certain width, and variations in that width cause variations in servo position, or in the case of the ESC, the resulting speed. Point being, that if you can get control an ordinary servo with your Arduino, then you have practically everything in hand for controlling an ESC.

  • \$\begingroup\$ Thanks for your reply. I'm really clueless in this realm and I'm just trying to figure out how things go together before buying parts to tinker with. Does the ESC provide power to the motor or do both the ESC and the motor have independent connections to the LiPo? Will it be feasible to send instructions to the Arduino via XBee point-to-point, then have the Arduino relay the instructions to the ESC? I've heard mention of ESC calibration via RC radios like Spektrum DX7, is this required, or can I sufficiently control the ESC with XBee and Arduino? Thanks again! \$\endgroup\$
    – Casey
    Jul 28, 2010 at 23:31
  • \$\begingroup\$ The battery feeds power to the ESC, which slices it into something resembling 3-phase AC for the motor. I.e., all the power for the motor comes through the ESC. Re control, as Joby Taffey points out, there's an existing Arduino library for servo control. Once you get the speed parameter into the Arduino, it should be a snap to control the ESC. \$\endgroup\$
    – JustJeff
    Jul 28, 2010 at 23:39

Use the Arduino servo library to control your ESC. R/C ESCs are usually driven by the same PWM signals as servos.


To calibrate the ESC, I'd measure the rotation speed by painting a pattern on a wheel and tracking it with a light sensor.

If you don't fancy building that, but accuracy is important - try a bicycle speedometer.

  • \$\begingroup\$ Thanks Joby. How would I calibrate the ESC? \$\endgroup\$
    – Casey
    Jul 28, 2010 at 23:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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