Unhappy with the 120 degree range of movement for this digital servo motor [Malte] set out to expand its flexibility. He settled upon a hack that alters the feedback potentiometer in order to give the motor a wider range (translated).
The test video (embedded after the break) shows tick marks for before and after his alterations. You can see that the wider tick marks get much closer to the 180 degree range he’s interested in. The control method is no different than it was before, the internal circuitry is still listening for a control signal with pulses between 1 and 2ms to establish the position of the servo horn. [Malte] added resistors on the two outside legs of the feedback potentiometer. This is what that control circuit measures in order to judge the position of the servo horn. He’s using 1.6k Ohm resistors in this demonstration. But he didn’t just drop them in willy-nilly. His writeup discusses the calculations he used to determine the target voltage for the motor position he wants.
[youtube=http://www.youtube.com/watch?v=YjQjU343sTE&w=470]
It works, but you lose precision.
Ok for some tasks, but when you need pressision and torque, its not a solution.
When would you ever expect torque from a servo is there some amazingly powerful servo around that size I’ve never heard of if so fill me in!
What is this I don’t even
You did not refute the fact that you lose precision. Also, the tick marks arent in the right spot. After modification the center tick mark should be higher. Another case of hacker bias.
I find that most unmodified servos respond to 0.5ms-2.5ms wide pulses by increasing rotation to about 240-270 degrees.
Nothing comes for free though – Outside the 1.0-2.0ms range, the servo position is not exactly proportional to pulse width, and not very consistent from one servo to the next. But for any given servo, positioning is still very consistent.
What you say is absolutely true for analog servos. But all digital servos I got my hands on yet had a working range of only about 120°. Of course I tried shorter and longer pulses but that didn’t work.
I only opened in my life one servo, and i remember ther is a kind of phisical limit builit in some of the inner gears, so maybe isn’t matter of modding the potentiometer, maybe you have to moto-tool some limitig cam on the respective gear
Most servos are mechanically limited to 180°. That is also true for many digital servos. However, the actual range of digital servos is limited to 120° by the control electronics. Hence, to remedy this an electronic solution is needed.
Before modification, the servo’s motion looks good: it ramps to a stop with no overshoot in either direction.
After modification, the servo exhibits some nasty overshoots in the CW direction only, and it does not even overshoot consistently. I would need a better solution.
Your’re right, at least for the video. But I couldn’t reproduce this overshoot behavior later. On my website are some diagrams that show the servo pot’s voltage over time, i.e. the servo’s position (http://www.mtahlers.de/images/stories/content/servohack2/pos_test.png). There is (almost) no overshoot visible.
I believe there is some range of motion adjustment already designed into digital servos, using something like this:
http://www.servocity.com/html/hpp-21_servo_programmer.html
I’m not sure the extent of end stop adjustment you can do, but it does say that is one of the features.
This is a VERY old hack in the RC car and airplane world. I’ve done this with quite a few to get a little more range. Works with analog servos, too.
May be an old hack but certainly effective.
I’d also add a couple of Hall sensors to add hardware limiting just to make sure, that way the pot won’t get broken if something goes awry.
Find a helpful PC repair person, and score a few dead case/CPU fans as these have nice sensors which can be “upcycled”.
often they are happy to give away a box of “junk” if you pay for their time sorting it, as long as you explain what you need it for.
Plus the old casing with magnets can be recycled into a makeshift wind turbine.
I have used this method several times and ALWAYS open servos before use (especially for budget servos or for friends to add Conformal coating making water submersible, adding my own lube to gears, and replacing seals with higher quality to keep out dirt or to add seals when none are installed).
That said, this method works very well to extend range of cheap 5 wire servos found in the ever popular XK 144001 for example. The pulse width is usually proprietary widrh causing replacement or upgrade servos or high quality 3 wire servos modified to be 5 wire servos to have unusably short throws. This is THE fix in some situations.
I use a variable resistor / pot on both sides and center to be able to dail in position and length of throw. Thank you for the Post and Video!