My students and I are using a Hiwonder LD-220MG digital servo to position a "shoulder" on a robot. robot bulldozer on workbench

We are seeing a behavior (on every one of these servos that we test) that it won't go between arbitrary angle values. If the angle we want to go to is too far from where the servo is currently positioned, then it either ignores the new target value, or very slowly creeps to it if it's not "too far". If the target angle is "close", say within 15 degrees, the servo will correctly and quickly move to the target angle.

So far, we've looked at voltage (right at the top of the spec for the servo), signal quality (nice solid 50Hz square wave coming from a PCA9685 16-Channel 12-Bit PWM Servo Driver), and software (used a hobby R/C tester).

Any and all suggestions appreciated.

  • $\begingroup$ contact Hiwonder ... there may be some type of error detection behavior in play ... try issuing the same destination command several times $\endgroup$
    – jsotola
    Commented Jul 25, 2020 at 2:35
  • $\begingroup$ Could this be a deg-rad conversion problem? 15degrees is suspiciously close to pi/2 *10... it is worth doublechecking...i always run into problems like that so I am always supicious when i see 1,5, 3, 15, 30... degrees $\endgroup$
    – 50k4
    Commented Dec 22, 2020 at 15:44
  • $\begingroup$ The servo is a digital one, are you sure you're submitting commands intermittently (i.e. allowing it to get to a good rest after each command)? $\endgroup$ Commented Apr 21, 2021 at 21:21
  • $\begingroup$ Are you asking it to move there too quickly? If you slow down the rpm will it seek the angle correctly? $\endgroup$
    – guero64
    Commented Apr 11, 2023 at 16:34
  • $\begingroup$ I am running into the same problem. Could you explain what kind of workaround you have found to get it to work? We are using similar servo's from HiWonder. The path we are on now is to ramp from the previous angle to the new setpoint, but we found out that we have to give the servo time to get there. Any input would be highly appreciated. Thanks, Maarten. $\endgroup$
    – Maarten
    Commented Feb 21 at 20:06

1 Answer 1


Gever, do you have any clue on what type of feedback control you are using? This is usually a PID kind of controller (at least as far as I know). It could be that the once you give a large target position, the controller values get too high, causing an error to your servo. Adjusting the values of the PID (or any kind of) controller parameters would maybe help.

  • 1
    $\begingroup$ Jelle, thanks for giving it a good think. Since the hobby servos are self-contained, we don't get to tweak the PID... we've got a clunky software work-around going now that we are going to just go with for the pilot launch of our Mars program: tinkeringschool.com/mars $\endgroup$ Commented Jul 27, 2020 at 17:54
  • $\begingroup$ Allright good to know. Good luck! $\endgroup$
    – Jelle
    Commented Jul 28, 2020 at 6:51

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.