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 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 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 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 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 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), its settings-versus-program split (motor tuning, ports and pins: configuration, not G-code, the same layer separation 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 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 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 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
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.