One wheel rotates faster

I bought recently GoPiGo and have assembled it (btw. it is not easy to find assembly documentation on the page, I’ve found the link in google).
It works however not as I expected, the left wheel rotates slower than the right one
it is especially visible at lower speeds (at some speed one of the wheels is already rotating while the other one just “makes sounds”)

I thought one of the motors I’ve got is broken, but when I measured voltage on the motors pins they are different for both motors, in both cases when the motors are connected and disconnected

What seems to be suspicious:

  • I had to connect motor wires not like in “assembly picture” White-Black-White-Black, but Black-White-White-Black (otherwise they rotate in opposite directions when “move forward”)
  • when trying to read from I2C (e.g. state of voltage or status or LED switch) I receive exceptions (I work with Java libraries: Error reading from /dev/i2c-1 at address 0x8 to address 0x1. Got -1)
  • the LEDs switch On/Off does not work (usually one of the LEDs is always ON, the other is OFF)
  • when I used Forward with PID - one of the wheels tries noticeably adjust the speed but it is not smooth (slowing down and accelerating all the time)

This was one of the bugs in the older firmware. Can you follow the directions here: and update your firmware and add some trim.

Do let us know if this helps you out.


Thank you for answer.
I’ve upgraded the firmware to 1.6 (in fact I didn’t check what version was before, but my GoPiGo was bought a few days ago)
The TRIM works, but not perfectly.
To test, I’ve put my robot wheels up and sticked some white dots to both tires.

At slow speed I had to set trim value to -23, then both wheels got synchronised, but…
it works OK only at this specific speed. At higher speeds left wheel is slower than the right one :frowning:

and still the wheels don’t start at the same speed

pszemas, can you check that neither of the wheels are pinching the screws that are close to them?

No, it is not pinching.
As a workaround I will create “speed array” where I will keep scaled speeds for both wheels