| 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 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. To disable set zero (default) |
| 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 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– set speed factor override percentage |
| M221 | S– set extrude factor override percentage |
| 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 sets the target temperature. (default target temperature = 150C) |
| 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 |