Problem with arduino servo library

Hi,

I am controlling a brushless motor using an ESC for my quadcopter. I am using a Simonk ESC and Servo.h library to control the speed of the motor.

As far as I know using Servo.h library I can send values from 0 to 179. The problem is this: the motor only starts spinning when I send at least the value 30. As I send higher values the motor speed goes faster but till I get 130. If I use a value higher than 130 the motor does not go faster.

I would like to know why is this problem happening. Why setting 0, 10 or 15 (for example) the motor does not spin?

That is the way your ESC firmware is configured. If you want to re-configure the throttle curves you can find instructions with a Google search for: configure SimonK ESC

The problem is this: the motor only starts spinning when I send at least the value 30. As I send higher values the motor speed goes faster but till I get 130. If I use a value higher than 130 the motor does not go faster.

It is probably the fact that the ESC is made to work with RC equipment. At least in the past the RC command for servos was from -45 to +45 deg equivalents, and not 0-180 deg. It is just a nice happening that most hobby servos can be commanded to actually rotate 180 deg.

The default limits of the Servo library are 544 uS to 2400 uS. That would make an angle of 30 about 853 uS and an angle of 130 about 1884 us. You can use servo.writeMicroseconds() to stay within those limits or use servo.attach(pin, 853, 1884) to set the limits for that servo.