DSM44 servo failure

I use Power HD High-Speed Digital Micro Servo DSM44 with Arduino Uno micro controller and Adafruit servo shield on 6V 8A power supply about for 5 month successfully.

By some reason, motor does not moves anymore. I’m trying to figure out, if I am able to find the problem and fix it some way.

Intensive mass acceleration on this particular motor with load is 56 grams.

The failure occurred on its own, without stretching the wires, drop of device, or pressure against the limit, since there is no such in mechanism and angle degree was measured previously, as I have already said, it was working for several months.

Here is description of behavior of motor after failure:

  1. Normally gear of the working motor rotates if you turn it manually (what is highly not recommended to do), I just give this example to describe the state of the motor after damage, because now this motor does not rotates from the external gear, but still rotates from DC motor gear manually. If motor were stuck for some mechanical reason, then I guess the rotation would not be possible from both sides, I’m not sure. Otherwise it must be some kind of failure with solenoid, maybe

  2. Visually all contacts inside looks good, wires are not connected anywhere to each other or disconnected from control circuit.

  3. With giving of PWM to motor, h-Bridge on IC gets hot, but motor does not moves. I’m not sure, but as I know semiconductors usually fail short-circuit which would explain heat with no movement and no visible damage. So, there must have been a short-circuit, but in the past this had already happened and the motor didn’t fail completely

  4. If particular damaged motor connected to the shield, when disconnecting USB from PC and keeping power adapter connected to shield, other motors begin to move by itself out of control with random angles. Similar behavior was observed if wires inside of some motor are in contact, which I’ve fixed once with soldering and varnishing of contact, but now problem looks different

  5. Disconnected motor V+ and Gnd with 2000 Ohm LCR meter shows 549, when all other DSM44 working servos shows the same 561

Any advice, guide or example would be very helpful

Hello,

Can you tell us more about how you are using the servo (how long it runs for, how long between activations)? Can you estimate how many servo movements the servo might have done before it fail over the last 5 months? Also, can you post some pictures of the servo in your setup? If you have another servo, can you put it in your setup and post a link to video of it in motion?

-Derrill

Hello Derrill

Thank you for your feedback

I’m using DSM44 for quite fast and intensive movement, but not with constant load, rather fragmentary with different intervals of time between activation and activation for rest, maximal activation period is one minute, rest can be 2 minutes. It is not very wide angle of degree 160-430 is maximum, mostly much less 160-190, short and fast movement about 2-3 messages per second, mechanical mass acceleration 50-200 grams, broken one was with minimal load. It newer goes against own limit or any external limit in assembly, in mechanics I’m using anti-limit heads instead of horns, which is able to allow servo freely turn around own axis in case of unexpected angle, for example with some electricity failure, there is no weight or pressure on it.

I think the wires used in particular device are very fragile, as I’ve already said, I was reached a short-circuit with another DSM44 servo by this reason, at that time I managed to fix it, motor still works

I’m not sure about how many movements broken motor did before fail, but I think not enough, to say many, also because this part of mechanism was added later than others, so this motor is newer compared to other

Without having some idea of how many cycles the servo performed and what kind of load it was under, it is difficult to say whether or not the failure was simply due to the wear or something else.

Typically, it would not be surprising for a hobby micro servo like that to fail over a 5 month period of intermittent intense use.

-Derrill

Well, as I have said above the load is minimal, but now I’m sure, this device not works well, or I just get defective motors from pololu, because another DSM44 motor failed, which load was extremely minimal, it simply turns own plastic horn in fact almost without anything on it, using period 10 minutes, turn from side to side with 10 seconds rest interval, i just took it out of the box, ordered 10 May 2019 from pololu, the same thing happened to it

Previously I have checked all pins on Arduino controller and servo shield with 1000uF capacitor for 8 motors which is 6 DSM44 and 2 FEETECH Mini Servo FT1117M

I’m not sure if hobby means immediately broken, I bought this motors because it is fast and quite powerful by given description, with a lot supply of weight in relation to my load, which maximum is 150 grams

