How to initialise(Arm) 18 amp ESC with the help of Arduino board....

We have DYS 18 amp ESC( which works very well with the receiver.But we have to initialise it with the Arduino board,we are using Atmega8 board.

We have written a program which reads the PWM signal on pin no. 7 coming from the receiver and outputs the same PWM signal on the PWM pin 9. We have crosschecked on the DSO the signals coming out on the pin no.9 from the arduino are same as the PWM signals that we are inputting on pin no.7 ,the only difference was the voltages of the input and the output PWM signals.The voltage of the input PWM is 3.3 volts and output PWM is 5 volts ,so after the output PWM we have used LM11175 to convert that 5 volts to 3.3 volts.

The above description means that we are having exactly the same PWM out of the arduino that we are getting from the receiver.And we are following exactly the same procedure to initialise(arm) the ESC when there were no Arduino...

Now please help me why we are not able to initialise the ESC .......All the helps will be appreciated...

Well, just to start, you probably need to use the servo library to get the PPM control signals the ESC uses instead of trying to generate your own PWM code. You may want to search this board and the old board for ESC to study the many previous post on ESC subjects. Also, if you want help with your code, you need to post the code that is not working for you.

Thank you Zoomkat for your suggestion and reply.......

im having the same problem
did u figure out how to arm it?


If its an air esc, you may need to are it with a 1000 microseconds input using servo.writeMicroseconds for non air escs the default servo library signal is 1500 this should do the trick if you send it for 2 seconds or so.

Why am I talking about microseconds, see here -


Duane B

hey there i had the same problem for a while. u need to arm ur ESC first. that depends on the type of ESC u r using, mine was an EMAX and hence by giving a minimum throttle for a second, it got armed. use the servo library to arm it ie Myservo.write(1000); for min throttle and myservo.write(2000); for max. it should work good luck :)