What to do about "hitching", or missing / skipping steps in Mach3


Here’ s an article I wrote for Joe’s CNC wiki. I figured this might be handy for some of our readers with their own mills, or anyone who stumbles on this post from Google.

If your machine is “hitching” or missing / skipping steps constantly, odds are you have a controller issue. Most controller issues are caused by latency in the Mach3 application. The easiest way to see if you have a Mach 3 issue is to watch the “Units/Min” on the Feed Speed display while running your gantries back and forth. If you see a mysterious drop in speeds when you’re hearing a “chunk” noise, you’re probably missing steps due to a software issue.

This has many causes, but I am going to run you through fixing some common causes.

The easiest way I’ve found to overall troubleshoot your PC is a piece of software called Prime95. Prime95 is a PC torture tester used to peg your CPU at high usage for long periods. It is available for download here.

Once you’ve downloaded Prime95, try running it in the “Torture Test” mode with an amount of threads calibrated to “take over” every core or processor but one. If you have a quad core PC, select 3 threads, if you have tri core, select 2 threads, if you have dual core, select one thread. If you don’t have a multicore PC, skip to the part about setting priority.

1. Power Saving

Most “modern” processors from 2004 or later have various powersaving modes that slow the CPU down when idle. Slowing the PC down can screw up Mach’s timings and cause intermittent hitching. These can be dealt with in two ways. One way is to make sure Mach3 is using enough of your CPU to prevent the CPU from slowing down. You could also use Prime95 or another torture tester like OCCT to stress out the CPU. If you task manager shows Mach3 using over 50% of the CPU, you should be fine. The second way is to disable these power saving options in your BIOS. Look for entries marked “use EIST” for Intel or “use Cool N Quiet” for AMD.

2. Multicore Processors

Modern multicore processors can run more than one program at once, but tend to move programs around to load balance them. Mach3 doesn’t like being moved from core to core very much. You can easily test for this as a potential cause by stressing out all of your cores but one, which should end up running Mach3. If multicore issues are giving you grief, try the instructions below. You’ll need to do this every time you start Mach3 unless you’re willing to use some esoteric software to permanently set this up.

How to set processor affinity on multicore or multiprocessor systems:

1. Start Task Manager and select the “Processes” tab.

2. Select the Mach3 process and right click. Select the “Set Affinity” option. (On Windows Vista or Windows 7 unless you have UAC disabled, you’ll need to elevate your permissions by clicking the “Show Process from All Users” option before you can properly set affinity.)

3. Uncheck every CPU but one. I suggest the 2nd, 3rd, or 4th processor personally, but it probably won’t matter.

3. “Housekeeping” and other tasks in the background

On single core PCs, you could have background tasks slowing down Mach. There’s various suggested remedies for this like uninstalling software like anti-virus that runs in the background, disabling networks cards so applications can’t try to do anything, or setting your application priority higher. I suggest all of the above, but the priority setting is by far the quickest fix so try it first. Priority must be set every time you start Mach3 unless you want to write a batch file to do it for you.

How to set “Realtime prority”: (WARNING: Microsoft suggests “realtime” or “high” can extremely bad for system stability. The good news is, if your system crashed it will go right back to normal priority next time you start it. I wouldn’t suggest it without a multicore processor, and unless it is your last resort for smooth operation. “High” or “Above Normal” may fix your issues and be less likely to render your PC completely unusable without a reboot as Mach3 eats your entire CPU.)

1. Start Task Manager and select the “Processes” tab.

2. Select the Mach3 process and right click. Mouse over “Set Priority” and select “High” or “Realtime” (On Windows Vista or Windows 7 unless you have UAC disabled, you’ll need to elevate your permissions by clicking the “Show Process from All Users” option before you can set process priority.)

This should eliminate the vast majority of hitching caused by your controller PC. If this doesn’t work, you can always try a Smoothstepper. I’ll edit this post later this week to add more screenshots of the process.

  1. No comments yet.
(will not be published)