It is very difficult and expensive to me send motors back, because I am very far from US. Can you give me some useful guide for checking and repairing at home, what to check and how to fix, at least I want to figure out what exactly happened to these two motors, what exactly is the defect, and could I somehow fix it. The motor main gear just does not reacts to command, there was no smoke, I can’t see anything melted inside on IC or in contact between wires

Maybe you can advice me some more reliable servo about the same size, which should be same fast 6V: 0.07 sec/60° and torque no less 1.6 kg cm because in project I need it intensive with supply for weight load maximum 200 grams

Hello,

It is probably not practical to repair a broken servo since parts are not likely to be readily available locally and they could be broken in a number of ways.

Having broken another servo makes it seem like something is not as simple in your setup as you believe. Can you take the newer servo apart to see how what part failed (e.g. did one of the gears break, is it a motor issue, etc)? Could you post a video of your setup showing how you’re using the servo?

-Derrill

Here is (new, arrived to me yesterday, my order) broken servo place replaced by older working one to show you movement, which goes by +1 increment, it is very slow and never jumps abruptly through steps, no load and no limit against movement, just moves two eyeballs from one side to another, mechanism is quite small and moves very easily, without a motor, the mechanism literally moves from position to position simply even from a slight inclination of the part to the side

and here is more intensive part, where another motor was broken, which is eyelids, mechanism is also very soft and easy moved, but movement is much faster to open and close eyelids, sometime 3 times sequentially, 2-3 messages per second, to do fast multiple blinking, in this case from position to position for example from 160 to 430. Nothing comes into contact with anything to block each other in mechanism during process, it is completely checked. Below shown arm glued with original hardware. Weight of eyelids, moving arm, rod, servo arm, and own hardware including is 56 grams.

So it is absolutely different intensiveness, movement and different pins (other pins also checked for both as damaged as well as for working servos, if assume that the problem came from the controller), but the damage result with motors is same

As you can see even if the motor will rotate for 360 degrees for some unexpected reason, it will not reaches limit, but just will go freely in the opposite direction in both example as eyeballs from side to side and eyelids open-close, it is provided for all moving elements in the mechanism

What about broken servos, I can’t find anything what looks broken, melted, disconnected, or incorrectly connected inside, gear turns by turning main gear manually well, and it produces some slight noise with touching by finger when it is connected to the shield, but does not turns with command, V+ and Gnd shows the same as described above

this is problem, because now I have to order 2 new motors at once, and wait again until the devices will be delivered to the opposite side of the planet, what requires about a week, but I’m not sure if it will work, it may be necessary to change the mechanism for other servos and print everything again, also it is not too easy to find such small, fast and powerful motors. All this setup was done with different motors, which was never broken, but was slower, weaker torque and plastic gear, that’s why I have changed everything for DSM44

Your eye mechanism looks really cool!

It sounds like the servo control electronics might have been damaged somehow. One way you could verify this is by disconnecting the motor inside the servo from the control board and seeing if it and the gearbox work as expected when powered directly.

If the electronics are damaged, that would almost certainly be caused by exposure to conditions beyond what it is rated for. Some power supplies can have unpredictable or ugly start-up characteristics when first turned on, with the voltage spiking well above the set point or sometimes even going negative. Do you ever turn your power supply on while the servos are connected? If so, can you measure your power supply with an oscilloscope to see if there are any odd voltage spikes on power-up? Also, can you measure the output to be sure it is 6V as expected?

Another possible explanation could be sending the servo signals while it is unpowered. Is there the potential for this in your setup?

Also, can you post your code?

-Derrill

Thank you!

I’ve designed this for small size anthropomorphic animatronic robot project, mechanism implements control of X, Y and eyelids, complete assembly uses 6 DSM44 and 2 FT1117M servos. Once I’ve posted question about hardware Suitable metal horn for DSM44 with 20T 3.5mm and FT1117M 25T 6mm servo gear, but in the end I’ve solved this problem by gluing of original hardware with 3D printed arm as shown above

I’ve checked both with direct powering, seems like motors are dead. So I’ve ordered 2 new units of DSM44, I don’t want to change the whole mechanism for other motors yet

