Skip to content

Eachine Mustang P-51D aileron servo repair

May 4, 2021

The aileron stopped working on my Eachine P51d plane. This post describes how to solve this issue.


Update (08/06/2021): I found a much simpler fix for the issue. See at the bottom of this post.

This post is a follow-up to my previous post about this plane. In the last post I described the damages and repairs coming from a battery connected in reverse. After these fixes, the plane flew again good as new for a couple of months. Then, suddenly, it behaved very odd. It showed the following sympthoms:

  • The aileron control stick on the RC moved the rudder servo instead of the aileron servo
  • The rudder control stick on the RC was completely dead
  • Everything else worked as expected
  • The aileron servo moved left-right-center on power-up but otherwise was completely stationary

As odd as it looks, there is a simple explanation to this behavior. The receiver PCB I repaired in my fist post is actually used in different types of planes. The P-51D is a 4 channel type, but there are also some 3 channel type planes using this PCB. So for some reason, the receiver thinks it is mounted in a 3 channel plane. This post finds the cause of this and also shows an (extremely stupid) fix for this.

Analysis

As described above, the reason for the odd behavior is that the receiver thinks it is mounted in a 3 channel plane. So the obvious question is: Why?

The next obvious question is: How does the receiver actually know which type of plane it is? A jumper on the PCB or different firmware versions would be simple measures to differentiate between plane types. But the designers of the receiver took a more elegant way.

Rudder and elevator servos are integral parts of the receiver PCB. This makes sense since these are needed in both 3 and 4 channel planes. The aileron servo is connected via a plug to the receiver PCB. And this is how they differentiate: They simply detect whether an aileron servo is connected or not.

Alright, easy enough, this means that the receiver cannot detect the aileron servo anymore and so it switches to a 3 channel. But… the servo actually works fine and even moves at power-up! So the receiver sends movements to the aileron servo and the servo moves accordingly. What?? Why does the receiver then think that there is no servo connected? Maybe the receiver is to blame?

It turns out that the servo is the culprit. And I am not the only one having this issue: https://www.youtube.com/watch?v=KNiZMd9VDoY Apparently, the servo was damaged as well from the reverse battery incident but lived on for a couple of months. After that it failed as described above.

Unfortunately, I do not have a suitable measurement tool at hand to understand how exactly the receiver determines the presence of the servo motor. I tried some simple thinks like adding a pull-up or pull-down to the data line to fix the issue but that did not change anything. So it seems to be a bit more involved than that.

Solution

The obvious and easy solution to the issue is then to simply replace the aileron servo. But hey, you are on my blog so of course I solved the issue the stupid way… I built a Frankenstein servo.

I still had one of these cheap Turnigy servos laying around:

So what I did was I opened up the original aileron servo, removed the electronics and put in the electronics of the Turnigy servo. And this (to my own surprise) fixed the issue: The receiver recognizes the Frankenservo and it moves like the old one does.

Here you can see a picture of the monster:

If you are doing something similar and your servo spins endlessly after power-up you simply need to swap the polarity of the DC motor.

Summary

To summarize, my poor little Eachine P51-D flies again thanks to the Frankenservo. Just remember: Stupid causes (reverse battery) are best fixed with stupid solutions (Frankenservo) 🙂

Update (08/06/2021)

Even with the fixes described above, I still had occasionally the issue that the aileron servo did not work. Therefore, I researched a bit further how the actual detection of the presence of the aileron servo works. Remember that on powerup the aileron servon moves from left to right? This is part of the detection. Apparently, they measure the battery voltage and since a moving servo consumes more current, the battery voltage drops and they thus are able to detect the presence of the servo.

For whatever reason, this detection did not work reliable anymore. The fix is really really simple. Just increase the current draw of the aileron servo. I simply wired a 8 Ohm resistor in parallel to the internal DC motor connections of the aileron servo. This way the servo consumes more current when it moves and the flight controller is again able to detect the presence of the servo. This fix will also work without the Frankenservo modification (using the standard aileron servo).

From → Uncategorized

3 Comments
  1. Don Filmer permalink

    8 ohms seems like a low value and would draw a lot of current. Did you try higher values?

    • Probably a higher value would work too. 8Ohm equals to 500mA max. But since the motor idles most of the time and only does small and short movements, the average should be quite low.

    • I did not notice any reduction in battery time.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: