G-codes List

Code Parameters Description Example
G00 X, Y, Z, A, B, C, F  Rapid positioning – moves the tool in a straight line to the specified coordinates. If no feedrate is provided, the machine uses maximum speed.

Main parameters:
  • • [X] – target X coordinate [mm]
  • • [Y] – target Y coordinate [mm]
  • • [Z] – target Z coordinate [mm]
  • • [A] – target A coordinate [deg]
  • • [B] – target B coordinate [deg]
  • [C] – target C coordinate [mm]
  • Specify only the axes you want to move

  • • [F] – feedrate [mm/min]
  • If omitted, the machine moves at maximum speed

Note: The C axis are not supported yet. Please refer to the product roadmap for details.
G00 X10 Y20.52
Executes a rapid move from the current position to X10 Y20.52 at maximum speed.

G00 X30 Y40 F500
Executes a rapid move from the current position to X30 Y40 using a feedrate of 500 mm/min instead of the maximum speed.
G01 X, Y, Z, A, B, C, F  Linear interpolation – moves the tool in a straight line to the specified coordinates at the programmed feedrate.

Main parameters:
  • • [X] – target X coordinate [mm]
  • • [Y] – target Y coordinate [mm]
  • • [Z] – target Z coordinate [mm]
  • • [A] – target A coordinate [deg]
  • • [B] – target B coordinate [deg]
  • [C] – target C coordinate [mm]
  • Specify only the axes you want to move

  • • [F] – feedrate [mm/min]
  • If omitted, uses the last feedrate specified for G01, G02, or G03

Note: The C axis is not supported yet. Please refer to the product roadmap for details.
G01 X10 Y20.52 F500
Executes a linear interpolation from the current position to X10 Y20.52 at a feedrate of 500 mm/min.

G01 X30 Y40
Executes a linear interpolation from the current position to X30 Y40 using the last specified feedrate.
G02 X, Y, I, J, R, F  Circular interpolation, clockwise – moves the tool along a circular path in the XY plane to the specified end coordinates.

Main parameters:
  • • [X] – target X coordinate [mm]
  • • [Y] – target Y coordinate [mm]
  • Omitting X and Y executes a full circle at the current XY position when using the I/J center offset method.

  • • [F] – feedrate [mm/min]
  • If omitted, uses the last feedrate specified for G01, G02, or G03

The arc can be defined in two ways: (do not mix them in one line) 1. Center offset method:
  • • [I] – X axis offset from the start point to the circle center [mm]
  • • [J] – Y axis offset from the start point to the circle center [mm]
  • At least one offset (I or J) must be specified when using this method.

2. Radius method:
  • • [R] – circle radius [mm]
  • The sign of R selects which arc is executed:
  • R+ (positive value) – arc with sweep angle ≤ 180°
  • R- (negative value) – arc with sweep angle > 180°
Note: If R is provided, firmware uses the radius method and ignores I/J. The sign of R does not change the direction of motion. Direction is defined by the command – clockwise for G02.
G02 X30 Y40 I10 J10 F100
CW arc to X30 Y40. Center is offset by I10 (X) and J10 (Y) from start point. Feedrate: 100 mm/min.

G02 X50 Y60 R15
CW arc to X50 Y60 with radius 15. R+ selects the shorter arc (≤ 180°). Uses last feedrate.

G02 X50 Y60 R-15
CW arc to X50 Y60 with radius 15. R- selects the longer arc (> 180°). Uses last feedrate.

G02 I10 J10
Full circle (360°) at current position with center offset I10 J10.
G03 X, Y, I, J, R, F  Circular interpolation, counterclockwise – moves the tool along a circular path in the XY plane to the specified end coordinates.

Main parameters:
  • • [X] – target X coordinate [mm]
  • • [Y] – target Y coordinate [mm]
  • Omitting X and Y executes a full circle at the current XY position when using the I/J center offset method.

  • • [F] – feedrate [mm/min]
  • If omitted, uses the last feedrate specified for G01, G02, or G03

The arc can be defined in two ways: (do not mix them in one line) 1. Center offset method:
  • • [I] – X axis offset from the start point to the circle center [mm]
  • • [J] – Y axis offset from the start point to the circle center [mm]
  • At least one offset (I or J) must be specified when using this method.

2. Radius method:
  • • [R] – circle radius [mm]
  • The sign of R selects which arc is executed:
  • R+ (positive value) – arc with sweep angle ≤ 180°
  • R- (negative value) – arc with sweep angle > 180°
Note: If R is provided, firmware uses the radius method and ignores I/J. The sign of R does not change the direction of motion. Direction is defined by the command – counterclockwise for G03.
G03 X30 Y40 I10 J10 F100
CCW arc to X30 Y40. Center is offset by I10 (X) and J10 (Y) from start point. Feedrate: 100 mm/min.

G03 X50 Y60 R15
CCW arc to X50 Y60 with radius 15. R+ selects the shorter arc (≤ 180°). Uses last feedrate.

G03 X50 Y60 R-15
CCW arc to X50 Y60 with radius 15. R- selects the longer arc (> 180°). Uses last feedrate.

G03 I10 J10
Full circle (360°) at current position with center offset I10 J10.
G04 P, S  Dwell – pauses program execution for a specified period of time without moving the machine.

Main parameters:
  • • [P] – dwell time in milliseconds [ms]
  • • [S] – dwell time in seconds [s]
  • Only one parameter should be specified at a time.
  • If both P and S are specified, the S parameter takes precedence.
  • If no parameter is specified, or the value is 0 or negative, the command has no effect.
Note: Before starting the dwell timer, firmware waits until all previously queued motion is complete. During dwell, the controller remains active.
G04 P1000
Pauses execution for 1000 milliseconds (1 second).

G04 S2
Pauses execution for 2 seconds.

G04 P500 S1
Although P500 (500 ms) is specified, the S parameter takes precedence, resulting in a 1 second dwell.

G04
No parameters provided. The command is ignored and no dwell is performed.

G04 P0
Zero dwell time specified. The command has no effect.
G28 X, Y, Z, A, B, C, F, M, N, T, D, H  Homing and axis state control – controls homing, trust state and position reference of the specified axes.

Main axis parameters:
  • • [X] – target X axis
  • • [Y] – target Y axis
  • • [Z] – target Z axis
  • • [A] – target A axis [deg]
  • • [B] – target B axis [deg]
  • [C] – target C axis

Operating modes:
  • • [H] – return selected trusted axes to stored home position
  • • [M] – manually set current position of selected axes to the provided coordinate values
  • • [N] – manually set selected axes to machine zero / configured homing reference
  • • [T] – mark selected axes as trusted and homed
  • • [D] – mark selected axes as untrusted and unhomed
  • If no mode parameter is given, automatic homing is performed.

Automatic homing (default mode):
  • Moves selected axes towards hardware endstops.
  • Uses optional [F] feedrate or the configured homing feedrate if F is omitted or invalid.
  • • Automatic homing order is Z, X, Y, A, B.

Note: If multiple operating modes are provided in one command, firmware uses this priority: D > T > H > N > M > automatic homing.
Note: The C axis is not supported yet. Please refer to the product roadmap for details.
G28 X Y Z
Automatically homes X, Y and Z axes using hardware endstops.

G28 X0 Y0 M
Manually sets the current X and Y positions to the specified coordinates.

G28 X D
Marks the X axis as untrusted and unhomed.

G28 X T
Marks the X axis as trusted without performing any motion.

G28 X H
Moves the X axis to the stored home position (only if the axis is trusted).

G28 X N
Performs manual homing of the X axis using configured machine endstop limits.

G28 Z F100
Performs automatic homing of the Z axis using a custom feedrate.
G38.2 X, Y, Z, A, B, C, F  Probe towards material surface – moves the probe towards the specified target coordinates until material contact is detected. If the target Z position is reached without detecting material, an error is triggered.

Main parameters:
  • • [X] – target X coordinate [mm]
  • • [Y] – target Y coordinate [mm]
  • • [Z] – target Z coordinate [mm]
  • • [A] – target A coordinate [deg]
  • • [B] – target B coordinate [deg]
  • [C] – target C coordinate
  • Specify only the axes you want to move. If no axis movement is requested, firmware only checks the current material detection input.

  • • [F] – probing feedrate [mm/min]
  • If omitted or invalid, the configured homing feedrate for the first moving axis is used.

G38.2 Z-15 F500
Probes the Z axis down to -15 mm at 500 mm/min until material contact is detected.

G38.2 X50 Y50 Z-10
Moves towards the target position X50 Y50 Z-10. If material is detected before reaching Z-10, the probe stops immediately and the machine’s position is updated to X50 Y50, with Z set to the measured contact height.
G53 X, Y, Z, A, B, C, F  Move in the machine coordinate system – performs motion in the machine’s absolute coordinates, ignoring all work offsets.

Main parameters:
  • • [X] – target X absolute coordinate [mm]
  • • [Y] – target Y absolute coordinate [mm]
  • • [Z] – target Z absolute coordinate [mm]
  • • [A] – target A absolute coordinate [deg]
  • • [B] – target B absolute coordinate [deg]
  • [C] – target C absolute coordinate
  • Specify only the axes you want to move

  • • [F] – feedrate [mm/min]
  • If omitted or invalid, the machine uses maximum feedrate
G53 X0 Y0 Z0
Moves the machine to the absolute position X0 Y0 Z0 in the machine coordinate system at maximum speed (or specified F). Work offsets are ignored.
G90 Absolute positioning – all subsequent workspace moves are interpreted as absolute coordinates in the current work coordinate system.

Note: Does not perform motion by itself; only changes how coordinates are interpreted. G53 always uses machine coordinates.
G90
Sets the machine to absolute positioning mode. Future workspace movement commands use coordinates in the current work coordinate system.

Example sequence:
G90
G0 X10 Y10

Moves the tool to absolute position X=10, Y=10.

G0 X20 Y5
Moves the tool to absolute position X=20, Y=5.
G91 Relative positioning – all subsequent workspace moves are interpreted as relative displacements from the current position.

Note: Does not perform motion by itself; only changes how coordinates are interpreted. G53 always uses machine coordinates and is not affected by G91.
G91
Sets the machine to relative positioning mode. Future workspace movement commands move the tool relative to its current position.

Example sequence:
G91
G0 X10 Y10

Moves the tool +10 mm in X and +10 mm in Y relative to its current position.

G0 X-5 Y0
Moves the tool -5 mm in X, Y remains unchanged.
G92 X, Y, Z, A, B  Set logical current position – assigns the specified coordinates to the current position by shifting the workspace offset without moving the tool. Useful for resetting the origin or aligning workpieces.

Main parameters:
  • • [X] – X axis value to set [mm]
  • • [Y] – Y axis value to set [mm]
  • • [Z] – Z axis value to set [mm]
  • • [A] – A axis value to set [deg]
  • • [B] – B axis value to set [deg]
  • [C] – C axis value to set
Note: The C axis is not supported yet. Please refer to the product roadmap for details.
G92 X0 Y0 Z0
Sets the current machine position to X=0, Y=0, Z=0 without moving the tool. Future movement commands will interpret this as the new origin.

G92 X100
Sets the current X position to 100 mm, leaving other axes unchanged.
G92.38 Status: Not available yet. Planned for firmware FW 1.3.

Set logical Z position from the last material detection input captured by G38. This command does not move the tool.

Behavior:
  • • If the last G38 detection used material input 1, Z is set using the configured material detect offset.
  • • If the last G38 detection used material input 2, Z is set using the configured material detect 2 offset.
  • • If no material detection input was captured by G38, the command is ignored.
