GreatLight CNC Machining Factory logo
CNC Machining
Rapid Prototyping
Materials
Industries
News
About GL

Get Instant Quote

Controller setup

MACH3 Setup Guide for CNC Beginners

MACH3 turns G-code into step and direction pulses. This guide walks through a first-time setup on a stepper-driven mill or router: ports and pins, motor tuning, soft limits, homing, then a safe test cut. Read it before you power the spindle.

Steps per unitSoft limitsHomingFirst test cut
MACH3 setup guide for CNC beginners on a grey CNC mill
Quick answers

Key takeaways

One axis at a timeTune X, then Y, then Z. Never jog two axes on a fresh profile.
Steps per unit is the number that mattersWrong steps per unit scales every part. Verify with a dial indicator over 100 mm.
Set soft limits before you cutSoft limits stop a runaway axis in software. Hard limit switches alone will not save the screw.
Keep the spindle off for first movesJog and home with the spindle disabled, then enable it for the air cut.
Save the profileExport your XML profile after tuning. A reinstall takes one minute to restore.
Before you start

What MACH3 controls and what it does not

MACH3 is Windows-based controller software. It reads G-code and outputs step and direction pulses through the parallel port or an external motion device. The software does not close the loop. There is no feedback from the motor, so if a stepper stalls, MACH3 keeps counting pulses and the part comes out short. That single fact explains most beginner scrap: the machine never knew it lost position.

The setup work is therefore about making the open loop predictable. You define how many pulses equal 1 mm, how fast the axis may accelerate, where the travel ends, and what the machine does on power-up. Get those four things right and MACH3 behaves like a boring, reliable tool. Skip them and every job becomes a guessing game.

This MACH3 setup guide for CNC beginners uses a 3-axis stepper mill as the example. Router, lathe and plasma profiles differ in the homing direction and the spindle output, but the sequence is the same. A lathe needs two axes and a spindle index; a plasma cutter uses a torch on/off output instead of a spindle PWM. The order of operations does not change.

Budget 90 minutes for a first setup. Most of that time is spent measuring, not clicking. You need a dial indicator, a steel rule, and a way to reach the emergency stop without letting go of the keyboard. If you cannot reach the E-stop from your normal standing position, move it before you start.

Prerequisites

Checklist before you open MACH3

Install MACH3 on a 32-bit Windows machine if you plan to use the parallel port. 64-bit Windows blocks the parallel port driver, which is the single most common reason a fresh install shows no motor movement at all. USB and Ethernet motion devices ship with their own plugin, and they work on 64-bit, but you must install the plugin before the profile will talk to the hardware.

Wiring comes next. Stepper drivers need a step pulse, a direction signal and a shared ground. Most drivers are active-low on the enable pin, so the axis holds torque when the signal is low. If your motors are free to turn by hand after power-up, the enable pin is probably inverted in Ports and Pins.

Set the driver current to the motor rating, not the maximum the driver allows. A NEMA 23 rated at 3.0 A runs cooler and quieter at 2.8 A than at 4.2 A, and it will not lose steps on a hobby mill. Microstepping of 8 or 10 is a good starting point. Higher microstepping smooths motion but costs pulse rate, and the parallel port tops out around 25 kHz.

Before touching software, confirm the machine moves by hand with the power off. If a screw binds, no tuning value will fix it. Fix the mechanical drag first: loose coupler, tight gib, misaligned bearing block.

  • 1
    32-bit Windows for parallel port64-bit blocks the driver; use USB or Ethernet motion control instead.
  • 2
    Driver current at motor ratingStart at 90 percent of the nameplate current and check motor temperature.
  • 3
    Microstepping 8 or 10Keeps the pulse rate inside the parallel port limit.
  • 4
    Free movement by handPower off, turn each screw. Binding here means mechanical work, not tuning.
Judgment

When MACH3 is the right controller

MACH3 fits small shops, prototypes and one-off parts on 3-axis mills, routers, lathes and plasma tables. It runs on a cheap PC, accepts a wide range of motion hardware, and the configuration is editable down to the pin level. If you need to drive a converted knee mill with a parallel port breakout board, MACH3 is still one of the shortest paths from a pile of parts to a moving machine.

It is a poor fit for production cells that need closed-loop feedback, tool changers with strict safety interlocks, or machines running unattended overnight. The open loop cannot detect a stall, and Windows is not a real-time operating system. Timing jitter shows up as inconsistent pulse spacing, which matters more as feed rates climb.

For parts that need tight tolerance, the controller is only one link in the chain. A machine that holds ±0.005 mm needs a rigid frame, preloaded ball screws, temperature-stable stock and a probing routine. No software setting creates that. If your prototype needs that tolerance and your benchtop machine cannot reach it, sending the drawing out is usually cheaper than upgrading the mill.

GreatLight runs 127 high-precision CNC machines, including 16 simultaneous 5-axis centers, with tolerances to ±0.005 mm and finishes from Ra 0.2–0.8 μm on request. We quote and return a free DFM analysis within 12 hours. That option exists for the parts your shop is not set up to hold.

The procedure

MACH3 setup, step by step

