For anyone else looking at this, most of our problems seemed to result from not having the pulse range quite right. We eventually hooked our ESCs up to a standard RC controller and used an oscilloscope to figure out the exact pulse range they would respond to.
I'm working on an Arduino-controlled quadcopter using Tower Pro W18A (which are actually labelled Toward Pro). I'm using the Arduino Servo library to control the ESCs ( Electronic Speed Control).
The problem is that the ESCs don't start responding immediatley. There is some sequence of throttle commands that has to be sent before they will turn on and begin responding to commands.
At first, I created a program to let us set the value being sent to the speed controllers manually from a slider. Using this, I've discovered that starting at 0, sliding up to around 70-90, and then sliding back down to zero activates the ESCs. After that, they respond normally.
For some reason, I haven't been able to replicate this in code, though. This is what my code looks like at the moment.
Serial.println("Setting all to 0...");
setAllESCs(0);
delay(2000);
for(int i=0;i<70;i++){
setAllESCs(i);
delay(20);
}
for(int i=70;i>0;i--){
setAllESCs(i);
delay(20);
}
delay(2000);
Serial.println("Ok, trying at 50...");
setAllESCs(50);
delay(500);
Serial.println("Going in 1 sec...");
setAllESCs(0);
delay(1000);
I've tried several variants. 0 to 90 to 0. 0 to 180 (max) to 0. 0 sliding up to 90 and back to 0. No luck yet.
Does anyone have experience with getting this activation of the speed controller to work?
There are numerous mentions online of the (limited) documentation that comes with the ESC being wrong, but nothing providing more detail about this.