@ -8,10 +8,10 @@ G1 - Coordinated Movement X Y Z E
G2 - CW ARC
G2 - CW ARC
G3 - CCW ARC
G3 - CCW ARC
G4 - Dwell S[seconds] or P[milliseconds]
G4 - Dwell S[seconds] or P[milliseconds]
G10 - r etract filament according to settings of M207
G10 - R etract filament according to settings of M207
G11 - r etract recover filament according to settings of M208
G11 - R etract recover filament according to settings of M208
G28 - Home all Axis
G28 - Home all Axis
G29 - Detailed Z-Probe, probes the bed at 3 points. You must be at the home position for this to work correctly .
G29 - Detailed Z-Probe, probes the bed at 3 or more points. The printer must be homed with G28 before G29 .
G30 - Single Z Probe, probes bed at current XY location.
G30 - Single Z Probe, probes bed at current XY location.
G31 - Dock Z Probe sled (if enabled)
G31 - Dock Z Probe sled (if enabled)
G32 - Undock Z Probe sled (if enabled)
G32 - Undock Z Probe sled (if enabled)
@ -19,12 +19,16 @@ G90 - Use Absolute Coordinates
G91 - Use Relative Coordinates
G91 - Use Relative Coordinates
G92 - Set current position to cordinates given
G92 - Set current position to cordinates given
```
```
## M Codes
## Movement M Codes
```
```
M0 - Unconditional stop - Wait for user to press a button on the LCD (Only if ULTRA_LCD is enabled)
M0 - Wait for user, with optional prompt message (to press the LCD button, requires ULTRA_LCD)
M0 Click When Ready ; show "Click When Ready" until the button is pressed.
M1 - Same as M0
M1 - Same as M0
M17 - Enable/Power all stepper motors
M400 - Finish all moves
M18 - Disable all stepper motors; same as M84
M999 - Restart after being stopped by error
```
### SD Card M Codes
```
M20 - List SD card
M20 - List SD card
M21 - Init SD card
M21 - Init SD card
M22 - Release SD card
M22 - Release SD card
@ -41,16 +45,24 @@ M32 - Select file and start SD print (Can be used _while_ printing from SD card
syntax "M32 /path/filename#", or "M32 S< startpos bytes > !filename#"
syntax "M32 /path/filename#", or "M32 S< startpos bytes > !filename#"
Call gcode file : "M32 P !filename#" and return to caller file after finishing (similar to #include ).
Call gcode file : "M32 P !filename#" and return to caller file after finishing (similar to #include ).
The '#' is necessary when calling from within sd files, as it stops buffer prereading
The '#' is necessary when calling from within sd files, as it stops buffer prereading
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.
M540 - Enable/Disable "Stop SD Print on Endstop Hit" (req. ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
M48 - Measure Z_Probe repeatability. M48 [n # of points] [X position] [Y position] [V_erboseness #] [E_ngage Probe] [L # of legs of travel]
M540 S< 0 | 1 >
M928 - Start SD logging (M928 filename.g) - ended by M29
```
### Hardware Control
```
M42 - Change pin status via gcode: P< pin > S< value > . If P is omitted the onboard LED pin will be used.
M42 P9 S1 ; set PIN 9 to 1.
M80 - Turn on Power Supply
M80 - Turn on Power Supply
M81 - Turn off 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,
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.
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)
M85 - Set inactivity shutdown timer with parameter S< seconds > . To disable set zero (default)
M92 - Set axis_steps_per_unit - same syntax as G92
M112 - Emergency stop. Requires hardware reset!!
M226 - Wait for a pin to be in some state: P< pin number > S< pin state >
```
### Temperature M Codes
```
M104 - Set extruder target temp
M104 - Set extruder target temp
M105 - Read current temp
M105 - Read current temp
M106 - Fan on
M106 - Fan on
@ -58,67 +70,101 @@ M107 - Fan off
M109 - Sxxx Wait for extruder current temp to reach target temp. Waits only when heating
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
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
IF AUTOTEMP is enabled, S< mintemp > B< maxtemp > F< factor > . Exit autotemp by any M109 without F
M112 - Emergency stop
M140 - Set bed target temp
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
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
```
### Message M Codes
```
M114 - Output current position to serial port
M114 - Output current position to serial port
M115 - Capabilities string
M115 - Capabilities string
M117 - display message
M117 - Display message text on the LCD
M119 - Output Endstop status to serial port
M119 - Output Endstop status to serial port
```
### Endstops M Codes
```
M120 - Enable endstop detection
M120 - Enable endstop detection
M121 - Disable endstop detection
M121 - Disable endstop detection
```
### Special Features M Codes
```
M126 - Solenoid Air Valve Open (BariCUDA support by jmil)
M126 - Solenoid Air Valve Open (BariCUDA support by jmil)
M127 - Solenoid Air Valve Closed (BariCUDA vent to atmospheric pressure by jmil)
M127 - Solenoid Air Valve Closed (BariCUDA vent to atmospheric pressure by jmil)
M128 - EtoP Open (BariCUDA EtoP = electricity to air pressure transducer by jmil)
M128 - EtoP Open (BariCUDA EtoP = electricity to air pressure transducer by jmil)
M129 - EtoP Closed (BariCUDA EtoP = electricity to air pressure transducer by jmil)
M129 - EtoP Closed (BariCUDA EtoP = electricity to air pressure transducer by jmil)
M140 - Set bed target temp
M150 - Set BlinkM Color: R< red > U< green > B< blue > via I2C. Range: 0-255
M150 - Set BlinkM Color Output R: Red< 0-255 > U(!): Green< 0-255 > B: Blue< 0-255 > over i2c, G for green does not work.
M240 - Trigger a camera to take a photograph. (Add to your per-layer GCode.)
M190 - Sxxx Wait for bed current temp to reach target temp. Waits only when heating
M250 - Set LCD contrast: C< 0-63 >
Rxxx Wait for bed current temp to reach target temp. Waits when heating and cooling
M280 - Set servo position absolute. P< servo index > S< angle or microseconds >
M200 - set filament diameter and set E axis units to cubic millimeters (use S0 to set back to millimeters).: D< millimeters > -
M300 - Play beep sound S< frequency Hz > P< duration ms >
M380 - Activate solenoid on active extruder
M381 - Disable all solenoids
M600 - Pause for filament change X< xpos > Y< ypos > Z< lift > E< initial retract > L< later retract for removal >
```
### Units and Measures M Codes
```
M82 - Set E codes absolute (default)
M83 - Set E codes relative while in Absolute Coordinates (G90) mode
M92 - Set axis_steps_per_unit - same syntax as G92
M200 - Set filament diameter and set E axis units to mm^3 (use S0 to set back to mm).: D< mm >
M201 - Set max acceleration in units/s^2 for print moves (M201 X1000 Y1000)
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!!
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
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
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
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
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/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.
M218 - Set hotend offset (in mm): T< extruder_number > X< offset_on_X > Y< offset_on_Y >
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 >
M220 - Set speed factor override percentage: S< factor in percent >
M221 - Set extrude 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 >
```
M240 - Trigger a camera to take a photograph
### Firmware Retraction M Codes
M250 - Set LCD contrast C< contrast value > (value 0..63)
```
M280 - Set servo position absolute. P: servo index, S: angle or microseconds
M207 - Set retract length S[positive mm] F[feedrate mm/min] Z[additional zlift/hop], stays in mm regardless of M200 setting
M300 - Play beep sound S< frequency Hz > P< duration ms >
M208 - Set recover=unretract length S[positive mm surplus to the M207 S*] F[feedrate mm/s]
M301 - Set PID parameters P I and D
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
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)
### Z Probe M Codes
M304 - Set bed PID parameters P I and D
```
M380 - Activate solenoid on active extruder
M48 - Measure Z_Probe repeatability: P< points > X< xpos > Y< ypos > V< verbosity > E=engage L< legs of travel >
M381 - Disable all solenoids
As with G29, the E flag causes the probe to stow after each probe.
M400 - Finish all moves
M401 - Lower Z-probe (if present)
M401 - Lower z-probe if present
M402 - Raise Z-probe (if present)
M402 - Raise z-probe if present
```
M404 - N< dia in mm > Enter the nominal filament width (3mm, 1.75mm ) or will display nominal filament width without parameters
### Filament Diameter M Codes
M405 - Turn on Filament Sensor extrusion control. Optional D< delay in cm > to set delay in centimeters between sensor and extruder
```
M404 - Set (or display) Nominal Filament Diameter in mm: [N< diameter > ] (e.g., 3mm or 1.75mm)
M405 - Turn on Filament Sensor extrusion control: [D< distance > ] to set distance (in cm) from sensor to extruder
M406 - Turn off Filament Sensor extrusion control
M406 - Turn off Filament Sensor extrusion control
M407 - Display measured filament diameter
M407 - Display measured Filament Diameter
```
### EEPROM Settings M Codes
```
M500 - Store parameters in EEPROM
M500 - Store parameters in EEPROM
M501 - Read parameters from EEPROM (if you need reset them after you changed them temporarily).
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.
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.
M503 - Print the current settings (from memory not from EEPROM). Use S0 to leave off headings.
M540 - Use S[0|1] to enable or disable the stop SD card print on endstop hit (requires ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
```
M600 - Pause for filament change X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal]
### Delta M Codes
M665 - Set delta configurations
```
M666 - Set delta endstop adjustment
M665 - Set Delta configurations: L< diagonal rod > R< delta radius > S< segments / s >
M666 - Set Delta endstop adjustment: X< x-adjustment > Y< y-adjustment > Z< z-adjustment >
M605 - Set dual x-carriage movement mode: S< mode > [ X< duplication x-offset > R< duplication temp offset > ]
M605 - Set dual x-carriage movement mode: S< mode > [ X< duplication x-offset > R< duplication temp offset > ]
```
### Stepper Driver M Codes
```
M17 - Enable/Power all stepper motors
M18 - Disable all stepper motors. (same as M84)
M907 - Set digital trimpot motor current using axis codes.
M907 - Set digital trimpot motor current using axis codes.
M908 - Control digital trimpot directly.
M908 - Control digital trimpot directly.
M350 - Set microstepping mode.
M350 - Set microstepping mode.
M351 - Toggle MS1 MS2 pins directly.
M351 - Toggle MS1 MS2 pins directly.
```
```
## SCARA-specific M-Codes - May change to suit future G-code standards
### SCARA M-Codes
__May change to suit future G-code standards__
```
```
M360 - SCARA calibration: Move to cal-position ThetaA (0 deg calibration)
M360 - SCARA calibration: Move to cal-position ThetaA (0 deg calibration)
M361 - SCARA calibration: Move to cal-position ThetaB (90 deg calibration - steps per degree)
M361 - SCARA calibration: Move to cal-position ThetaB (90 deg calibration - steps per degree)
@ -126,11 +172,9 @@ M362 - SCARA calibration: Move to cal-position PsiA (0 deg calibration)
M363 - SCARA calibration: Move to cal-position PsiB (90 deg calibration - steps per degree)
M363 - SCARA calibration: Move to cal-position PsiB (90 deg calibration - steps per degree)
M364 - SCARA calibration: Move to cal-position PSIC (90 deg to Theta calibration position)
M364 - SCARA calibration: Move to cal-position PSIC (90 deg to Theta calibration position)
M365 - SCARA calibration: Scaling factor, X, Y, Z axis
M365 - SCARA calibration: Scaling factor, X, Y, Z axis
M928 - Start SD logging (M928 filename.g) - ended by M29
M999 - Restart after being stopped by error
```
```
# Comments
# # Comments
Comments start at a `;` (semicolon) and end with the end of the line:
Comments start at a `;` (semicolon) and end with the end of the line: