Developer's Kit
Visual start guideDashboard

GCode Reference Sheet

The following is the GCode cheatsheet you can use behind the scenes with the Voxel8 Control Interface (i.e. "OctoPrint").


G0 → G1

G1 - Coordinated Movement X Y Z E

G2 - Clockwise arc

G3 - Counter-clockwise arc

G4 - Dwell S<seconds> or P<milliseconds>

G10 - retract filament according to settings of M207

G11 - retract recover filament according to settings of M208

G28 - Home one or more axes

G29 - Detailed Z probe, probes the bed at 3 or more points. Will fail if you haven't homed yet.

G30 - Single Z probe, probes bed at current XY location.

G90 - Use Absolute Coordinates

G91 - Use Relative Coordinates

G92 - Set current position to coordinates given


M0 - Unconditional stop

M1 - Same as M0

M17 - Enable/Power all stepper motors

M18 - Disable all stepper motors; same as M84

M42 - Change pin status via gcode Use M42 Px Sy to set pin x to value y, when omitting Px the onboard led will be used.

M48 - Measure Z_Probe repeatability. M48 [P # of points] [X position] [Y position] [V_erboseness #] [E_ngage Probe] [L # of legs of travel]

M80 - Turn on Power Supply

M81 - Turn off Power Supply

M82 - Set E codes to absolute (default)

M83 - Set E codes to relative while in Absolute Coordinates (G90) mode

M84 - Disable steppers until next move,

or use S<seconds> to specify an inactivity timeout, after which the steppers will be disabled. S0 to disable the timeout.

M85 - Set inactivity shutdown timer with parameter S<seconds>. To disable set zero (default)

M92 - Set axis_steps_per_unit - same syntax as G92

M104 - Set extruder target temp

M105 - Read current temp

M106 - Fan on

M107 - Fan off

M109 Sxxx - Wait for extruder current temp to reach target temp. Waits only when heating

Rxxx Wait for extruder current temp to reach target temp. Waits when heating and cooling

IF AUTOTEMP is enabled, S<mintemp> B<maxtemp> F<factor>. Exit autotemp by any M109 without F

M110 - Set the current line number

M111 - Set debug flags with S<mask>. See flag bits defined in Marlin.h.

M112 - Emergency stop

M114 - Output current position to serial port

M115 - Display firmware version and capabilities string

M117 - Display a message on the controller screen

M119 - Output Endstop status to serial port

M120 - Enable endstop detection

M121 - Disable endstop detection

M125 - Set pneumatics target pressure (tank pressure)

M140 - Set bed target temp

M145 Set the heatup state H<hotend> B<bed> F<fan speed> for S<material> (0=PLA, 1=ABS)

M190 - Sxxx Wait for bed current temp to reach target temp. Waits only when heating

Rxxx Wait for bed current temp to reach target temp. Waits when heating and cooling

M200 - set filament diameter and set E axis units to cubic millimeters (use S0 to set back to millimeters).:D<millimeters>

M201 - Set max acceleration in units/s^2 for print moves (M201 X1000 Y1000)

M203 - Set maximum feedrate that your machine can sustain (M203 X200 Y200 Z300 E10000) in mm/sec

M204 - Set default acceleration: P for Printing moves, R for Retract only (no X, Y, Z) moves and T for Travel (non printing) moves (ex. M204 P800 T3000 R9000) in mm/sec^2

M205 - advanced settings: minimum travel speed S=while printing T=travel only, B=minimum segment time X= maximum xy jerk, Z=maximum Z jerk, E=maximum E jerk

M206 - Set additional homing offset

M207 - Set retract length S[positive mm] F[feedrate mm/min] Z[additional zlift/hop], stays in mm regardless of M200 setting

M208 - Set recover=unretract length S[positive mm surplus to the M207 S*] F[feedrate mm/min]

M209 S<1=true/0=false> - enable automatic retract detect if the slicer did not support G10/11: every normal extrude-only move will be classified as retract depending on the direction.

M218 - Set hotend offset (in mm): T<extruder_number> X<offset_on_X> Y<offset_on_Y>

M220 - Set speed factor override percentage: S<factor in percent>

M221 - Set extrude factor override percentage: S<factor in percent>

M226 - Wait until the specified pin reaches the state required: P<pin number> S<pin state>

M234 - Output raw external ADC value (or averaged value over S samples if an S parameter is given)

M235 - Output distance sensor data (or averaged value over S samples if an S parameter is given)

M236 - Set output target pressure by writing to DAC

M237 - Custom, more precise auto bed leveling

M238 - Return ADC value from laser sensor (get distance)

M239 - Homing and bed leveling combination

M240 - Trigger a camera to take a photograph

M241 - Dwell for a given amount of time in milliseconds (500 by default)

M280 - Set servo position absolute. P: servo index, S: angle or microseconds

M300 - Play beep sound S<frequency Hz> P<duration ms>

M301 - Set PID parameters P I and D

M302 Allow cold extrudes, or set the minimum extrude S<temperature>.

M303 PID relay autotune S<temperature> - sets the target temperature. (default target temperature = 150C)

M304 - Set bed PID parameters P I and D

M380 - Activate solenoid on active extruder

M381 - Disable all solenoids

M399 - Pause command

M400 - Finish all moves

M401 - Lower Z probe if present

M402 - Raise Z probe if present

M410 - Quickstop. Abort all the planned moves

M420 - Enable/Disable Mesh Leveling (with current values) S1=enable S0=disable

M421 - Set a single Z coordinate in the Mesh Leveling grid. X<mm> Y<mm> Z<mm>

M428 - Set the home_offset logically based on the current_position

M500 - Store parameters in EEPROM

M501 - Read parameters from EEPROM (if you need reset them after you changed them temporarily).

M502 - Revert to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.

M503 - Print the current settings (from memory not from EEPROM). Use S0 to leave off headings.

M600 - Pause for filament change X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal]

M665 - Set delta configurations: L<diagonal rod> R<delta radius> S<segments/s>

M666 - Set delta endstop adjustment

M605 - Set dual x-carriage movement mode: S<mode> [ X<duplication x-offset> R<duplication temp offset> ]

M907 - Set digital trimpot motor current using axis codes.

M908 - Control digital trimpot directly.

M350 - Set microstepping mode.

M351 - Toggle MS1 MS2 pins directly.

************ Custom codes - This can change to suit future G-code regulations

M100 - Watch Free Memory (For Debugging Only)

M852 - Automatically adjust the Z probe's Z offset so that the current position is set to 0.

M999 - Restart after being stopped by error



T0-T3 - Select a tool by index (usually an extruder) [ F<mm/min> ]

Have more questions? Submit a request