I am trying to use EMAX 20A ESC (Electronic speed control), but it does not work. I am supposed to hear some beeps. It is a 3 phase ESC.

1) I am using 12V from a computer power supply instead of 11.1V 3 cell battery 3S LiPo. Is this a problem?

2) 0 volts must be set on the yellow line before connecting the ESC to the power. I do that, but it does not help.

I am using Raspberry Pi to send the control signal. GPIO 18 is connected to the yellow control line of the ESC.

This is a video: https://www.youtube.com/watch?v=uOQk8SJso6Q that uses Arduino, instead of Raspberry Pi.

  • \$\begingroup\$ Is the computer power supply actually enabled with the enable pin? Is the ESC showing any signs of life such as lights or making beeps using the motor? \$\endgroup\$
    – nanofarad
    Commented May 31, 2020 at 21:44
  • \$\begingroup\$ The power supply turns on, I get the 12 volts(I connected the power On to the ground). The ESC has no lights, only beeps, but I do not hear them. \$\endgroup\$ Commented May 31, 2020 at 21:46
  • 1
    \$\begingroup\$ Do you have a motor connected? \$\endgroup\$
    – user16324
    Commented May 31, 2020 at 21:51
  • 2
    \$\begingroup\$ "0 volts must be set on the yellow line before connecting the ESC to the power. I do that, but it does not help." - the 'yellow line' (signal wire) should have a servo PWM pulse applied to it - varying from 1ms for low throttle to 2ms for high throttle, repeated every 20ms. The ESC is 'armed' when it receives a low throttle signal. \$\endgroup\$ Commented May 31, 2020 at 23:26
  • \$\begingroup\$ Yes, I use a hard disk motor. It is a 3 phase motor. And the ESC is designed for this kind of 3 phase DC motors in general. \$\endgroup\$ Commented Jun 1, 2020 at 5:57

1 Answer 1


Yes, 12V computer power supply can be used. My error was that I assumed that the dutysignal should be 0 in the beginning, before powering up the ESC. The ESC requires signal from 1ms HIGH to 2ms HIGH every 20ms (50 hertz). For 50 hertz the dutysignal must be between 5.0 and 10.0. Below is the full code for running a HDD motor with EMAX 20A ESC on Raspberry Pi.

import time
import RPi.GPIO as GPIO
GPIO.setup(18, GPIO.OUT)
p = GPIO.PWM(18, 50) # GPIO 18, 50 hertz PWM

p.start(5) # 1ms for 50  hertz
print("start the motor in 10s (must be off before seeing this line)")
#for an HDD motor it should be between 5.0 to 10.0 for 50  hertz

input('Press return to stop')   # use raw_input for Python 2

Also on Raspberry Pi and older PIs sush as model 2 you need https://github.com/metachris/RPIO.git for the Python RPIO library, otherwise it gives an error.

Thanks for the comments.


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.