Please correct me if i get it wrong, you mean, if I have ever plug power supply to electrical outlet while it is connected to shield with servos. If so, usually I plug adapter to electrical outlet first, then plug jack to shield, so each time I plug power jack to device, servos are connected, when adapter is already on, but I do not rule out that at some point this did not happen, even this tester shows 6.426 V, oscilloscope not shows anomalies with plug to electrical outlet and after

Once again, if I get it correct, if I ever send signals via USB to controller, or from Arduino controller sketch with process or turn on for example, when shield with servos unpowered from power adapter? If so, yes, it is possible, because sketch setup() sets number of default positions for motors with plug of USB to computer and turning on, not excluded that at some point, I’ve connected controller without having connected the adapter

Another thing that symptomatically corresponds to this reason, both times I found the motor in malfunction with starting of new session immediately after connecting, it did not happened during the process. Seems like I have to monitor power to avoid setup() commands, or any other signals during process in case if shield is not powered with adapter.

Could you explain me a little on this, please, how it influences motor and what is a best way to avoid such condition automatically, even if need to send signals with controller turn on exist and necessary, but adapter is not connected to shield first accidentally.

If this is the reason, this is what I think to do according Arduino forum advice, please check if i am on the right track:

The voltage divider consisting of the resistors will divide the 6V to 5V for the controller digital input. The values should not be a critical, can be made higher, but maintain the relationship to still get the 5V. The diode will prevent current to flow from the shield into the voltage divider, when the shield is powered through other means. Now I can do a digitalRead(pin) on the digital input pin to check, if the power was applied:

Nbde6

simulation of this circuit

Another advice offers monitor power to the servos using one of analog pins analogRead(pin), seems like depending, on if you need a simple yes no result or the specific voltage level, but I do not have enough experience here to be sure which of the options is more suitable and what is the difference for particular case. As it was explained in case of using normal power adapter, which means, that the 6V for the shield are already regulated beforehand. In this case there are only two possibilities, 6V or no voltage at all, then the digital pin should be sufficient. In case of battery connected there and want to also sense the low voltage case, I can use an analog pin

Here is other found close guides:

  1. Measuring DC Voltage using Arduino
  2. Arduino Battery Voltage Indicator
  3. Arduino energy meter

Controller code only receives value pwm.setPWM(1, 0, Serial.parseInt()); with separate condition for each motor from desktop control application different ways, PWM frequency pwm.setPWMFreq(60);. It never goes out of min-max range, previously found for particular servo, defined in controller sketch as 160-500, and even more limited for each process in main output code in range of 170 to 430. But as I noted above there is setup() with “turning on” positions

I’m surprised that the motor is the damaged part, so I just want to make sure your direct test was valid. Did you physically disconnect the motors from the control electronics before trying to apply power, and did you make sure the motor wasn’t being blocked by a jammed gearbox?

If the motor is the part that failed, I think it is much less likely that the failure was caused by a spike from your power supply or sending logic signals when the servo was not powered. However, these are still generally situations that it is good practice to avoid.

To answer your questions, if you have looked at the way the output voltage rises when you plug in your supply and did not see any large spikes, it is probably okay. If you send signals from your controller while the servo itself is not powered, the servo’s built-in control board could try to partially power itself through the signal input pins which could damage it. (This is generally true of electronics like this, so we recommend avoiding it.) You could read the servo power voltage with a divider like you mentioned to try to detect when the servo is not powered, or you could just make sure that the servo is never plugged into your controller when power is not on.

Unfortunately, at this point it is not clear to me what might have damaged your servos. Please let us know how it goes with the replacements.

-Derrill

Here is a principal way, how I’ve checked motor, of course with a more accurate connection, rather than just pressing it with fingers as shown. Disconnected from the control electronics:

60724392_371517187044420_8696275001541656576_n

I’ve tried directly from adapter, as well as from the controller. If motor is in a good condition, even this way, it should have work. Motor from damaged DSM44 does not turns. I’ve checked different working motor same way, and it works.

Gears turns well manually, it doesn’t seem like something might get stuck there:

