Gcode
Unified Gcode reference for all shop robots.
— Supported fully
— Partially supported, or has issues
— Software support present, hardware not equipped.
— Not supported
| Gcode | Description | Makerbot (FiveD) | Mendel (Sprinter) | Big Robot (Mach3) | Blue Mill | PCB mill |
|---|---|---|---|---|---|---|
| G0 X# Y# Z# | Move to specified coordinate at machine maximum feedrate | ![]() |
![]() |
![]() |
![]() |
? |
| G1 F# X# Y# Z# E# | Move to specified coordinate at feedrate (F#) If F not specified, uses most recently specified feedrate If F greater than G0 feedrate, uses G0 feedrate E# is extruder feed, which is an axis on RepRap-based printers |
![]() |
![]() |
![]() |
![]() |
![]() |
| G2 I# J# | Clockwise arc with center at (I, J) | ![]() |
![]() |
![]() |
![]() |
? |
| G3 I# J# | Counterclockwise arc with center at (I, J) | ![]() |
![]() |
![]() |
![]() |
? |
| G4 P# | Delay P seconds | ![]() |
![]() |
![]() |
![]() |
? |
| G10 L1 P# X# Y# Z# | Set tool offset for tool (P#) to position (X#, Y#, Z#) | ![]() |
![]() |
![]() |
![]() |
? |
| G10 L2 P# X# Y# Z# | Set tool offset for fixture (P#) to position (X#, Y#, Z#) | ![]() |
![]() |
![]() |
![]() |
? |
| G15 | Enter polar coordinate mode, origin = current point | ![]() |
![]() |
![]() |
![]() |
? |
| G16 | Exit polar coordinate mode | ![]() |
![]() |
![]() |
![]() |
? |
| G17 | Select X-Y plane for G2 and G3 | ![]() |
![]() |
![]() |
![]() |
? |
| G18 | Select X-Z plane for G2 and G3 | ![]() |
![]() |
![]() |
![]() |
? |
| G19 | Select Y-Z plane for G2 and G3 | ![]() |
![]() |
![]() |
![]() |
? |
| G20 | Set units to inches Does not move machine |
![]() |
![]() |
![]() |
![]() |
? |
| G21 | Set units to millimetres Does not move machine |
![]() |
![]() |
![]() |
![]() |
? |
| G28 | Go to home position at max speed | ![]() |
![]() |
![]() |
![]() |
? |
| G28.1 | Find home using endstops | ![]() |
![]() |
![]() |
![]() |
? |
| G30 X# Y# Z# | Go to home position at max speed via intermediate position | ![]() |
![]() |
![]() |
![]() |
? |
| G50 | Reset axis scale factors | ![]() |
![]() |
![]() |
![]() |
? |
| G51 X# Y# Z# | Set axis scale multipliers | ![]() |
![]() |
![]() |
![]() |
? |
| G81 X# Y# Z# | Drill hole: Go to position (X#, Y#) at G0 speed Then move straight down from the current Z location down to (Z#) at G0 speed (which seems wrong) Then move back up to the starting height at G0 speed |
![]() |
![]() |
![]() |
![]() |
? |
| G90 | Set machine to absolute positioning mode Does not move machine |
![]() |
![]() |
![]() |
![]() |
? |
| G91 | Set machine to incremental (relative) positioning mode Does not move machine |
![]() |
![]() |
![]() |
![]() |
? |
| G92 | Set the current position as home location Does not move machine |
![]() |
![]() |
![]() |
![]() |
? |
| G93 | Enable inverse time feed mode In this mode, F# values mean “complete the move in 1/(F#) minutes” |
![]() |
![]() |
![]() |
![]() |
? |
| G94 | Enable units-per-minute feed mode This mode is the opposite of G93, so F# values mean “complete the move at a feedrate of (F#) units per minute” |
? | ? | ![]() |
![]() |
? |
| M0 | Stop machine | ![]() |
![]() |
![]() |
![]() |
? |
| M3 | Turn toolhead motor on (clockwise) | ![]() |
![]() |
![]() |
![]() |
? |
| M4 | Turn toolhead motor on (counterclockwise) | ![]() |
![]() |
![]() |
![]() |
? |
| M5 | Turn toolhead motor off | ![]() |
![]() |
![]() |
![]() |
? |
| M20 | List SD card contents | ![]() |
![]() |
![]() |
![]() |
![]() |
| M21 | Mount SD card | ![]() |
![]() |
![]() |
![]() |
![]() |
| M22 | Unmount SD card | ![]() |
![]() |
![]() |
![]() |
![]() |
| M23 filename.gco | Select SD card file (8.3 name) | ![]() |
![]() |
![]() |
![]() |
![]() |
| M24 | Start / resume SD card print | ![]() |
![]() |
![]() |
![]() |
![]() |
| M25 | Pause SD card print | ![]() |
![]() |
![]() |
![]() |
![]() |
| M26 S# | Set SD position to (S#) bytes in file | ![]() |
![]() |
![]() |
![]() |
![]() |
| M27 | Report SD card print status | ![]() |
![]() |
![]() |
![]() |
![]() |
| M28 filename.gco | Begin write to SD card File is created or overwritten, subsequent commands sent write to the file |
![]() |
![]() |
![]() |
![]() |
![]() |
| M29 filename.gco | End writing, close file | ![]() |
![]() |
![]() |
![]() |
![]() |
| M82 | ??? | ![]() |
![]() |
![]() |
![]() |
? |
| M84 | Stop idle hold (turn off motor drivers) | ![]() |
![]() |
![]() |
![]() |
![]() |
| M92 X# Y# Z# | Set steps-per-unit for the specified axis | ![]() |
![]() |
![]() |
![]() |
![]() |
| M100 X# Y# Z# | Set drive current for X, Y, Z motors, in amperes | ![]() |
![]() |
? | ![]() |
? |
| M101 X# Y# Z# | Set steps-per-inch for each axis | ![]() |
![]() |
? | ![]() |
? |
| M102 X# Y# Z# | Set maximum feedrate for each axis | ![]() |
![]() |
? | ![]() |
? |
| M103 S# | Set microstepping for all axes (S = {1, 2, 4, 16}) | ![]() |
![]() |
? | ![]() |
? |
| M104 X# Y# Z# | Set normal (0) or reverse (1) direction for each axis | ![]() |
![]() |
? | ![]() |
? |
| M104 S# | Set extruder temperature to (S#) Does not wait for extruder to heat before continuing |
![]() |
![]() |
![]() |
![]() |
![]() |
| M105 | Request current extruder temperature | ![]() |
![]() |
![]() |
![]() |
![]() |
| M105 S# | Set PWM S#/255 for spindle motor (S = [0, 255]) | ![]() |
![]() |
? | ![]() |
? |
| M106 S# | Turn fan on with PWM value (S#)/255 | ![]() |
![]() |
![]() |
![]() |
![]() |
| M107 | Turn fan off | ![]() |
![]() |
![]() |
![]() |
![]() |
| M108 S# | Set extruder speed to PWM value (S#)/255 | ![]() |
![]() |
![]() |
![]() |
![]() |
| M108 R# | Set extruder speed to RPM value (R#) | ![]() |
![]() |
![]() |
![]() |
![]() |
| M109 S# | Set extruder temperature to (S#) Waits for extruder to heat to the specified temperature before continuing to the next command |
![]() |
![]() |
![]() |
![]() |
![]() |
| N# M110 | Set current line number to (N#) | ![]() |
![]() |
![]() |
![]() |
![]() |
| M111 S# | Set debug verbosity to (S#) | ![]() |
![]() |
![]() |
![]() |
![]() |
| M112 | Software scram | ![]() |
![]() |
![]() |
![]() |
![]() |
| M113 S# | Set extruder PWM to value (S#) (S = [0.0, 1.0]) | ![]() |
![]() |
![]() |
![]() |
![]() |
| M114 | Report current position | ![]() |
![]() |
![]() |
![]() |
![]() |
| M115 | Get firmware version | ![]() |
![]() |
![]() |
![]() |
![]() |
| M116 | Wait for all temperatures to stabilize | ![]() |
![]() |
![]() |
![]() |
![]() |
| M117 | Get last zero position | ![]() |
![]() |
![]() |
![]() |
![]() |
| M118 P# | Negotiate features (for future use) | ![]() |
![]() |
![]() |
![]() |
![]() |
| M119 | Get endstop status | ![]() |
![]() |
![]() |
![]() |
![]() |
| M126 | Open extruder valve (if equipped) | ![]() |
![]() |
![]() |
![]() |
![]() |
| M127 | Close extruder valve (if equipped) | ![]() |
![]() |
![]() |
![]() |
![]() |
| M140 | Set bed temperature Does not wait for bed to heat before continuing |
![]() |
![]() |
![]() |
![]() |
![]() |
| M141 | Set chamber temperature Does not wait for chamber to heat before continuing |
![]() |
![]() |
![]() |
![]() |
![]() |
| M142 S# | Set holding pressure to (S#) bar | ![]() |
![]() |
![]() |
![]() |
![]() |
| M143 S# | Set maximum safe hot-end temperature to (S#) Robot should scram if this temperature is ever exceeded |
![]() |
![]() |
![]() |
![]() |
![]() |
| M200 | Save configuration to non-volatile memory | ![]() |
![]() |
![]() |
![]() |
? |
| M201 | Output configuration to the console | ![]() |
![]() |
![]() |
![]() |
? |
page revision: 26, last edited: 20 Nov 2011 08:36





