MartinL:
Hi Marco,
Normally, the ESCs need to be calibrated to throttle range expected from the receiver's throttle channel, however nowadays some multi-rotor ESCs come with a preset throttle range.
The standard procedure is:
- IMPORTANT: REMOVE THE PROPELLERS.
- Power up your transmitter and move your throttle stick to its maximum position.
- Power up your ESC, the ESC should detect the throttle high and enter calibration mode.
- Wait for the ESC to acknowledge the throttle max. positon with a beep or series of beeps.
- Move the throttle stick to the low position.
- Wait for the ESC to acknowledge the throttle min. position with a beep or series of beeps.
- The ESC has been calibrated.
8 ) Unplug the ESC power cable.
Most RC commercial flight controllers have an ESC calibration mode that allows the throttle channel from the RC receiver to pass through to the motor outputs. (The latest pass through serial data to configure the ESCs). If you don't have an ESC calibration routine then it's possible to individually connect the ESCs to the RC receiver's throttle channel, repeating the procedure above 4 times (for a quadcopter). If you're not using an RC receiver then it's necessary for whatever device you're using on the throttle channel to produce 50Hz, PWM pulses within a 1000us to 2000us (min-max) range. Standard RC receivers produce pulses around 1100us to 1900us.
It's normal for some ESCs to generate a periodic beep when no signal is detected.
In the initial stages, I'd suggest just removing the props and driving the ESCs and motors directly with whatever device you intend to control your quadcopter. It won't fly, but will test your receiver and ESCs/motors are working correctly. Once you've got that going, only then add the gyro/accelerometer, PID loops and motor mixing.
Note: Don't run the motors at maximum throttle, (when you don't have the propellers attached for testing), or they'll burn out.
First of all thank you for taking the time.
What i am doing to arm the ESCs is sending a 1000ms pulse when the start but that seem to not be the right way to do it.
As you can see i am not using a transmitter, so how should i make the arm routine in arduino code?
This is what i am doing now
//Asignar un pin al ESC
motor1.attach(6);
motor3.attach(5);
motor2.attach(9);
motor4.attach(10);
//Activar el ESC
motor1.writeMicroseconds(1000); //1000 = 1ms
motor3.writeMicroseconds(1000);
motor2.writeMicroseconds(1000); //1000 = 1ms
motor4.writeMicroseconds(1000);
delay(5000);
How should i arm them correctly programatically since i do not want to use a transmitter
Let me know if there is some other usefull info that i can provide?
Your advice is really useful,
And thanks for this
Note: Don't run the motors at maximum throttle, (when you don't have the propellers attached for testing), or they'll burn out."
Thanks,
Marco