Tuesday, 22 November 2016

Is CNC stepper motion really smoother with UCCNC than with Mach3?

Please note that this post is just a description of my findings and is based, apart from my short experience with UCCNC and longer experience of Mach3, on some mail conversations and experimental testing.

The causes of smoother motion

Some of the causes of smoother motion are improvements in predictions of movements and a more accurate timing between step pulses in UCCNC than in Mach3. The main contributing factor for smoothness is the timing between signals. Better prediction algorithm is contributing mainly to accuracy in movements, not exactly the smoothness, even though the better prediction also contributes to “better sounding” CNC, which gives the impression of smoother movements.

Smoothness is mostly caused by how precise the step signals are timed

Take a simple motion from 0mm to 100mm with X mm/min constant speed as an example. Looking at the constant velocity part (not the accelerations / decelerations), that part of the path in an ideal world should contain a constant stepping frequency of Y kHz. If the frequency of the steps is not constant then there are errors in the timing, and since stepper motors are actually synchronous motors with high pole count acting in open loop position control, they are very sensitive for timing errors.

Timing error in this case means that the pulsing is not at a constant time tick, and the interval between pulses is varying. This is not ideal; an errorless motion requires constant pulsing, ideally repeated at exact same interval between pulses.

Disadvantages of parallel port

When a parallel port (LPT) is used for stepper motor pulse generation the pulses are timed by Windows so the timing will not be as accurate as required for even and smooth motion. Pulses and the pauses between pulses will have varying times and as a result, the speed of the motors will not be smooth and constant in every situation.

Advantages of external motion controller

When using an external motion controller, like for example the UC300ETH, the pulses are timed by the motion controller. In this case the time base is only a few hundreds of nanoseconds (using the UC300ETH), there will be so little timing error that it can be ignored, and the motion will look and sound smooth, very stable and constant.

The benefits of smooth motion

The smoother and more accurate the timing is, the less is the risk for the motors to loose steps, and the higher is the speed which will cause them to get out of sync and loose steps due to motor speed. This is why it is possible to run at higher speeds with external motion controllers than using parallel port. The smoothness of the motion is the same when running UCCNC or Mach3 if the same motion controller is used because the timing base is the same.


If Mach3 users feel that their machines are not running as smooth as they wish for, the first step would be to have a look at the way those machines are driven. If they use parallel port then it is advisable to get an external motion controller of good quality. My experience is with the CNC Drive external motion controller products, and only with the UC300USB and the UC300ETH, but it is my understanding that even other external motion controllers will have a positive effect on smoothness. Some motion controllers have Mach3 plugins available, so of course, anybody interested in using an external controller must first find out if the supplier has a Mach3 plugin or not, before buying one. Also look for compatibility level. Not all motion controllers have a high enough G-code compatibility and all the necessary codes may not be supported, so don’t just buy an external controller, do your homework first. I made a mistake of buying a USB controller which was not compatible enough for my needs, so I wasted about $100 on that mistake, so watch out for this point as well.

No comments:

Post a Comment