Esc beeps

I'm using 1000kv motor with 40A esc and 1450mA 3s battery.
My esc connected to my arduino uno, (supposed to be controlled by my joystick).
When all connected, the esc makes 3 short beeps and 1 long beep, when i move the joystick,
nothing happens, what's wrong?
My programm,

#include <Servo.h>
Servo esc;
int val;
const int Y_pin = 1; // analog pin connected to VRy

void setup() {

Serial.begin(9600);
esc.attach(13);
esc.writeMicroseconds(1000);

void loop() {

Serial.print(" analogVal: ");
Serial.println(analogRead(Y_pin));
val=analogRead(Y_pin);
val=map(val,520,1023,1000,2000);

esc.writeMicroseconds(val);
Serial.print("Throttle :");
Serial.println(val);
}

Probably you haven't armed the ESC. How you do that depends on what ESC it is. And the ESC probably has a manual/instruction sheet where the meaning of the beeps is explained.

A little more information about the ESC than just "40A" might be useful.

Steve

Thank you,
I will try to search its datasheet.
Its hobbyking 40A SBEC
BEC:5.5V/4A NIMH:5-18S
LIPO 2-6 S

The easiest way to figure out an ESC is with a servo tester like this: Shop by Category | eBay

Once you've played with it and figured out the arming requirements you can code them up.

MarkT:
The easiest way to figure out an ESC is with a servo tester like this: Shop by Category | eBay

Once you've played with it and figured out the arming requirements you can code them up.

Thanks you for suggesting,
I wish i could, but ordering this will take too much time, while I got less than a week to make it work.
I need other solution.

Then you'll have to experiment with arming sequences until you find one that works. They are usually simple
requiring the stick on the RC transmitter to be held up or down for some minimum period.

The normal RC transmitter controls sit mid-travel by default, the arming sequence is designed to prevent
ESC activation without human intervention for safety reasons in an RC plane. Mid-travel on the throttle
is enough to be extremely dangerous if the motor sprang to life at that setting.

I found this link at my hobbyking esc page
https://cdn-global-hk.hobbyking.com/media/file/547955935X1158402X16.txt
The problem is that i got no transmitter so i connected the esc directly to my arduino,
and the arduino connected to my joystick, when i try to follow the steps described with my joystick,
nothing happens, the esc only beeps 3 short beeps and 1 long beep when i connect the battery, but nothing else after.
My joystick works perfectly, serial screen data:

Y Speed: 514
Motor Throttle :999 //this is the Throttle 0%

Y Speed: 1022
Motor Throttle :1996 // this is the Throttle 100%

Got no idea what should I do.

How about posting a link to the Hobbyking ESC page so the rest of us can can see which ESC you're talking about? If it's this one then it has a manual in Upload Files but unfortunately it's in very poor English so really difficult to read.

If you have a potentiometer you can use the Knob example program to check out the ESC and its arming sequence etc. in place of a servo tester.

Your text seems to say that for arming you need to write 1000ms, wait a while (2 seconds will probably be o.k.) then write 2000ms then write 1000ms again. But that's just a guess.

Steve

The link you sent is the right one,
I also manage to find its datasheet, its a pdf.file so you have to write this in google
"HOBBYKING BRUSHLESS ESC User Manual -" and get to the second result, page 4.
This is what i think that is relevant for me, tell me what you think, beacuse I realy can't understand any of it.
I think those are the important 3 phrases from that file,

Powering up the ESC for the first time and setting the Automatic Throttle Calibration
The Hobbyking ESC features Automatic Throttle Calibration to attain the smoothest throttle response and resolution
throughout the entire throttle range of your transmitter. This step is done once to allow the ESC to "learn and memorize"
your Transmitter's throttle output signals and only repeated if you change your transmitter.
1 .Switch your Transmitter ON and set the throttle stick to its maximum position. 2.Connect the battery pack to the ESC.
Wait for about 2 seconds, the motor will beep for twice, then put the throttle in the minimum position, the motor will also
beep, which indicates that your ESC has got the signal range of the throttle from your transmitter.
The throttle is now calibrated and your ESC is ready for operation.

Normal ESC start up procedure:
• Switch your Transmitter ON and set the throttle to its minimum position.
• Connect the battery pack to the ESC.
• When the ESC is first powered up, it emits two sets of audible tones in succession indicating the status of its
programming state.

  • The first set of tones denotes the number of cells in the LiPo pack connected to the ESC. (Three beeps (** ^indicates
    a 3 cell LiPo pack while 4 beeps (»:diamonds::diamonds:*) indicates a 4 cell LiPo pack).
  • The second set denoting Brake status (one beep() for Brake "ON" and two beeps (:diamonds:) for Brake "OFF").
    *The ESC is now ready for use.

Entering the Programming Mode:

  1. Switch your Transmitter ON and set the throttle to its maximum position.
  2. Connect the battery pack to the ESC.
  3. Wait until you hear two short beeps ( **) confirming that the ESC has now
    entered the programming mode.
  4. If within 5 seconds, the throttle stick is lowered to its minimum position, an audible tone is emitted confirming
    that the throttle calibration setting has changed. If the throttle stick is left in the maximum position beyond 5
    seconds, the ESC will begin the sequence from one function and its associated setting options to another. (Please
    refer to the table below to cross reference the functions with the audible tones).
  5. When the desired tone for the function and setting option is reached, move the throttle stick down to its minimum
    position. ESC will emit two beeps (**) confirming the new setting has been stored.
  6. The ESC only allows the setting of one function at a time.
    Therefore should you require making changes to other function, disconnect the battery pack and wait S seconds to
    reconnect the battery and repeat the above steps

takproj:

  • The first set of tones denotes the number of cells in the LiPo pack connected to the ESC. (Three beeps (** ^indicates
    a 3 cell LiPo pack while 4 beeps (»:diamonds::diamonds:*) indicates a 4 cell LiPo pack).
  • The second set denoting Brake status (one beep() for Brake "ON" and two beeps (:diamonds:) for Brake "OFF").

So, if the OP is getting 3 beeps and then one beep, I read this as the ESC saying that it is connected to a 3 cell LiPo battery and that the brake feature is enabled.

If the sketch does not affect the ESC behavior at all, I would first look at the wiring. Can you show us a wiring diagram? Pencil, paper and a camera are usually good enough. Also, show us a pic of you actual setup.

Thanks for all the help guys,
I'm not longer working on this motor.

vinceherman:
If the sketch does not affect the ESC behavior at all, I would first look at the wiring. Can you show us a wiring diagram? Pencil, paper and a camera are usually good enough. Also, show us a pic of you actual setup.

Just got the motor back again.
Tommorow I will post the wiring diagram with a photo.

So let me start over, and make it all clear
This esc and motor have been used before with a matching bought remote controll,
I'm using my joystick and want to programm it from scratch.
I am using arduino Uno to programm my esc and to use my motor,
I got joystick to control it,
all i want is to control the motor speed, with my joystick (just a joystick, NOT a transmitter controller).
I got no idea how to make it work,
I'm using 1000kv motor with 40A esc and 1450mA 3s battery,
This is MY ESC:

This is the ESC MANUAL:

My CONNECTIONS:
all i connect is my 3s lipo battery of 1450mA, I connect the Black esc plug to arduino gnd and the White plug to digital 6 leg.

This is My PROGRAMM:

#include<Servo.h>
Servo esc;
const int Y_pin = 1;

void setup() {
esc.attach(6);
esc.writeMicroseconds(1000);
Serial.begin(9600);
}

void loop()
{
int val;
Serial.print(" analogRead: ");
Serial.println(analogRead(Y_pin));
val=analogRead(Y_pin);
val=map(val,515,1023,1000,2000);
esc.writeMicroseconds(val);
Serial.print("Motor Throttle :");
Serial.println(val);
delay(1000);
}

I dont know if 1000 and 2000 are good values, I took them from programm I saw on the internet.
After I compile this programm to my arduino, This is the serial monitor:

WITHOUT TOUCHING the joystick (Middle position):
analogRead: 515
Motor Throttle :1000

Joystick moved up(Max position):
analogRead: 1023
Motor Throttle :2000

Not using Minimum position of analogRead 0,
I want the motor to do nothing when i dont touch it so, my minimum speed(0) is the middle.

When I first go for Middle position (analog read 515) and then I connect the battery,
The esc makes : 1 middle length beep and then 1 short beep and nothing after,
something like "Too To".

When I first go for MAX position (analog read 1023) and then I connect the battery,
The esc makes : All different kinds of beeps, and if I move it to Middle position back (analog read 515) it does 2 beeps and then nothing.

My Joystick connections are fine the problem is with this programm and beeps,
waiting for your comments...

From your manual

Powering up the ESC for the first time and setting the Automatic Throttle Calibration The Hobbyking ESC features Automatic Throttle Calibration to attain the smoothest throttle response and resolution throughout the entire throttle range of your transmitter. This step is done once to allow the ESC to "learn and memorize" your Transmitter's throttle output signals and only repeated if you change your transmitter. 1 .Switch your Transmitter ON and set the throttle stick to its maximum position. 2.Connect the battery pack to the ESC. Wait for about 2 seconds, the motor will beep for twice, then put the throttle in the minimum position, the motor will also beep, which indicates that your ESC has got the signal range of the throttle from your transmitter. The throttle is now calibrated and your ESC is ready for operation

This does not quite sound like what you tried.

Set the joystick to maximum.
Plug in your ESC.
Wait for beeps.
Set joystick to minimum.
Wait for a single beep.

Let us know if this does anything.

As a side note, on most ESCs that I work with, you start with the joystick at minimum.
Plug in the ESC.
Get some beeps.
Move joystick to maximum.
Get some beeps.
Move joystick to minimum.
Get some beeps.
Now the ESC is armed/initialized and further joystick movements will command the motor to turn.

takproj:
My CONNECTIONS:
all i connect is my 3s lipo battery of 1450mA, I connect the Black esc plug to arduino gnd and the White plug to digital 6 leg.

No that isn't all you connect because that would have no power to the Arduino so I guess you also connect the USB cable to the Arduino or maybe the red wire from the ESC to somewhere.

The factory settings for that ESC should be fine so you shouldn't have needed to program it. Try extending the signal width to 600 to 2400 instead of 1000 to 2000. I.e. change the map to 600, 2400) and the initial write to 600. And then try the throttle range setting again (joystick full up, then connect the battery and wait for two beeps, joystick to zero, wait for beep). You only need to do that once.

Normally the Arduino should be powered and sending a low signal (joystick centred in your case) BEFORE you connect the battery to the ESC. You should get 3 beeps (3S battery) followed by 1 beep (brake off). If you're not getting the 3 beeps then the ESC is not recognising your battery correctly.

Steve

vinceherman:
Set the joystick to maximum.
Plug in your ESC.
Wait for beeps.
Set joystick to minimum.
Wait for a single beep.

Let us know if this does anything.

Just did what you said, I set it to maximum and i get 4 single beeps and than some different kinds of beeps like i described, I took the joystick to minimum after 3 beeps and then he made like 2 more beeps and then nothing.
and i tried again after 4 beeps and weird other kinds of beeps to take it to minimum and he did the same 2 beeps and then nothing.

DEAR GOD I JUST DID THAT AND I WAS GOING TO TAKE THE BATTERY OUT, BUT THEN I MOVED THE STICK UP AGAIN AND THE MOTOR MOVED!!! IT WORKS, IM NOT SURE WHAT HAPPEND BUT TY SO MUCH GUYS

Now the problem is that i think that when ever I pull the joystick up it going full speed, So now I got a new problem.

Its working fine just sensitivity thing,
Tnx.

Good that you got it working

takproj:
Now the problem is that i think that when ever I pull the joystick up it going full speed, So now I got a new problem.

What load do you have on the motor? If you are running with no load, applying just a little throttle will make the motor spin at high speed and it might look like it is going at full speed.

Operated it without anything on, thats why.