Hi all,
I'm having a heck of a time getting my ESCs calibrated & motors armed… getting a slow beep every second from 2 of my 6 ESC/motors. I'm building a 3DR Hex kit with 20 amp ESC & 880kv motors.
Here's what I did:
- Manual ESC calibration:
- Disconnect USB
- Tx off
- Disconnect LIPO
- Connect ESC 3-wire plug into RX throttle channel
- TX on
- TX throttle up to maximum
- Connect LIPO to ESC,
- Wait for musical notes & then 2 beeps, immediately drop throttle
- Listen for 3 beeps = 3S pack
- Listen for single longer beep = end points are set
○ I Never got confirmation/arming beep from ESCs
○ I Get a constant beep every second with APM blinking A/red LED & solid C/blue
○ Are the ESCs successfully calibrated?
• Wiki says… ' If the ESCs are not beeping or are beeping slowly but the motors still wont arm, try setting the transmitter trim 7 or 8 down from center. An offset below zero is needed to permit arming.' I recalibrated the Radio in MP.
See attached scn prnt
I set the JR transmitter XG8 Sub Trim function from 0 to 'Low 51' (to address the wiki 'offset below zero needed')
Result is I get same slow (1 per second) ESC beep & can't arm 2 of my 6 motors
I have done this 8 times. I'm stuck & need some suggestions.
Any ideas please?
Replies
The Good News: I've solved the issue.
Tracing with a logic analyser revealed the exact problem. Power is applied at A. When APM initilizes the rc channels, it activates the outputs and drives them high at B. PWM starts at C.
It's the long (and invalid !) high pulse between B an C that bothers the 5 non-arming ESCs. The other 3 don't seem to mind.
I dug into the code, and found the culprit in the method APM_RC_APM2::Init in the file APM_RC_APM2.cpp in the APM_RC library. There the outputs are initialized to HIGH, twice for every output channel. Strangely enough, the comments say:
digitalWrite(12,HIGH); // pulling high before changing to output avoids a momentary drop of the pin to low because the ESCs have a pull-down resistor it seems
That is simply wrong. Since RC pulses are active high, the outputs must be initially LOW for some time before the PWM starts. So I've changed every digitalWrite instance (sixteen, two for each pin 12,11,8,7,6,3,2,5) from HIGH to LOW, and now the trace looks like this:
The nice long low state between B an C allows all 8 ESCs to arm correctly.
The code attached is the modified file from ArduCopter-2.7.4-Beta.
The Bad News:
The fix must be applied and the code rebuilt from source, and this will need to be done for every version until it is accepted into the code base. Personally, that doesn't bother me because I intend to change the code anyway for the weird stuff I'm planning to do (hint: with 8 motors there are 8 degrees of freedom, of which now only 4 are used (roll,pitch,yaw and collective).
Other Bad News:
I am disappointed in not having 8 identically behaving Turnigy Plush 25A ESCs, despite ordering them at the same time. I hope this won't cause other problems later due different response curves etc.
APM_RC_APM2.cpp
Usually when we have similar type beeping problem it is because of no signal is going to ESCs. There can be many reasons for this. Software does not work correctly, ESCs signal cables are connected to GND pins instead of Signal pins. APM does not reboot correctly or even in worst case broken hardware. Have you checked all these already?
Alrighty then...
Have you tried moving the beeping ESCs to spots that do not beep?
Move wires connected to the output header and see if the non-beeping ESC becomes a beeping ESC.
(This will tell you if the issue is on the APM side or the frame/wiring side)
NOTE: The graphic below does not represent the actual APM motor connections - it is only a conceptual diagram.
If the same ESCs beep at a different location, something is awry with the wiring or ESC. Wiring would include the PDB and the solder connections to it.
-=Doug
When I had this problem with my quad, I made a wiring mistake by orienting the ESC drive leads to the wrong end of the Output header.
OR... is it possible you have set up the APM software for Quad instead of Hex?
Another member had it the other way. He has a Quad, 'Frame' was set for 'Hexa' and was having terrible control issues.. no doubt. HERE is his find.
-=Doug
bump