Maximum DPS on motor for GoPiGo3

Hi, this is my first post

I am trying to experiment with the gopigo3, I just got mine few weeks ago, everything seems to be working perfectly.

I have noticed that although the documentation says that the highest speed that motor can reach is 1000 dps, I do not get to make it achieve that speed. The closest I can get is 450 dps. I have tried ‘set_speed’, ‘set_motor_power’, ‘set_motor_limits’ and none of these methods allow me to get higher that 450 dps.

How can I achieve higher speeds?

Below is the output of the Read_Info.py

Manufacturer : Dexter Industries
Board : GoPiGo3
Serial Number : 4AD62598514E3437324A2020FF011422
Hardware version: 3.x.x
Firmware version: 1.0.0
Battery voltage : 9.012
5v voltage : 5.013

1 Like

Hi @hebertodelrio,

Theoretically, you can set the speed at 4000 and that’s still going to be valid - there’s no upper limit in the software. The only thing that’s limiting you is a mix of different factors: motors used, dragging coefficient, battery voltage, max continuous current, etc. So, we can’t specify an exact range in the API because there isn’t one and it varies from robot to robot.

If you can’t get the GoPiGo3 to move faster than what 450 DPS value gives you than that’s the maximum speed you are going to get.

@Matt maybe you can add a little input to this discussion.

Thank you!

I totally understand, the theoretical part. I did forget to tell what was the setup: it is the rechargeable battery pack from dexter 9.6V 2000mAh NiMH battery pack and the two motors that come with the GoPiGo3 with less than two weeks of using them. Unfortunately the dtasheet for the motor is nowhere to be found so I can not figure out the theoretical maximum for that motor (without burning it) given the voltage and current I have

Any help on where to find the specs/datasheet for the motor?

1 Like

The GPG3 is designed to run on 9v to 12v, and can be safely run on voltages up to (but not exceeding) 14v. With a higher battery voltage, the motors will have a higher speed potential. As Robert mentioned, there isn’t a specific “highest speed” that the motors can run. A limit such as 1000 DPS would be arbitrary.

Using set_motor_power, you can set the PWM duty cycle to control the motor power (percentage). This is unregulated, and therefore not a precise method for controlling the motors.

You can use set_motor_dps to set a target speed, that the GPG3 will attempt to run the motor(s) at.

If you set the target speed to 500 DPS, but due to the hardware and electrical limits (as explained by Robert), the motor can only run at 450 DPS, the GPG3 will apply full power (trying to go as fast as possible). This is a case where the target exceeds the capability of the hardware. Perhaps by increasing the battery voltage or reducing the load on the motors (take some weight off the GPG3, move it from carpet to a hard floor, etc.) the motors would be able to run at 500 DPS.

If you want the motors to run as fast as possible (unregulated) set the power to 100%. If you want regulated speed (i.e. have the robot drive straighter), set the DPS target to something within the usable speed range (e.g. 300 DPS).