Note: Use G92.38 after a successful G38 probing move to apply the configured material detection offset to the logical Z position.
G38.2 Z-15 F500
G92.38

Probes toward Z-15. If material is detected, G92.38 sets the logical Z position using the configured offset for the material detection input that was triggered.

M-codes List

Code Parameters Description Example
M00 P, S  Program stop – pauses program execution until a continue signal is received. The signal can come from the user, an input pin, or an external module.

Main parameters:
  • • [P] – timeout in milliseconds
  • • [S] – timeout in seconds
  • Only one parameter should be specified at a time.
  • If both P and S are specified, the S parameter takes precedence.
  • If neither P nor S is specified, the timeout is 0 and firmware waits indefinitely for a continue signal.
  • For ARC OK waiting, use M66 Q instead. M00 S timeout usage is legacy behavior and remains supported temporarily for backward compatibility.

M00 S3
Stops program execution for up to 3 seconds or until a continue signal is received. If no signal is received within 3 seconds, firmware triggers a timeout fault and aborts the current file.

M00 P1000
Stops program execution for up to 1000 ms or until a continue signal is received. If no signal is received within 1000 ms, firmware triggers a timeout fault and aborts the current file.

M00
Stops program execution indefinitely until a continue signal is received.
M03 Turn ON the laser or plasma effector (activates main machine relay).

Main parameters:
  • • [I] – inline mode
  • Enables effector in synchronization with move planner execution (inline mode).
  • If omitted, the effector is turned on immediately after all previous motions are completed, without inline synchronization.

M03
Turns on the effector by activating the main relay immediately after previous motions are done.

M03 I
Turns on the effector in inline mode, synchronized with planner execution.
M04 Turn ON the laser or plasma effector (activates main machine relay).

Main parameters:
  • • [I] – inline mode
  • Enables effector in synchronization with move planner execution (inline mode).
  • If omitted, the effector is turned on immediately after all previous motions are completed, without inline synchronization.

M04
Turns on the effector by activating the main relay immediately after previous motions are done.

M04 I
Turns on the effector in inline mode, synchronized with planner execution.
M05 Turn OFF the laser or plasma effector (deactivates main machine relay).

Main parameters:
  • • [I] – inline mode
  • Effector is disabled in synchronization with move planner execution (inline mode).
  • If omitted, the effector is turned off immediately after all previous motions are completed, without inline synchronization.

M05
Turns off the effector by deactivating the main relay immediately after previous motions are completed.

M05 I
Turns off the effector in inline mode, synchronized with planner execution.
M62 P, S, D, I  Turns ON a digital output (DO1-DO6) with optional power, idle value and inline synchronization.

Main parameters:
  • • [P] – output number (1-6)
  • • [S] – output power in percent
  • Optional; default 100%. Mainly affects continuous/PWM outputs. For binary outputs, any non-zero value turns the output ON.

  • • [D] – idle value in percent
  • Optional. Sets the output idle value before applying the command. Mainly affects continuous/PWM outputs.

  • • [I] – inline mode
  • Synchronizes output activation with motion execution.
  • If omitted, firmware waits until all previous motions are completed, then turns the output on.

Note: Continuous/PWM outputs are DO5 and DO6.
M62 P3
Turns on digital output 3 after all previous motions are finished.

M62 P5 S75 I
Turns on continuous output 5 at 75% power, synchronized inline with motion planner execution.

M62 P6 D10
Sets the idle value of output 6 to 10%, then turns output 6 on at 100%.
M63 P, D, I  Sets a digital output (DO1-DO6) to its idle value with optional inline synchronization.

Main parameters:
  • • [P] – output number (1-6)
  • • [D] – idle value in percent
  • Optional. Sets the output idle value before applying the command. Mainly affects continuous/PWM outputs.

  • • [I] – inline mode
  • Synchronizes the output change with motion execution.
  • If omitted, firmware waits until all previous motions are completed, then sets the output to its idle value.
