Question about no-load speed for 9.7:1 Metal Gearmotor 25Dx4

Dear all,

I just bought this motor in the webpage it says its no-load speed is 1010 rpm. However, when I run it at 6V it only reaches about 500 rpm. Even getting rid of the gearbox is not going to make it go much faster. Of course, if I run it at 12V it will reach 1000 rpm but I don’t want to damage it. Am I doing something wrong? Is the no-load speed wrong? Can I run it for a long time at more than 6V?

Thank you,


Perhaps you got the lower power version by mistake. They look very similar. Check the current draw to be sure.

Hi, Joan.

Do you have anything connected to the output shaft of the gearbox? How are you measuring the speed of the motor? Please note that the 48 counts per revolution specification is only valid when you are counting both rising and falling edges of both encoder channels. If you assume 48 CPR while only counting one type of edge (e.g. rising edges) or transitions on a single output, you will come up with half the actual speed (or approximately 500 RPM).

Like Jim Remington said, if you are not certain which version of motor you have or suspect you received the incorrect motor, measuring the stall current is probably the best way to figure it out. I recommend measuring the stall current at a low voltage and using a linear relationship between stall current and applied voltage to calculate what the stall current is at 6V.


Hi Claire,

  • There’s nothing connected to the gearbox output shaft
  • I measure the velocity using the encoder and an Arduino. Whenever there’s a change of state (falling or rising edges) in any of the pins of the encoder I add (or subtract) 1 to my position variable, then I divide my position variable by 465 to know how many revs the output shaft of the gearbox has moved.
  • I get a stall current of about 5A at around 6V (although the power supply I’m using will struggle to keep these 6V).
  • I get a free-run current of 0.5A.

I’ll try to get the velocity with some other means and check if it runs at 500 rpm or 1000 rpm.



That is why I suggested stalling the motor at a much lower voltage; in general, that is easier on both your power supply and your motor.

It sounds like you do have the right motor, so I suspect that the problem is in how you are reading the encoder. If you post your code, I could see if I can spot an issues with it. Do you have access to an oscilloscope you could use to look at the encoder outputs?

Another method you could try to estimate the speed of the gearbox output is to hold the output shaft lightly against a table and try to count the taps per second. If the motor is spinning at 500RPM, there should be about 8 taps per second, and if the motor is spinning at 1000RPM, there should be about 16 taps per second. Supplying the motor with a lower voltage might be helpful for this too, since at 3V the motor should spin at about half the rated speed, so there will be half as many taps to count.

Solved. Code bug. The confusion came because I made some (minor) modifications to the code at the time I switched to the new motor.

Thanks for the help, I appreciate it.