I use MG90S servos(180 degree) for my robotic applications. In few places, all I need is a 30 to 90 degree range of the motor. The motors use a 5K pot for control. Can I change this pot to have limited range in my servo?

I understand we can code for appropriate angles, but I want the servos to operate only for a limited range (say, only 45 degrees), even if coded incorrect. So, what should be the hw change to acheive this?

  • $\begingroup$ the motion range is limited by physical stops $\endgroup$
    – jsotola
    Dec 26, 2021 at 23:48

1 Answer 1


I thought of a few options (just ideas — I haven’t tried the first two):

  1. Modify internal hardware stops. As @jsotola said, the MG90S design as supplied is controlled by mechanical stops. This article shows a procedure for removing the physical stop to allow continuous motion. The intent of the article is different to yours but gives good insight of the internal workings. It also shows the physical form of the potentiometer used in that particular version. It might be possible to add an additional physical stop to further reduce the motion. Sounds like hard work.
  2. Modify the servo internal potentiometer. For example by inserting an in series resistor to achieve the target resistance after a smaller arc of rotation. On its own this wouldn’t prevent overrun of your intended stop in the case of programming error. Sounds pretty fiddly too.
  3. Add external hardware stops. Instead of limiting the internal motion of the servo physically limit the motion of whatever it’s attached to by introducing physical stops external to the servo. Sounds like easier work.
  4. Set software limits (i.e, only drive the PWM in the suitable range of motion). You mentioned that this is not desirable, but you didn’t mention why. If you tell us more about the actual problem you’re trying to solve, more help may be possible. This sounds easiest to me.
  5. Change to a servo with the desired arc of movement. I would think you’d still need option 4 as well.

Option 1 and 3 will stall the servo, sink more current, and introduce physical shock as the servo hits the end of travel and tries to keep going, unless combined with option 4.

See also https://robotics.stackexchange.com/a/1619/27817


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.