Go Down

Topic: Under power a servo at startup to partially solve servo jump/twitch problem (Read 428 times) previous topic - next topic

Zimbu

By the way, I am working on your 4.7k resistor suggestion at this exact moment, so I will see if that works before getting into transistors, etc.
Nope. Doesn't solve the problem. Didn't hurt much to try though!

Robin2

The physical stop of the mechanism to which the servo is attached.

The physical stop in this case is actually a microswitch that,
A better mechanical design would allow the mechanism to move past the limit switch without causing damage.

Alternatively the limit switch should just cut off the power to the motor (independently of the Arduino) so there is no possibility of it causing damage.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

Zimbu

A better mechanical design would allow the mechanism to move past the limit switch without causing damage.
That would not achieve the goal of the limit though. The mechanism is a sliding door. It has physical stops at full open and full closed. It couldn't be any more fully open than full open...and it couldn't be more fully closed than full closed.

Alternatively the limit switch should just cut off the power to the motor (independently of the Arduino) so there is no possibility of it causing damage.

...R
Yes, that would prevent damage, but it would also shut down the entire thing.

Remember, this is something that happens when power is first applied. One or both of these two "bads" occur:

1. The servo jumps suddenly one time. That's bad.
2. If, by bad luck, the servo is positioned close to the physical stop, it will suddenly jump (that's bad) AND it will grind/strip the gears of the servo after it hits the stop but keeps powering along for X milliseconds.

Sure, I could shut the entire operation down with a "kill power to servo" limit switch to prevent #2, but then everything would cease to function, i.e. the servo would never move again until it was manually moved away from the limit switch. That's just not acceptable for this project.

My goal is either to:

G1: eliminate the sudden startup jump...but I think this is impossible with this servo.
G2: Minimize the two "bads" related to the sudden jump, i.e. lower the speed of the sudden jump and also reduce the torque that that even it it hits a stop, it will not grind/strip the gears of the servo.

edgemoron

Did you try this?
Quote
This servo carries meso-position adjustment potentiometer(it can only be seen by peeling off the outer cover and circuit board). We can set high level pulse at 1.5ms to observe that whether servo stops rotating. If it doesn't stop rotating, we keep adjusting the potentiometer until it does.

Zimbu

Did you try this?
Good idea but no dice. What that refers to is whether the servo stops when it is given the "Servo1.write(90);" (which means STOP in 360 servo language). If it doesn't stop, then you adjust the little screw until it does.

In my case, I have no problem getting it to stop with "Servo1.write(90);".

Got some new servos coming tomorrow afternoon and will fiddle around with them to see if any of them do not jump when initially powered up.

Alternatively, I could even accept (now that my resolve is weakening...) if they jumped but stayed in the middle range of motion, i.e. did not ever hit the physical stop and strip the gears.

One of the new servos is even a metal gear servo, so I am wondering if that one will NOT strip gears even if it hits a stop at full speed.

I will report back when I have more info.

Zimbu

Ok, received two new servos today and did some testing.

First: For the record, my original servo was a Kookye DS04-NFC 360 degree continuous servo.

New Servo #1: Feetech FS5106R 360 degree continuous servo

-Testing result: Does exact same thing as Kookye, i.e. it makes sudden jump of roughly 20 degrees the first time power is connected. The only difference is it goes clockwise instead of counterclockwise.

New Servo #2: Longruner MG (metal gear) 996R regular servo (not 360 degree)

-Testing result: Also jumps counterclockwise about 20 degrees as soon as initially connected to power, BUT it hits its own internal stop if it happens to be close to that point when powered up. If so, it doesn't move any further, so no stripping of gears. Of course, this is basically the definition of a regular servo, i.e. it won't move past the range for which it is designed. But it does technically solve part of the problem (stripping gears). Secondly, it has metal gears, so probably not possible to strip them under normal conditions anyway.

It still does not solve the problem of the servo moving suddenly and frightening the unsuspecting user, but I can live with that (or rather, I have given up on that one since the transistor approach is too much for my technical skills at this point).

I guess you can conclude that I failed to solve both of my problems with my original 360 degree servo, but after making some adjustments to my mechanism, I can now use a regular servo and at least avoid the stripped gears problem of the 360 degree servo.

Go Up