← How-Tos
cnc Aug 15, 2026 ◑ 6 views ◯ 6 min read

Mach3 and Mach4 CNC Controller Software: Setup, Configuration, and G-Code Basics

Mach3Mach4CNC controller softwarebreakout boardmotion controllerG-codeparallel port

Our gSender and UGS coverage handles the controller software most GRBL-based desktop routers like the Wolfpawn 4040 Pro ship with. Mach3 and Mach4 are a different lineage entirely — Windows-based CNC control software originally built around the PC parallel port, still widely used on larger hobby and light-industrial routers, plasma tables, and machines converted from manual mills. If you're buying a used machine, building a larger router from a kit, or upgrading a machine that predates GRBL controllers, there's a real chance Mach is what you'll be configuring instead. This guide covers the differences between the two versions, hardware requirements, and getting a machine running.

Mach3 vs. Mach4: What's Different

Mach3Mach4 ArchitectureOlder, 32-bit, parallel-port-native designModern rewrite, plugin-driven architecture Motion controller supportParallel port native; USB/Ethernet controllers via pluginPlugin-based for essentially all motion controllers, including parallel port via plugin LicensingOne-time license, widely deployed on existing machinesOne-time license, current development focus Screen/UI customizationVB-script based screens (Brains), dated but flexibleLua-scripted, more modern but a different learning curve Best fitExisting machines already running it, older parallel-port setupsNew builds, machines using modern USB/Ethernet motion controllers

If you're inheriting or buying a used machine that's already configured and running Mach3, there's rarely a good reason to migrate it to Mach4 — a working configuration is worth more than a version number. For a new build from scratch, Mach4 is the better long-term choice given where active development attention is.

Hardware Requirements

Unlike GRBL controllers, which run entirely on a microcontroller and take G-code over USB serial, Mach3/Mach4 runs as software on a Windows PC and needs a way to turn its step/direction timing into actual motor pulses. That link is the part most people get wrong on a first setup.

Motion InterfaceNotes Native parallel portThe original method — direct, low-latency, but modern PCs rarely have a physical parallel port; a PCIe parallel port card works but timing can be sensitive to motherboard chipset ESS (Ethernet SmoothStepper)External Ethernet-connected motion controller; offloads real-time step generation from the PC, avoiding Windows timing jitter issues entirely PoKeys / UC100 / similar USB motion controllersUSB-connected alternatives to parallel port or ESS, each with their own Mach plugin

A breakout board sits between whichever motion interface you choose and your actual stepper drivers, VFD, and limit switches — it isolates the low-voltage control signals from the machine's higher-current wiring and typically provides optically isolated inputs for switches and E-stop.

Installation and Licensing

  1. Install on a dedicated or lightly-used Windows PC — if you're using the native parallel port method, real-time timing performance matters, so avoid running other demanding software during machining and disable Windows power-saving features that can introduce latency spikes.
  2. Install your motion controller's specific plugin (ESS, PoKeys, etc.) before first launch if you're not using a bare parallel port.
  3. License activation ties to your machine's hardware ID; keep your license key somewhere safe, since a motherboard swap or major hardware change can require re-activation.

Motor Tuning

Motor tuning is the step that translates your machine's actual mechanics (leadscrew pitch or belt pulley size, microstepping setting on your drivers) into correct real-world motion. In the motor tuning screen, set:

Configuring I/O

Beyond motor tuning, a working machine needs its safety and utility I/O mapped correctly in the Ports and Pins (Mach3) or Configuration > Plugins/Devices (Mach4) settings:

G-Code Basics in Mach

Troubleshooting Common Issues

SymptomLikely Cause Motors run at the wrong speed or distanceIncorrect steps/unit — re-run the calibration wizard with an accurate measured test move Motion is jerky or motors stall at speedAcceleration set too aggressively for your drive system, or (on native parallel port) Windows timing jitter — consider an ESS or USB motion controller to offload timing Parallel port not detectedCommon on modern PCs with no native port — confirm a genuine LPT-compatible PCIe card, not a generic USB-to-parallel adapter, which doesn't provide real-time signaling Screen resolution or UI scaling issuesBoth versions predate modern high-DPI display scaling conventions — running in a lower resolution or a compatibility mode often resolves distorted screens

Safety

Mach3 and Mach4 look dated next to a GRBL sender's simpler workflow, but that's largely because they're solving a broader problem — supporting everything from a small router to a full industrial retrofit through the same software. If you're inheriting a machine that already runs one of them, learn its existing configuration before changing anything; if you're building new and have a choice, GRBL-based control remains the simpler path for a typical desktop router, and Mach is worth reaching for when your machine's motion controller or I/O requirements outgrow what GRBL boards handle.

🔧 Related tool: G-code Analyzer