Welcome! Log In Create A New Profile

Advanced

Auto level, using standard size servo, overshoots.

Posted by VTE 
VTE
Auto level, using standard size servo, overshoots.
May 19, 2015 01:38AM
I just installed a new auto level bracket on my machine to hold a standard size servo, not micro size. I did this because I need the extra holding torque and less backlash of the bigger metal gear servo.

The problem is now that I go to calibrate my retract and extend angles. When I do M280 in pronterface and issue extend (M280 P0 S25) the serve goes to that angle but then overshoots it due to momentum. As if the servo arm isnt being issued a hold command, it basically shuts down after it hits the M280 command. The arm will travel to the correct spot, it just wont finish its destination at that spot, momentum lets it swing way past that.

Any ideas?

Thank you guys,

- VTE
Re: Auto level, using standard size servo, overshoots.
May 19, 2015 10:31AM
If not mistaken, full size servos need higher voltages. The servo motor might not have enough power to hold its position. Have you checked the servo requirements? The other possibility is that the servo doesn't stay energized after reaching its position:

//If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
//The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.
// You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.

// #define PROBE_SERVO_DEACTIVATION_DELAY 300

You might have this feature uncommented?
Re: Auto level, using standard size servo, overshoots.
May 19, 2015 02:09PM
Nope . . . in the RC world, 5 volts has been a standard for all size servos for years (and not all will take 6 volts . . . ). Some of the newer high torque digitals may require more, but it's an exception, not a rule.

- Tim
Re: Auto level, using standard size servo, overshoots.
May 19, 2015 02:16PM
This does not make a lot of sense . . . a servo is sent a pulse of a specific width which corresponds to a position, and it uses an internal pot to sense that position, and to create a correction to both hit and hold that position aslong as it sees that pulse width. It can't overshoot if it is given a consistent input pulse width, unless it is defective. Most servos will 'go limp' if the input signal is removed, though . . .

I see some twitching on mine as well while moving between probe points, and wonder if the processor load on the Arduino is causing pulse width variations to the servo (my servo is on a separate 5v source . . . ).

- Tim
VTE
Re: Auto level, using standard size servo, overshoots.
May 20, 2015 03:28AM
I am completely certain that the servo looses hold power after it finds target angle, the code that ggherbaz showed me is indeed uncommented. The reason I uncommented, to reduce servo jitter during operation. What should I do to keep servo in hold position and not jitter while its retracted and printing?
Re: Auto level, using standard size servo, overshoots.
May 20, 2015 09:43AM
Filter the power supply with a capacitor and shield the cable all the way from board to servo.
VTE
Re: Auto level, using standard size servo, overshoots.
May 20, 2015 11:41PM
Quote
ggherbaz
Filter the power supply with a capacitor and shield the cable all the way from board to servo.

Sorry for my ignorance. Where do I solder the leads of the cap and what size cap to use? Can I shield the wire with copper slug tape? (I use that to shield the electronics in my electric bass)
Re: Auto level, using standard size servo, overshoots.
May 21, 2015 10:33AM
Usually a 1000uf 12 volts electrolytic capacitor will do the job, you will connect it between + and - of the servo connector (capacitor will indicate which pole is + and which is -) don't cross them.

Yes, you can use copper or aluminum foil.

Edited 1 time(s). Last edit at 05/21/2015 10:34AM by ggherbaz.
VTE
Re: Auto level, using standard size servo, overshoots.
May 22, 2015 07:09PM
Hi, I just wrapped my servo cable with copper tape. I did not wire in the cap just yet. I wanted to see what each component of this fix contributes to the solution. The copper shield did practically nothing to the jitter. In fact it seems like it got a little worse. I also wired in a BEC, from one of my RC trucks, to supply the power to the servo because the ramps was shutting down everytime the servo tried to extend. It was just too much for the ramps. The BEC works wonderful and no hiccups for powering the servo.

Will the jitter be mitigated with the cap? I feel the shielding hasnt really done much. Thank you.
Re: Auto level, using standard size servo, overshoots.
May 22, 2015 08:31PM
I'm going to guess no, and I would not have expected the shielding to do anything either. This is a low frequency pulse at a decent voltage that is unlikely to take interference. Myself, I suspect an uneven pulse coming from the Arduino under load . . .

- Tim

Edited 1 time(s). Last edit at 05/23/2015 01:10AM by tadawson.
Re: Auto level, using standard size servo, overshoots.
May 22, 2015 10:52PM
Quote

 I just wrapped my servo cable with copper tape

did you ground the shield to something or just wrapped? I will agree that it will make it worst if you don't drain it to something you were making an antenna.

BEC's usually have filters so you don't need the capacitor.
Sorry, only registered users may post in this forum.

Click here to login