Analog versus Digital Servo problem

I have updated a VTOL front motor tilt plane to 4.6.3 which was sitting there without flying for about two years.

I got the following issue (which may not be related to 4.6.3): all analog servoes started to buzz and heat up very quickly (to 70 C in a few minutes). I tried to connect a digital servo of the same make, and it seems to work Ok, same brand analog servo buzzes and heats up (I use corona CS-939 MG and DS-939 MG).

Not sure at all where the problem may lie.

The Servo Update Rate is set to 50 Hz SERVO_RATE

Also, the DHOT for motors is disabled, Q_M_PWM_TYPE is set to 0

And all the masks are also set to zero (SERVO_BLH_XX)

Not sure where the problem may lie. I have burnt already 4 servoes before I could pinpoint the issue to analog servoes, but I am still in the dark as to why.

I feel that somehow ardupilot sends higher frequency PWM signal out, but I am not sure if that is the case and why.

1 Like

We’re the servos commanded to a position they couldn’t reach?

1 Like

Please show the logfile of the issue

Yes, the servoes are positioned correctly, and they correpond to at least three different channels (elevator, rudder, and camera tilt, the latter being just RC9In).

A note: it started with the F405 Speedybee autopilot which was originally installed, and then I changed the FC to Matek 743-Wing.

I took out oscilloscope to check things out, and I discovered what I suspected: on Channel 10 S10 I got a period of 2 mS. The positive length pulse correlates with stick input.

Now, Channel 1 and 2 S1 S2 work correctly (I checked them with osciloscope, and they have a period of about 20 mS (50 Hz).

I did not check other channels with osciloscope, but from buzzing I am pretty sure that

Channel 3 and 4 S3 S4 definitively have the same problem as Channel 10.

The screenshot below is from Channel 10.

Somehow I think it could be related to Dshot issues, in fact, CH1 and CH2 belong to Group 1 according to Matek, and the other Channels to Group 2,3, and 4, and manual warns that within same group all outputs must be configured of the same type.

However, I believe I do not have Dshot enabled and the frequency is set to 50 Hz.

Here I upload the parameter file

VTOL TRI.param (35.5 KB)

Vtol Tri Latest.param (38.2 KB)

I also noted that there is a parameter Q_RC_SPEED which is set to 490 Hz

This is the PWM refresh rate in Hz for QuadPlane quad motors

Not sure if that could be the issue, since 490 Hz is about the frequency with which the output is sent to S3..S10.

I set Servo functions S6,S7,S8 as Motor 1, Motor 2, Motor 4, and these S6..S8 correspond to Groups 2 and 3 which have the problem.

I think I solved the mystery: The behaviour is this:

If any Servo Output is configured as Motor 1..X, then Q_RC_SPEED is the refresh rate for all channels, not only for the motor, in the output group which corresponds to that motor.

Otherwise, the SERVO_RATE is the refresh rate.

This point should be made stressed in the documentation. I spent several hours figuring this out… And now I have also to replace two embedded burnt-up servoes…

1 Like

True, we do fairly poor job of exposing output groups to the user.

1 Like