G-Code commands supported by Marlin
The G-Code commands supported by Marlin 3D printing firmware are:
| Implemented Codes | |
|---|---|
| G0 | Rapid Motion |
| G1 | Coordinated Movement X Y Z E |
| G2 | CW ARC |
| G3 | CCW ARC |
| G4 | Dwell S |
| G10 | Retract filament according to settings of M207 |
| G11 | Retract recover filament according to settings of M208 |
| G28 | Home all Axis |
| G90 | Use Absolute Coordinates |
| G91 | Use Relative Coordinates |
| G92 | Set current position to coordinates given |
| RepRap M Codes | |
|---|---|
| M0 | Unconditional stop. Wait for user to press a button on the LCD (Only if ULTRA_LCD is enabled) |
| M1 | Same as M0 |
| M104 | Set extruder target temp |
| M105 | Read current temp |
| M106 | Fan on |
| M107 | Fan off |
| M109 | Wait for extruder current temp to reach target temp. |
| M114 | Display current position |
| Custom M Codes | |
| M17 | Enable/Power all stepper motors |
| M18 | Disable all stepper motors; same as M84 |
| M20 | List SD card |
| M21 | Init SD card |
| M22 | Release SD card |
| M23 | Select SD file (M23 filename.g) |
| M24 | Start/resume SD print |
| M25 | Pause SD print |
| M26 | Set SD position in bytes (M26 S12345) |
| M27 | Report SD print status |
| M28 | Start SD write (M28 filename.g) |
| M29 | Stop SD write |
| M30 | Delete file from SD (M30 filename.g) |
| M31 | Output time since last M109 or SD card start to serial |
| M42 | Change pin status via gcode |
| M80 | Turn on Power Supply |
| M81 | Turn off Power Supply |
| M82 | Set E codes absolute (default) |
| M83 | Set E codes relative while in Absolute Coordinates (G90) mode |
| M84 | Disable steppers until next move, or use S |
| M85 | Set inactivity shutdown timer with parameter S |
| M92 | Set axis_steps_per_unit same syntax as G92 |
| M114 | Output current position to serial port |
| M115 | Capabilities string |
| M117 | Display message |
| M119 | Output endstop status to serial port |
| M140 | Set bed target temp |
| M190 | Wait for bed current temp to reach target temp. |
| M200 | Set filament diameter |
| M201 | Set max acceleration in units/s^2 for print moves (M201 X1000 Y1000) |
| M202 | Set max acceleration in units/s^2 for travel moves (M202 X1000 Y1000) Unused in Marlin!! |
| M203 | Set maximum feedrate that your machine can sustain (M203 X200 Y200 Z300 E10000) in mm/sec |
| M204 | Set default acceleration: S normal moves T filament only moves (M204 S3000 T7000) in mm/sec^2 also sets minimum segment time in ms (B20000) to prevent buffer underruns and M20 minimum feedrate |
| 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 homeing offset |
| M207 | Set retract length S[positive mm] F[feedrate mm/sec] Z[additional zlift/hop] |
| M208 | Set recover=unretract length S[positive mm surplus to the M207 S*] F[feedrate mm/sec] |
| 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. |
| M220 | S |
| M221 | S |
| M240 | Trigger a camera to take a photograph |
| M301 | Set PID parameters P I and D |
| M302 | Allow cold extrudes |
| M303 | PID relay autotune S |
| M400 | Finish all moves |
| M500 | Stores paramters in EEPROM |
| M501 | Reads parameters from EEPROM (if you need reset them after you changed them temporarily). |
| M502 | Reverts 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) |
| M999 | Restart after being stopped by error |