Tachometer RPM measure
Drive system motors

Gearing Ratio and Pulley Designs

Before switching over to BLDC motors, I was going to use brushed DC motors with planetary gear. I did a few test runs with the brushed DC motors with a Roboclaw motor controller and was not happy with the noise from the motor/gears (the robot was doing to much noise). One advantage with the planetary gear was that they already had an suitable RPM for a lawnmower (no high speeds) around 33RPM on the shaft.

Switching over to BLDC motors resulted in a few adjustment on the robot. I needed to build a drive system that could reduce the RPM. When adjusting/reducing a gear ratio there are quite a few different methods to chose from. In my case I wanted a silent robot (as silent as possible) and decided to go with a timing belt. I chose the timing belt because there were no hard details that opposed each other that could create noise in the system.

timing belt
timing belt

I timing belt drive consists of pulley and belt to increase/decrease the RPM of different pulleys. In my setup I will use a timing belt with 2 pulley for each motor (differential drive). The motors will have a smaller pulley and the drive shaft will have a larger pulley, this way I can reduce the RPM at the drive shaft and finally the speed of the robot.

The BLDC motors have a quite high possible max RPM. So reducing this can be hard. It all depends on the space needed, desirable RPM, start speed and the torque needed to make the robot take of. So if the motors are not driven at the highest duty possible one can achieve lower RPM. I tested a few different settings with my VESC and a tachometer (an instrument which measures the working speed of an engine (especially in a road vehicle), typically in revolutions per minute).

Tachometer RPM measure
Tachometer RPM measure

Here is a chart that expresses the relationship between RPM and Duty for my motors (The RPM comes from the Tachometer and the Duty from the BLDC tool for VESC) The VESC is running FOC mode and the motors are equipped with  120 degrees internal pcb hall sensors.

chart that expresses the relationship between RPM and Duty
chart that expresses the relationship between RPM and Duty

Looking at the chart above I stoped at 45% Duty because I had no need for higher RPM, my application is a slow moving lawnmower.

I have not calculated the start torque of any values here (but I will) I did a quick and dirty test of holding the BLDC motor to feel how much start torque it had, for all values above it seemed fine (for Duty => 18% I could not actually hold the motor in place). At 10% Duty one could see a tiny “uneven” start. This is caused by the hall sensors and rotor position (The hall sensors where a few degrees of and it took sometime before the hall sensors found its position). To get a smoother start and better start torque I will add a high-resolution rotary position sensor with angle measurement over a full 360-degree range.

So before we continue we need to know how fast the robot will drive. A lawnmower should not be driven as a race car, a slow and even speed is the goal. I would say something around 0.4-0.8 m/s.

Now that we know that desirable surface speed of the wheels. We can calculate the desirable RPM on the Drive shaft and, in turn, desirable RPM on the motor shaft (Please note that all values are calculated with 0 weight of the robot and a 0 friction of the ground etc.).

Wheel(cm)*PI= Wheel Perimeter

Desirable Surface Speed*60/Wheel Perimeter meter=RPM
0.4*60/0.7225=33.31 RPM
0.5*60/0.7225=41.52 RPM
0.6*60/0.7225=49.82 RPM
0.7*60/0.7225=58.12 RPM
0.8*60/0.7225=66.43 RPM

Now we have the desirable RPM for the drive shaft. We would need to start looking at gear ratio between the pulleys. In my setup the biggest pulley that would fit for the drive shaft have an pitch diameter of 105mm and the small 12mm.

Ratio=Pitch Diameter pulley 1/Pitch Diameter pulley 2
105/15= 7 Ratio 

This means the RPM will be reduces of an ratio of 7 in my setup. RPM motor shaft / 7 = RPM drive shaft.

So I could almost directly see that the MAX duty was around 10% for the BLDC motors. But lets to the calculation

10% Duty
407/7= 58.14 RPM

15% Duty
620/7=95.71 RPM

So the summary is that the BLDC motor applied Duty would be in the span of 10-15% to achieve the desirable speeds. It would properly be best to be in the lower region of the Duty at 10%.

Lets see further down the line how it all adds up.

Note: I had some problems finding a big pulleys that would fit my current setup. Motor shaft diameter, shaft diameter and the correct amount of teeth. So I designed a XR pulley for the drive shaft. this way I could get as big as possible (reducing as much as possbible)

Here is the sketch of the tooth on the XR pulley

XR Pulley sketch
XR Pulley sketch
3D printed XR Pulley
3D printed XR Pulley




Chief Technology Officer with a demonstrated history of working in the internet industry. Skilled in Business Planning, Computer-Aided Design (CAD), Quality Process Development, and SolidWorks. Strong business development professional with a Higher Education Diploma with specialization in Mechanical Engineering focused in Product development from Blekinge Institute of Technology.


Leave a Reply

Your email address will not be published. Required fields are marked *