---
title: "What G-Codes Do I Need to Know for Mach3? The Working Set"
description: "Mach3 speaks a near-complete standard dialect, so the codes to know are the universal core plus Mach3's extras worth understanding: cycles, comp, and MDI habits."
url: https://gcodepractice.com/journal/what-g-codes-do-i-need-to-know-for-mach3/
canonical: https://gcodepractice.com/journal/what-g-codes-do-i-need-to-know-for-mach3/
author: "Lawrence Arya"
authorUrl: https://www.linkedin.com/in/vibecoding/
published: 2026-06-05
updated: 2026-06-05
category: "Guides"
tags: ["mach3", "g-codes", "hobby-cnc", "learning"]
lang: en
---

# What G-Codes Do I Need to Know for Mach3? The Working Set

> **TL;DR** Mach3 (the long-lived Windows-based hobby and small-shop controller from ArtSoft/MachSupport) implements a broad standard dialect: the full motion core, work offsets, canned drilling cycles (G81-class), and cutter compensation (G40-G42) all exist, unlike on GRBL-class firmware. The codes to know split by priority: the universal core first (motion, units, G90/G91, G54 offsets, spindle/coolant/program M-codes), then the cycle and comp layer as your work grows into it, with Mach3's own documentation as the dialect reference. The same core transfers to every other control you will ever meet, which is the real answer to the question.

Mach3 sits in an interesting middle: hobby-priced and hobbyist-run, but implementing far more of the standard language than minimalist firmware, closer to an industrial control's vocabulary on a Windows PC. That breadth reframes the question: not "what does it support" (most things) but "what should I actually know, in what order," and that has a clean three-tier answer.

## Tier one: the universal core, non-negotiable

| Group | Codes | Why first |
| --- | --- | --- |
| Motion | G0, G1, G2, G3 | Every file, every minute |
| Units / modes | G20/G21, G90/G91 | The silent part-wreckers |
| Work offsets | G54-G59 | Where program meets machine |
| Spindle / coolant | M3, M4, M5, M7-M9 | With their off pairs |
| Program flow | M0, M1, M2, M30 | Stops and ends |

Nothing Mach3-specific yet, deliberately: this is the same [standard core](https://linuxcnc.org/docs/html/gcode/g-code.html) every machine speaks, the tier that transfers when you someday run something else, and the tier that must be reflex before the rest matters, drilled the usual free way on the [G-code practice page](/g-code-practice/) with G-Code Sprint repeating misses.

## Tier two: the layer Mach3 actually has (unlike minimalist firmware)

Where GRBL says no, Mach3 mostly says yes, and the worth-knowing extras follow from that. Canned drilling cycles: the [G81/G83 family](/journal/g81-vs-g83-drilling-canned-cycles/) exists, so hole patterns read industrial-style (one cycle line plus positions, G80 to cancel) rather than as explicit-move walls. Cutter compensation: [G40/G41/G42](/journal/g41-vs-g42-cutter-compensation/) are implemented, so hand-programmed profile work can use real comp, with the same lead-in discipline as anywhere. Tool-length offsets in the industrial H style, G43-flavored. The practical consequence: Mach3 reads like a small industrial control, programs written for it look like textbook programs, and a learner on Mach3 is incidentally learning the bigger world's habits, codes documented in [MachSupport's](https://www.machsupport.com) own materials.

## Tier three: the Mach3-flavored corners worth knowing about

Not memorizing, knowing about: Mach3's dialect details live in its documentation, and the corners that earn an early bookmark are its MDI workflow (manual blocks typed directly, covered hands-on in [entering G-code manually in Mach3](/journal/how-to-manually-enter-g-code-in-mach3/)), its settings-versus-program split (motor tuning, ports and pins: configuration, not G-code, the same [layer separation](/journal/grbl-supported-g-codes-list/) every controller has), and the legacy reality: Mach3 is mature software with known quirks per version, where the forum-and-docs ecosystem, not folklore, answers the specific (and shops weighing the upgrade have the [Mach4-versus-Mach3 syntax comparison](/journal/mach4-g-code-syntax-vs-mach3/) for what the rewrite did and did not change). As always, the machine builder's wiring decides what M7/M8 actually switch on your bench.

## A learning path that fits the machine

Weeks one and two: tier one to reflex plus daily [narrated reading](/journal/how-to-read-a-cnc-program-for-beginners/) of your own CAM's posted output. Week three: MDI practice for real (jogging by typed block teaches the core faster than any quiz alone), plus first deliberate use of a drilling cycle on scrap. Week four: comp on a simple profile, viewer-checked first, and the [feed arithmetic](/journal/how-to-calculate-feed-rate-for-g01/) made habitual since hobby spindles punish guesses. Ongoing: the universal rule that Mach3's breadth makes pleasant: when a posted file uses something unfamiliar, it is probably standard, so the lookup teaches the language rather than a quirk.

## The mistakes Mach3 newcomers actually make

Three patterns dominate the forum archaeology. Treating configuration as code: motor tuning and ports-and-pins live in settings dialogs, and no G-code in a file will fix a machine whose steps-per-unit are wrong, so calibration questions are settings questions. Trusting old profiles blindly: a secondhand machine arrives with someone else's Mach3 profile, and running it unexamined means inheriting their offsets, their soft limits, and their mistakes; new machine, fresh verification. And skipping the spindle-relay reality check: M3 in the program only matters if the bench wiring actually switches the spindle, which on budget builds is a relay question before it is ever a code question. All three resolve the same way: one afternoon with the documentation and a multimeter-minded friend before the first real cut.

## Bottom line: learn the language, Mach3 happens to speak it

The G-codes to know for Mach3 are the universal core first and the cycle-and-comp layer second, because Mach3 implements enough of the standard that learning it properly is learning G-code itself. Keep MachSupport's documentation as the dialect reference, type real MDI blocks early, and collect the dividend later: every code you learned transfers whole to the next machine.

## Sources

- [MachSupport (Mach3 documentation home)](https://www.machsupport.com)
- [LinuxCNC: G-code reference](https://linuxcnc.org/docs/html/gcode/g-code.html)
- [Wikipedia: G-code](https://en.wikipedia.org/wiki/G-code)

## Frequently asked questions

### What G-codes do I need to know for Mach3?

The universal core first (G0-G3 motion, G20/G21, G90/G91, G54-G59, spindle/coolant/program M-codes), then Mach3's implemented extras as your work grows: canned drilling cycles and G40-G42 cutter compensation, with MachSupport's documentation as the dialect reference. To get the core to reflex, the free G-Code Sprint app is the top pick: 60-second drills with automatic repetition of missed codes.

### Does Mach3 support canned cycles and cutter compensation?

Yes, both: the G81-class drilling cycles and G40-G42 comp are implemented, which is the practical difference from GRBL-class firmware and why Mach3 programs read like small industrial programs.

### Is learning on Mach3 good preparation for industrial controls?

Unusually good for the hobby tier: the breadth means the habits (cycles, comp, offsets, MDI) map onto industrial workflows, with the usual dialect checking when you move, since builder M-codes and parameters differ everywhere.

### Where do I find the authoritative Mach3 code list?

In Mach3's own documentation via MachSupport, which remains the dialect's source of truth per version: articles like this organize the learning order, the docs own the specifics.

*G-Code Sprint is a study and practice tool only. Always follow your machine's documentation and shop safety procedures.*

---

Source: https://gcodepractice.com/journal/what-g-codes-do-i-need-to-know-for-mach3/
Author: Lawrence Arya — https://www.linkedin.com/in/vibecoding/