Follow the order. Each step assumes the previous one passed its check.

  • 1
    1. Create a fresh profileOpen the MACH3 loader and copy an existing mill profile, or start from the default. Name it after the machine, for example Mill_A. Never edit the stock profile. If a setting goes wrong you can delete the copy and start clean in under a minute.
  • 2
    2. Set ports and pinsConfig > Ports and Pins. Assign the step and direction pins for X, Y and Z, then set the step port to 1 and the direction port to 1 for a standard parallel breakout board. Set the step pulse width to 5 μs and the direction prechange to 5 μs. Below 2 μs, most drivers miss pulses at high feed.
  • 3
    3. Configure inputsSet the E-stop pin to active low, then assign X, Y and Z home switches. Enable the E-stop input and confirm the reset button in MACH3 clears only when the switch is released. If the reset flickers, the input is picking up noise. Add a 0.1 μF capacitor across the switch or use shielded cable with the shield grounded at one end.
  • 4
    4. Set spindle and coolant outputsFor a VFD spindle, assign a step or PWM pin for the 0–10 V output and set the pulley ratios so the commanded RPM matches the VFD display. Check with a tachometer at 6,000 rpm and 12,000 rpm. Coolant is a simple on/off output, active low on most relay boards.
  • 5
    5. Enter motor tuning valuesConfig > Motor Tuning. Set steps per unit first, then velocity, then acceleration. A typical hobby mill with 5 mm pitch screws and 8x microstepping lands near 320 steps per mm. Set velocity to 3,000–5,000 mm/min and acceleration to 200–400 mm/s². Raise acceleration until the motor stalls, then back off 30 percent.
  • 6
    6. Verify steps per unitCommand a 100 mm move with G0 X100 and measure with a dial indicator or a rule against a stop. The reading should be within 0.05 mm. If it is off by a fixed ratio, your steps per unit is wrong. If the error grows with distance, backlash or lost steps are the cause, not the tuning value.
  • 7
    7. Set soft limits and homingConfig > Homing/Limits. Set the soft max and soft min for each axis to the real travel, leaving 2 mm of margin. Enable soft limits and set the homing order to Z first, then X and Y. Homing Z first lifts the tool off the work before any lateral move.
  • 8
    8. Air cut before the first real partLoad a short program, raise Z 20 mm above the stock, and run it with the spindle off. Watch the DRO. Any axis that jumps or stalls is losing steps. Fix it now. Cutting air costs nothing; cutting metal with a bad profile costs a tool and a workpiece.
Reference

Parameter starting points and symptoms

Values for a stepper-driven mill or router. Adjust to your screw pitch and driver.

SettingTypical valueSymptom when wrong
Step pulse width5 μsMotor stalls or hums at high feed
Direction prechange5 μsAxis moves the wrong direction randomly
Steps per unit320 steps/mm (5 mm pitch, 8x)Parts come out scaled by a fixed ratio
Velocity3,000–5,000 mm/minStalling mid-move, rough direction changes
Acceleration200–400 mm/s²Jerk on corners, lost steps on start
Soft limitsTravel minus 2 mmAxis drives into the hard stop
Homing orderZ, then X, then YTool crashes on the first home move
Driver current90% of motor ratingHot motors, or weak torque and skipping

Set it up once, verify it every month

Spend the 90 minutes on ports, tuning and limits before the first cut. A MACH3 profile that is measured, not guessed, will hold position for years.

FAQs

Common questions

Why do my motors not move after a fresh install?

Check three things in order. First, confirm the parallel port address in Device Manager matches the one in MACH3. Second, confirm the enable pin polarity. Third, confirm the charge pump setting matches your breakout board.

If you are on 64-bit Windows with a parallel port, the driver will not load. Move to a USB or Ethernet motion device, or install MACH3 on a 32-bit machine.

How do I know if an axis is losing steps?

Command a 100 mm move, mark the position, then command a return to zero. Measure the gap. Any repeatable gap above 0.05 mm is backlash; a random gap is lost steps.

Lost steps usually come from acceleration set too high or driver current set too low. Lower acceleration by 30 percent and retest before changing anything else.

Should I run soft limits or hard limit switches?

Run both. Hard switches protect the machine during homing and after a crash. Soft limits protect it during normal running, before the switch is ever reached.

Set the soft limit 2 mm inside the physical travel. That margin absorbs the deceleration distance so the axis stops before the switch.

What spindle speed range can MACH3 control?

MACH3 outputs a step or PWM signal that a VFD converts to 0–10 V. The usable range depends on the VFD, not the software. Most setups control reliably from 10 percent to 100 percent of the VFD rating.

Below 10 percent, many VFDs lose torque and the reading drifts. Verify with a tachometer at two points and adjust the pulley ratio until the commanded RPM matches.

Can I use MACH3 on a lathe?

Yes. A lathe profile uses X and Z, plus a spindle index input for threading. The index pulse must be clean; a noisy signal produces thread pitch errors that look random.

Set the spindle index debounce in Config > General Config if you see erratic thread starts. Keep the index sensor cable away from the spindle motor leads.

How often should I re-verify the setup?

After any mechanical change: coupling, screw, motor, or driver replacement. Also after a Windows update on the control PC, since driver behavior can change.

For a machine in daily use, check steps per unit once a month with a 100 mm move. It takes two minutes and catches drift before it reaches a part.

Need parts your benchtop mill cannot hold?

Send the drawing. We return a quotation and a free DFM analysis within 12 hours, and production can start within 24 hours.

12-hour quote±0.005 mm toleranceNo minimum order quantity

Follow

More from the shop floor

We publish setup notes, tooling trials and inspection data from the factory floor.

FacebookTikTokYouTubeLinkedInInstagramThreadsPinterest

Trusted by engineers and manufacturers worldwide

Tesla Ford Motor Company BYD Auto Denso Magna International Boeing Airbus Medtronic KUKA FANUC