Previously, I had tried to increase the speeds of the CNC machine with disastrous results. The reason was that the stepper motors which drove the movements in the axes would stall if they encountered more load than they could take.

Stepper motors are very special. They are able to rotate and hold on to the required positions of rotation by following the commands of computer programs or code. Unlike induction motors and shunt motors which rotate all the while once they were powered on, stepper motors will only rotate one step at a time according to the program and it will remain in that position until the next command comes. These operating characteristics make them very useful in robotics and in CNC machines.

Because the positions of each step of the stepper motor were held solely by magnetic fields, if the stepper motor encountered resistance to the mechanical movement that is more than what the force of the magnetic field could hold, the motor would simply stop turning. (This also happens when the acceleration was chosen to be too high during changes in direction)

This would cause a miss step. The computer software program would register it as the new position, while the actual position in the CNC machine would remain the same, missing a step. From this time onwards, the movement does not follow the program exactly in real time. The cuts on the work piece would be performed at unintentional places and the whole work piece would be spoilt.

So to avoid these miss steps, the speeds and accelerations of the stepper motors had to be carefully chosen – low enough so that there would be sufficient torque to overcome any resistances, but high enough to produce decent work results in timely manners.

Of particular concern to me was the Z-axis. The speeds could not be increase much. In fact it was far too slow. But I had to keep it low because of the problem of miss steps. From my analysis, the Z-axis stepper motor had to oppose the downward gravitational forces posed by the weight of the spindle. This had to be overcome by the stepper motor.

Although there was a mechanical advantage by using screw threads, the speed still had to be a compromise. Changing to a finer pitch of the lead screw would increase the torque of the drive train, but the final result would just be translated into a slower vertical movement. This would not solve the problem.

This time I had a brainwave! How about using a counter weight to make the motor see a lower weight? I would use a slightly lower weight than the spindle assembly so that the resultant weight would still be acting downwards.

It was important to have a force acting in one direction (downwards) all the time so that the backlash on the lead screw would be eliminated regardless whether the spindle was moving up or down.



So, I managed to increase my Z-axis speed, which translated to increased speed for the whole machining process. The video said it all. For the counterweight, I managed to find an aluminium canister and filled it to the brim with sand.

I could also be reducing the wear-down on the lead screw nut because less force would be acting on the contact surfaces, and at the same time still maintaining an anti-backlash situation in the z-drive.

Just an after thought – this set up would ideally work for the X and Y moving bed design, because then the Z-axis position would not move at all. In my CNC design, the X-axis did move laterally, but the distances were short. The angles from vertical of the weight supported cables did not pose a problem as the resultant upward force was maintained.