0
\$\begingroup\$

I added a 9g RC servo to my 3D printer for tool change purposes. It actuates a latch that locks the parking extruder in place. You can see the servo in action in this video at around 30 seconds: https://www.reddit.com/r/3Dprinting/comments/q276ct/wip_prototype_of_my_asymmetric_semiparking_dual/

With a new servo everything works fine. But after a few prints, the servo starts jittering. After a few more, it starts flailing wildly between its extremes (as long as the servo is enabled, if disabled it stops) and after a few more prints after that, it will stop working all together.

I've tried 9g servos of different brands (I already destroyed two HXT900 from Hextronic and a MG90S from DIY MORE, which has metal gears). So I don't think it is a straight servo quality issue.

The voltage is regulated to a nice 5V, but on one servo I tired getting the jitter under control by regulating the voltage from 4.8V to 6.0V, with no change.

The servos are only active for around 20 seconds for each tool change, to reduce heat and wear. They get detached after that.

What could be causing the servos to fail like that? Am I using the wrong type of servo for the application?

I use the same servos on RC planes and never had any problems like that there. But then again, the 3D printer runs for much longer on the same servo than any of my RC planes ever did.

Edit: The problem only occurs while the servo is attached. While the servo is detached, it doesn't move at all, doesn't vibrate, hum or get hot.

The first servo died without the detaching. I only added the detaching after the first servo died. I am using a SKR v1.1 board with an LPC1768, which, for some reason, in Marlin doesn't use Hardware PWM. So the signal always jitters, which makes the servos hum, vibrate and get hot.

I don't think that the jitter is causing the wild flailing, since a fresh servo will always work fine, but after a few hours of printing, it will start twitching, which gets progressively worse until the servo permanently runs between its extremes while powered.

\$\endgroup\$
7
  • \$\begingroup\$ "I've tried 9g servos of different brands (I already destroyed two HXT900 from Hextronic and a MG90S from DIY MORE, which has metal gears). So I don't think it is a straight servo quality issue."- You bought cheap nasty servos, so it could be a quality issue, but more likely you overloaded them. Does the servo ever 'buzz' when 'attached'? Exactly what do you mean by "servo permanently runs between it's extremes while powered". \$\endgroup\$ Dec 10, 2021 at 22:44
  • \$\begingroup\$ It does buzz, but I attributed that to the SKR v1.1 not using hardware PWM, which is a known issue. When I attached the same servos to an RC receiver, they didn't buzz. With running between extremes I mean, that the servo turns to the left until it hits the end of it's possible motion, then turns to the right until it can't go further and then turns left again. \$\endgroup\$
    – Dakkaron
    Dec 13, 2021 at 11:06
  • \$\begingroup\$ If the servo 'buzzes' at the end points that suggests it is being overloaded. In that case you should disconnect it immediately after it stops moving. " the servo turns to the left until it hits the end of it's possible motion, then turns to the right until it can't go further and then turns left again" - and it does this as soon as power is applied, even if the signal wire is not connected to anything? I've seen a lot of servo faults but not that one. \$\endgroup\$ Dec 13, 2021 at 18:48
  • \$\begingroup\$ With the buzzing I mean that it buzzes when it's not loaded at all. That's why I think it's because of the signal jitter. It does that as long as the signal wire is driven to anything. If it's detached, it stops. I had the same exact mode of failure on all three servos. I wonder if maybe some of the gears are damaged, so that the motion is not conveyed correctly to the potentiometer inside or something. Something I didn't mention, but thought it was a given: these servos are analogue servos, not digital ones. So jitter in the signal transforms to vibrations and buzzing. \$\endgroup\$
    – Dakkaron
    Dec 13, 2021 at 21:46
  • \$\begingroup\$ "jitter in the signal transforms to vibrations and buzzing." - yes, but the servo has a 'dead band' that should soak up a few microseconds of jitter. A larger jitter will make the servo 'chatter', but it shouldn't 'buzz' unless the jitter is extreme (effectively making it move in alternate directions continuously, which will quickly wear it out!). Either way, disconnecting the servo immediately after it has moved into position should prevent damage unless it is grossly overloaded. You should only have to connect it for about 0.5 seconds (enough time to move), not 20 seconds. \$\endgroup\$ Dec 13, 2021 at 22:07

2 Answers 2

1
\$\begingroup\$

Don't detach the servos.

Depending on the microprocessor and the library, the PWM output may be left floating when you detach the object. That could easily cause your twitching problems.

It won't (shouldn't) hurt your servos to leave them attached. When you set a position and there's no load on the horn, the motor doesn't have do any work to maintain its position - it shouldn't get hot or cause any wear.

\$\endgroup\$
2
  • \$\begingroup\$ Or pull the line low when detached. \$\endgroup\$
    – Passerby
    Dec 10, 2021 at 12:58
  • \$\begingroup\$ The reason why I detached the servos was because of the vibrations. I am using a board with an LPC1768 which, for some reason, in Marlin doesn't use hardware PWM, so the PWM signal to the servo is always jittering, which causes the servo to vibrate and get hot. While detached, the servo neither vibrates, nor hums, nor (in the later stages of decay) flail. The problem only occurs while the servo is attached. \$\endgroup\$
    – Dakkaron
    Dec 10, 2021 at 21:02
0
\$\begingroup\$

Turns out, it wasn't the servo's fault at all. The problem was with the DCDC converter module that I used to get the 5V supply for the servo. It apparently caused so much noise that it messed up the analogue servo.

I replaced it with an LDO and now it's all fine.

Why it worked better on a fresh servo, I don't know.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.