As I’ve said above, once was a shorting in contact between S, V+, G wires. Problem was solved with using of varnish where the wires are soldered with control electronics. Shorting was manifested with disconnecting of USB and keeping power adapter connected to shield. All motors begin to move by itself out of control.

Shortly before the failure, sometime slight random movement (in this case not for all, but for one of motors) was also observed. If there is no other obvious reason, maybe, it is possible that such situation could damage the motor, I’m not sure. However, all motors that behaved in this way and then were varnished, still works

Power plug moment on hold and direct line after, on the right, voltage:

Thank you for that additional information. Can you measure the resistance across the motor terminals?

-Derrill

Broken motor 1, removed from control board, meter on 2000k Ω, without turning by hand:

VΩmA to red wire, COM to blue wire = 0

with turning by hand:

VΩmA to red wire, COM to blue wire = 570, 1165, 1319…

but not constantly, maybe my tester is not accurate enough, and same with damaged motor 2.

broken motor 1, again soldered with control board, in this case meter on 2000 Ohm:

VΩmA to V+, COM to Gnd = 1315
VΩmA to Gnd, COM to V+ = 610

broken motor 2:

VΩmA to V+, COM to Gnd = 1348
VΩmA to Gnd, COM to V+ = 606

One of working motors, meter on 2000 Ohm:

VΩmA to V+, COM to Gnd = 1292
VΩmA to Gnd, COM to V+ = 608

Also, I’m not sure why, but this value changes and goes down each time I touch wire with terminals, as well as I do not quite understand, what determines the difference between these results. As I said, possibly LCR meter is not accurate enough, or I’m doing something wrong way. If so, then please tell me what exactly I am doing incorrectly.

Can you post some pictures showing how you are measuring the resistance, including your meter display?

-Derrill

Soldered with board shows numbers from control electronics, and separated motor is zero with damaged motors, except mechanical manual turning as shown above. Measuring the resistance:

Those results seem consistent with failure of the brushes. Several things can cause this, but the most common one is wear from friction over the full lifetime of the servo.

Please let us know how your replacement servos seem to be working in your setup once you get them going.

-Derrill

I’ve bought a two new motors, but It seems it was a last DSM44 in stock. As I get it, Pololu did not updates immediately the product when it ends. I would like to get several units of this servo, if something happens again and I will be forced to use spare motors, also I don’t want to buy it from another source. I should have a demonstration of my robot in the near future, and I would like to have some guarantee in case of a malfunction

You’ve said there are number of reason resulting with failure of the brushes, so I’m trying to figure out somehow, what to do further, get more DSM44 or use something else, because, as I have said above, one of damaged motors was absolutely new. Could you list this reasons, please, what can cause this, and what is a “full lifetime”, how do you measure this?

PowerHD (the manufacturer), does not specify the use life of those servos, and ultimately the lifetime depends heavily on the actual application. My reference to the “full lifetime of the servo” was just regarding having the failure mode be wear from your particular application as opposed to some kind of sudden, catastrophic failure from exceeding what the servo can tolerate.

While those servos are currently out of stock, they can be backordered and will ship once we receive more. Unfortunately, we don’t have a good estimate right now for when that will be, but we should know more in a few days.

There is likely more than a single cause of failure for those two servos. Worn brushes would account for the damage to the old servo that lasted for about 5 months. Other causes like power spikes, improper power connections or ESD could have damaged the newer servo. There are likely other factors that could be causes, but speculating about all possible causes is probably not practical with the limited information we have.

-Derrill

Thank you for your attentive support

Finally I’ve received the motors, I’ve already added new servos to assembly. I hope it will work fine. Sometimes, very rarely, when the motors reached their position and stopped, I hear some very low crackling, click-like sound. I can say for sure, it is not a physical barrier, it is not any unexpected signal from the controller, it is not looks like short circuit, in most cases it does not happens, it happens from a hundred maybe just one time, as with same, also with different movement positions. I’m not sure, if it is a sign of something, what should alarm

One possibility that comes to mind is the gear teeth slipping due to high loads or hitting the end stop. Are you sure you are not sending signals beyond the physical range of the servo? The second FAQ under the FAQs tab of the servo’s product page talks about finding the limits of the servo’s range of movement.

-Derrill