Servo movement is not smooth

First off, thanks for the great job on the GoPiGo. Generally, the build and first use went fairly smoothly, although I’ve encountered all of the minor issues that others have posted about. Managed to figure out how to get around these and get control of my GPG via wifi.

The problem that I’m seeing now is that the servo doesn’t move consistently. I’m running the program. I’m not sure what the problem is, but the movement is jerky: instead of moving to a position directly, often the servo moves forward, then jumps backwards, before it stops for each increment of the servo angle. I’ve modified the test program to increase the time.delay between increments of the angle just to be sure that this is what was happening.

I expect the movement to be choppy, but didn’t expect the movement to be back-and-forth.

Any ideas? Maybe a bad servo?


We had a firmware update just before we shipped for handling this problem. Maybe the GoPiGo that you have, missed it.

Can you run the “sudo gpg” command on the terminal. If you get the firmware version less than 1.4 or do not see anything at all, you should update your GoPiGo image and firmware. Here is the link to the update guide: Just makes sure that the motors are disconnected before you start or you might damage the GoPiGo.

Let me know if this helps.

Sorry for all the troubles.

Yes, my firmware was out of date. After following the instructions you linked to, “sudo gpg” still shows firmware version 1.1.

Not sure if I’m doing something wrong, or if the “DI Software Update Icon” still points to version 1.1 firmware.

Any other ideas?

threecee, I’m going to try to hop in here because Karan is out at the moment. I think the fastest way to correct this is to connect your pi to the internet, change directory to the GoPiGo directory, and perform a git pull:
sudo git pull

Once you have the directory updated, you’ll see under GoPiGo/Firmware/ there’s a file called “”

Run this file using sudo ./

A few thoughts:

  • Disconnect your motors again.
  • Check the firmware version after you run it.

Hi Admin, I’ve got some other issues and was told to update the firmware to v1.4.

Now I’ve just done what you said in the post above and after doing all that, it STILL says the firmware version is 1.1.

just like artemisworks says above, after the “git pull” (which responded with “Already up-to-date.”) and “sudo ./”, it still says firmware version 1.1

threecee, are you seeing general jitters? For example, I have the servo hooked up right now, and it has a small amount of jitters around certain points. Is that what you’re seeing, or are you seeing serious (maybe more than 10 degree) jumps back and forth?

i’m seeing general jitters, nothing as bad as 10 degree jumps, but sometimes back-and-forth of more than a few degrees.

also, just noticed that sometimes when i run the servo test program, that after the program completes, i can hear/feel the servo, as if it’s still trying to move to the final position. i’ve added a disable_servo() command to the end of the test, and that seems to stop the servo completely.

Quick update on this:
– The latest version of the firmware is V 1.1. So there’s no V 1.4. Sorry for the confusion around this.
– We’re still trying to recreate/debug the problem with the Browswer Streaming Robot over in this thread: