I keep getting 'Insufficient servo range'

when I'm going through the hardware test I can't seem to get one of my servos passed the error, "Insufficient servo range"

What does "Insufficient servo range" mean

Servos often sense a smaller range then they are actually able to be rotated to.  The last 2-10 degrees of their range is sometimes not achievable with the motor or sensors and is just  a dead zone.  The servo range test is trying to insure that you have not added any of your servo's dead zone into your robots range of motion.  When you get this error it means SimpleArm is not receiving a reasonable range for this servo and you need to make some changes to fix it.

The most likely problem are as follows


The placement of your servo horn needs to be adjusted

This is most likely the case if you are getting a message along with your error that your servo range is close to required range. (for example "servo range: 368 required: 380") 

To make the adjustment, remove the servo horn and repeat the steps of resetting its position by doing the following:

  1. Remove the servo horn by removing the smaller servo horn screw and the larger servo horn fastener.

  2. Using the detached servo horn, rotate the servo counter clockwise until it reaches the end of its extent.

  3. Then rotate it back, clockwise between 5-10 degrees(this is the adjustment that will remove the dead space in the servo)

  4. Move the joint counter clockwise to its extent and then refasten the horn and its screws.

Some additional tips are:

  • You may find you have to play with the amount of degrees of slack you give the servo to make it work.

  • You could also try setting the servo from the clockwise most position instead of the counter clockwise position, as the dead spot may be on the other side.

  • You could troubleshoot by run the test while the servo is not connected to the arm and move the servo horn manually to find the dead spot on the servo by observing where the servo range stops increasing.  Then attach the arm at that point.

  • You can use the "Testing & Troubleshooting" module to see the servo in action and find where its dead spot is. open the Interactive Guide (? button in the upper right) and click "Finding servo dead zone"


The Feedback wire is not plugged into the correct spot on the Arduino board

This may be the case if you are getting a message along with your error that your servo range is very small. (for example "servo range: 102 required: 380") 

You may be moving the correct servo a lot, and in the process bumping another servo that happens to be incorrectly plugged into its pin, giving a small range.

To see if this is the case you can use the "Testing & Troubleshooting" module.  when launching the module, open the Interactive Guide (? button in the upper right) and click "Troubleshooting feedback wires"

    Need more info?

    This documentation page has been extracted from the Q&A section where you can discuss it and get feedback.
    Related question