Servo position and 'stalled' state

Hi, I am completely new to robotics, and I need some help understanding the details of how a servo operates. specifically about how it accomplishes its ability to hold its position at a certain position under load. To simplify things, lets say the servo is made up of two parts - the control circuit and the motor (ignoring the encoder etc.). I’m assuming the control circuit would be responsible for the voltage and current supplied to the motor. Also let’s assume the load is well below what the max. torque for the servo can handle.

My question is this: When the servo is holding a position under load, is the control circuit actively controlling (limiting) the amount of current to the motor ? Is the motor considered to be in a stalled state when it is holding it’s position under load since the motor isn’t actually moving (remember the load is below what the servo can handle) ?

Thank you in advance for any insight.

Coleman, thank you so much for this response ! In a few sentences, you’ve managed to clear up what several days with Google did not. In part A of your response, if you could shed any more light on ‘…If yes, then hold the position…’ - how does the controller accomplish this ‘hold the position’ state ?

The control circuit takes in a position value (a 5V pulse of between 500us to 2500us which it converts to a position of between 0 and 180 degrees), reads the value of the onboard potentiometer and determines if the servo at the correct position? If yes, then hold the position, and if not, then determine the direction to move in to get to the desired position and power the motor so it rotates in the desired direction. Keep doing this until the desired location is reached.

If the servo is flat on a table and under no load, the current will be near zero since there is no resistance. As you add resistance, the motor will need more current to hold the position. When you reach close to the maximum allowable torque, the motor will be consuming the maximum allowable current. It’s not quite the same “stall” that you would consider a DC motor to be in if you stop the output shaft from rotating. You’ll see that if a servo is under load, it may start to vibrate a little - this is because the position signal is being sent every ~20-30ms.

That’s getting into how the small onboard microcontroller is programmed. If the servo is at the desired position, then any motion in either rotation will cause the motor to turn on to rotate back to the desired position. Take a look at PID control.