Note: For binary outputs this usually behaves as OFF. Continuous/PWM outputs are DO5 and DO6 and use their configured idle value.
M63 P3
Sets digital output 3 to its idle value after all previous motions are finished.

M63 P5 I
Sets digital output 5 to its idle value in inline mode, synchronized with motion planner execution.

M63 P5 D10
Sets the idle value of output 5 to 10%, then applies that idle value to the output.
M66 Status: Not available yet. Planned for firmware FW 1.3.

Wait on input – pauses program execution until the ARC OK / continue signal is received or the timeout expires.

Main parameters:
  • • [Q] – timeout in seconds
  • If Q is not specified, the timeout is 0 and firmware waits indefinitely for the input signal.
  • M66 replaces the legacy M00 S timeout usage for ARC OK waiting.
  • Legacy M00 S timeout usage is still supported temporarily for backward compatibility.

M66 Q3
Waits for ARC OK / continue signal for up to 3 seconds. If no signal is received within 3 seconds, firmware triggers a timeout fault and aborts the current file.

M66
Waits indefinitely until ARC OK / continue signal is received.
M205 J, S, R  Set advanced machine settings – allows configuring internal motion parameters without moving the machine.

Note: These settings are runtime settings. They are not stored permanently. After a power cycle or controller restart, default values are restored.
Main parameters:
  • • [J] – junction deviation in millimeters [mm]
  • Affects how sharply the machine can change direction at corners. Use caution when increasing this value.

  • • [S] – minimum steps per segment
  • Valid range: 1-15. Values below 1 are ignored. Values above 15 are clamped to 15.

  • • [R] – acceleration ramp type
  • 0 = trapezoidal ramp, 1 = S-curve Bezier ramp.
Note: Multiple parameters may be used in one command, for example M205 J0.05 S3 R1.
M205 J0.05
Sets the junction deviation to 0.05 mm.

M205 S3
Sets the minimum steps per segment to 3.

M205 R1
Sets the acceleration ramp type to S-curve Bezier.

M205 J0.05 S3 R1
Updates junction deviation, minimum steps per segment and acceleration ramp type in one command.
M410 Emergency stop – immediately aborts all planned and active motion.

The machine is stopped instantly, even in the middle of a move. Axis positions may become out of sync with the stepper position and should be re-homed before continuing.

Note: This command is typically injected by the control system and should be used only in emergency situations.
M410
Immediately stops all motion without deceleration (emergency stop).
M411 Controlled stop – aborts queued motions and performs a normal stop of the machine.

Motion is stopped in a controlled manner. Unlike M410, this command uses a normal stop procedure and is safer for mechanics.

Note: This command is typically injected by the control system.
M411
Stops the machine using a controlled (non-emergency) stop.
M666 Disable Torch Height Controller (THC). Turns off automatic torch height regulation.

Main parameters:
  • • [I] – inline mode
  • Disables THC in synchronization with motion planner execution.
  • If omitted, firmware waits until all previous motions are completed, then disables THC.
M666
Disables THC after the current motion queue is finished.

M666 I
Disables THC in inline mode, synchronized with motion execution.
M667 I, P, A  Enable Torch Height Controller (THC). Activates automatic torch height regulation during cutting operations.

Main parameters:
  • • [I] – inline mode
  • Enables THC in synchronization with motion planner execution.
  • If omitted, firmware waits until all previous motions are completed, then enables THC.

  • • [P] – target voltage for THC
  • Optional. P >= 0 sets manual target voltage. P-1 enables auto target voltage.
  • Changing target voltage in inline mode is not supported and will be ignored.

  • • [A] – antidive enable
  • A > 0 enables antidive. A <= 0 disables antidive.
  • Changing antidive in inline mode is not supported and will be ignored.
M667
Enables THC with current settings after previous motions are completed.

M667 P120
Enables THC and sets the manual target voltage to 120 V.

M667 P-1
Enables THC and enables auto target voltage mode.

M667 A1
Enables THC and enables antidive.

M667 I
Enables THC in inline mode without changing target voltage or antidive settings.