G-code Dialects

MapleCAM supports multiple G-code dialects to match different CNC controllers.

Supported Dialects

GRBL

The most common controller for hobby CNC machines. Used by Shapeoko, X-Carve, OpenBuilds, 3018 machines, and many others.

Key characteristics:

  • Spindle control via M3 S{speed} / M5
  • Feed rate set with F{rate} on motion commands
  • Arc commands G2/G3 with I/J offsets
  • No subroutines or canned cycles

LinuxCNC

An open-source CNC controller running on Linux PCs. Common in more advanced hobby and semi-professional setups.

Key characteristics:

  • Full G-code implementation including canned cycles
  • Spindle control via M3 S{speed} / M5
  • Supports tool change (M6 T{n})
  • Comment syntax: ; comment or ( comment )

Dialect Differences

FeatureGRBLLinuxCNC
Comment style; comment; comment or ( comment )
Arc formatI/J incrementalI/J incremental
Tool changeNot supportedM6 T{n}
Spindle controlM3/M5M3/M5

Choosing a Dialect

Select the dialect in your machine configuration. If you're unsure, GRBL is the safe default — it works with the majority of hobby CNC controllers.

The dialect is used during G-code export. You can change it at any time without regenerating toolpaths.