From 907e8e98e5d547ddcb67b8447c857394eac4b10f Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 10 Apr 2015 14:55:21 -0700 Subject: [PATCH 1/9] Add GCodes from Marlin 1.0.3 dev, format as pre --- Documentation/GCodes.md | 227 ++++++++++++++++++++++------------------ 1 file changed, 128 insertions(+), 99 deletions(-) diff --git a/Documentation/GCodes.md b/Documentation/GCodes.md index 57b95cdeea..94756f8d9b 100644 --- a/Documentation/GCodes.md +++ b/Documentation/GCodes.md @@ -2,105 +2,134 @@ ## G Codes -* G0 -> G1 -* G1 - Coordinated Movement X Y Z E -* G2 - CW ARC -* G3 - CCW 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 all Axis -* G29 - Detailed Z-Probe, probes the bed at 3 points. You must be at the home position for this to work correctly. -* G30 - Single Z Probe, probes bed at current XY location. -* G31 - Dock Z Probe sled (if enabled) -* G32 - Undock Z Probe sled (if enabled) -* G90 - Use Absolute Coordinates -* G91 - Use Relative Coordinates -* G92 - Set current position to cordinates given - +``` +G0 -> G1 +G1 - Coordinated Movement X Y Z E +G2 - CW ARC +G3 - CCW 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 all Axis +G29 - Detailed Z-Probe, probes the bed at 3 points. You must be at the home position for this to work correctly. +G30 - Single Z Probe, probes bed at current XY location. +G31 - Dock Z Probe sled (if enabled) +G32 - Undock Z Probe sled (if enabled) +G90 - Use Absolute Coordinates +G91 - Use Relative Coordinates +G92 - Set current position to cordinates given +``` ## 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 -* 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 -* M32 - Select file and start SD print (Can be used when printing from SD card) -* 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. -* 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[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 -* M112 - Emergency stop -* M114 - Output current position to serial port -* M115 - Capabilities string -* M117 - display message -* M119 - Output Endstop status to serial port -* M126 - Solenoid Air Valve Open (BariCUDA support 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) -* M129 - EtoP Closed (BariCUDA EtoP = electricity to air pressure transducer by jmil) -* 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 -* M200 - D[millimeters]- set filament diameter and set E axis units to cubic millimeters (use S0 to set back to millimeters). -* 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: 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 - S[factor in percent] - set speed factor override percentage -* M221 - S[factor in percent] - set extrude factor override percentage -* M240 - Trigger a camera to take a photograph -* M280 - Position an RC Servo P[index] S[angle/microseconds], ommit S to report back current angle -* M300 - Play beep sound S[frequency Hz] P[duration ms] -* M301 - Set PID parameters P I and D -* M302 - Allow cold extrudes -* M303 - PID relay autotune S[temperature] sets the target temperature. (default target temperature = 150C) -* M304 - Set bed PID parameters P I and D -* M350 - Set microstepping mode. -* M351 - Toggle MS1 MS2 pins directly. -* M400 - Finish all moves -* M401 - Lower 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 -* M405 - Turn on Filament Sensor extrusion control. Optional D[delay in cm] to set delay in centimeters between sensor and extruder -* M406 - Turn off Filament Sensor extrusion control -* M407 - Displays measured filament diameter -* 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) -* 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] -* M907 - Set digital trimpot motor current using axis codes. -* M908 - Control digital trimpot directly. -* M928 - Start SD logging (M928 filename.g) - ended by M29 -* M999 - Restart after being stopped by error +``` +M0 - Unconditional stop - Wait for user to press a button on the LCD (Only if ULTRA_LCD is enabled) +M1 - Same as M0 +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 +M32 - Select file and start SD print (Can be used _while_ printing from SD card files): + syntax "M32 /path/filename#", or "M32 S !filename#" + 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 +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 [n # 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 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 +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 B F. Exit autotemp by any M109 without F +M112 - Emergency stop +M114 - Output current position to serial port +M115 - Capabilities string +M117 - display message +M119 - Output Endstop status to serial port +M120 - Enable endstop detection +M121 - Disable endstop detection +M126 - Solenoid Air Valve Open (BariCUDA support 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) +M129 - EtoP Closed (BariCUDA EtoP = electricity to air pressure transducer by jmil) +M140 - Set bed target temp +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. +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 D- set filament diameter and set E axis units to cubic millimeters (use S0 to set back to millimeters). +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: 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/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 X Y +M220 S- set speed factor override percentage +M221 S- set extrude factor override percentage +M226 P S- Wait until the specified pin reaches the state required +M240 - Trigger a camera to take a photograph +M250 - Set LCD contrast C (value 0..63) +M280 - Set servo position absolute. P: servo index, S: angle or microseconds +M300 - Play beep sound S P +M301 - Set PID parameters P I and D +M302 - Allow cold extrudes, or set the minimum extrude S. +M303 - PID relay autotune S 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 +M400 - Finish all moves +M401 - Lower z-probe if present +M402 - Raise z-probe if present +M404 - N Enter the nominal filament width (3mm, 1.75mm ) or will display nominal filament width without parameters +M405 - Turn on Filament Sensor extrusion control. Optional D to set delay in centimeters between sensor and extruder +M406 - Turn off Filament Sensor extrusion control +M407 - Display measured filament diameter +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. +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] +M665 - Set delta configurations +M666 - Set delta endstop adjustment +M605 - Set dual x-carriage movement mode: S [ X R ] +M907 - Set digital trimpot motor current using axis codes. +M908 - Control digital trimpot directly. +M350 - Set microstepping mode. +M351 - Toggle MS1 MS2 pins directly. + +M928 - Start SD logging (M928 filename.g) - ended by M29 +M999 - Restart after being stopped by error +``` +## SCARA-specific M-Codes - May change to suit future G-code standards +``` +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) +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) +M364 - SCARA calibration: Move to cal-position PSIC (90 deg to Theta calibration position) +M365 - SCARA calibration: Scaling factor, X, Y, Z axis +``` # Comments @@ -122,4 +151,4 @@ If you need to use a literal `;` somewhere (for example within `M117`), you can M117 backslash: \\;and a comment -Please note that hosts should strip any comments before sending GCODE to the printer in order to save bandwidth. \ No newline at end of file +Please note that hosts should strip any comments before sending GCODE to the printer in order to save bandwidth. From 01654bdec1f37a36be00b44c149aca2862eca60b Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 10 Apr 2015 15:03:41 -0700 Subject: [PATCH 2/9] Cleanup formatting of some M codes --- Documentation/GCodes.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/Documentation/GCodes.md b/Documentation/GCodes.md index 94756f8d9b..f7813830db 100644 --- a/Documentation/GCodes.md +++ b/Documentation/GCodes.md @@ -73,7 +73,7 @@ M140 - Set bed target temp 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. 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 D- set filament diameter and set E axis units to cubic millimeters (use S0 to set back to millimeters). +M200 - set filament diameter and set E axis units to cubic millimeters (use S0 to set back to millimeters).: D- 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 @@ -84,9 +84,9 @@ M207 - Set retract length S[positive mm] F[feedrate mm/min] Z[additional zlift/h 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 X Y -M220 S- set speed factor override percentage -M221 S- set extrude factor override percentage -M226 P S- Wait until the specified pin reaches the state required +M220 - Set speed factor override percentage: S +M221 - Set extrude factor override percentage: S +M226 - Wait until the specified pin reaches the state required: P S M240 - Trigger a camera to take a photograph M250 - Set LCD contrast C (value 0..63) M280 - Set servo position absolute. P: servo index, S: angle or microseconds @@ -117,9 +117,6 @@ M907 - Set digital trimpot motor current using axis codes. M908 - Control digital trimpot directly. M350 - Set microstepping mode. M351 - Toggle MS1 MS2 pins directly. - -M928 - Start SD logging (M928 filename.g) - ended by M29 -M999 - Restart after being stopped by error ``` ## SCARA-specific M-Codes - May change to suit future G-code standards ``` From 3105ebc562040c8aecf8f510a455272bde97fc12 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 10 Apr 2015 15:05:00 -0700 Subject: [PATCH 3/9] Restore M928, M999 --- Documentation/GCodes.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/GCodes.md b/Documentation/GCodes.md index f7813830db..e7b21b7603 100644 --- a/Documentation/GCodes.md +++ b/Documentation/GCodes.md @@ -126,6 +126,8 @@ 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) M364 - SCARA calibration: Move to cal-position PSIC (90 deg to Theta calibration position) 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 From a3b13eb5ac1ab97c8504279fe94749a9c511614e Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 10 Apr 2015 15:54:36 -0700 Subject: [PATCH 4/9] Organize M Codes by Category - In GCodes.md --- Documentation/GCodes.md | 156 +++++++++++++++++++++++++--------------- 1 file changed, 100 insertions(+), 56 deletions(-) diff --git a/Documentation/GCodes.md b/Documentation/GCodes.md index e7b21b7603..81d7cc390d 100644 --- a/Documentation/GCodes.md +++ b/Documentation/GCodes.md @@ -8,10 +8,10 @@ G1 - Coordinated Movement X Y Z E G2 - CW ARC G3 - CCW 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 +G10 - Retract filament according to settings of M207 +G11 - Retract recover filament according to settings of M208 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. G31 - Dock Z Probe sled (if enabled) G32 - Undock Z Probe sled (if enabled) @@ -19,12 +19,16 @@ G90 - Use Absolute Coordinates G91 - Use Relative Coordinates 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 -M17 - Enable/Power all stepper motors -M18 - Disable all stepper motors; same as M84 +M400 - Finish all moves +M999 - Restart after being stopped by error +``` +### SD Card M Codes +``` M20 - List SD card M21 - Init 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 !filename#" 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 -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 [n # of points] [X position] [Y position] [V_erboseness #] [E_ngage Probe] [L # of legs of travel] +M540 - Enable/Disable "Stop SD Print on Endstop Hit" (req. ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED) + M540 S<0|1> +M928 - Start SD logging (M928 filename.g) - ended by M29 +``` +### Hardware Control +``` +M42 - Change pin status via gcode: P S. If P is omitted the onboard LED pin will be used. + M42 P9 S1 ; set PIN 9 to 1. 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 +M112 - Emergency stop. Requires hardware reset!! +M226 - Wait for a pin to be in some state: P S +``` +### Temperature M Codes +``` M104 - Set extruder target temp M105 - Read current temp 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 Rxxx Wait for extruder current temp to reach target temp. Waits when heating and cooling IF AUTOTEMP is enabled, S B F. Exit autotemp by any M109 without F -M112 - Emergency stop -M114 - Output current position to serial port -M115 - Capabilities string -M117 - display message -M119 - Output Endstop status to serial port -M120 - Enable endstop detection -M121 - Disable endstop detection -M126 - Solenoid Air Valve Open (BariCUDA support 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) -M129 - EtoP Closed (BariCUDA EtoP = electricity to air pressure transducer by jmil) M140 - Set bed target temp -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. 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- -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: 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/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 X Y -M220 - Set speed factor override percentage: S -M221 - Set extrude factor override percentage: S -M226 - Wait until the specified pin reaches the state required: P S -M240 - Trigger a camera to take a photograph -M250 - Set LCD contrast C (value 0..63) -M280 - Set servo position absolute. P: servo index, S: angle or microseconds -M300 - Play beep sound S P M301 - Set PID parameters P I and D M302 - Allow cold extrudes, or set the minimum extrude S. M303 - PID relay autotune S 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 +M115 - Capabilities string +M117 - Display message text on the LCD +M119 - Output Endstop status to serial port +``` +### Endstops M Codes +``` +M120 - Enable endstop detection +M121 - Disable endstop detection +``` +### Special Features M Codes +``` +M126 - Solenoid Air Valve Open (BariCUDA support 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) +M129 - EtoP Closed (BariCUDA EtoP = electricity to air pressure transducer by jmil) +M150 - Set BlinkM Color: R U B via I2C. Range: 0-255 +M240 - Trigger a camera to take a photograph. (Add to your per-layer GCode.) +M250 - Set LCD contrast: C<0-63> +M280 - Set servo position absolute. P S +M300 - Play beep sound S P M380 - Activate solenoid on active extruder M381 - Disable all solenoids -M400 - Finish all moves -M401 - Lower z-probe if present -M402 - Raise z-probe if present -M404 - N Enter the nominal filament width (3mm, 1.75mm ) or will display nominal filament width without parameters -M405 - Turn on Filament Sensor extrusion control. Optional D to set delay in centimeters between sensor and extruder +M600 - Pause for filament change X Y Z E L +``` +### 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 +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: 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 +M218 - Set hotend offset (in mm): T X Y +M220 - Set speed factor override percentage: S +M221 - Set extrude factor override percentage: S +``` +### Firmware Retraction M Codes +``` +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/s] +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 +``` +### Z Probe M Codes +``` +M48 - Measure Z_Probe repeatability: P X Y V E=engage L + As with G29, the E flag causes the probe to stow after each probe. +M401 - Lower Z-probe (if present) +M402 - Raise Z-probe (if present) +``` +### Filament Diameter M Codes +``` +M404 - Set (or display) Nominal Filament Diameter in mm: [N] (e.g., 3mm or 1.75mm) +M405 - Turn on Filament Sensor extrusion control: [D] to set distance (in cm) from sensor to extruder 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 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. -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] -M665 - Set delta configurations -M666 - Set delta endstop adjustment +``` +### Delta M Codes +``` +M665 - Set Delta configurations: L R S +M666 - Set Delta endstop adjustment: X Y Z M605 - Set dual x-carriage movement mode: S [ X R ] +``` +### 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. M908 - Control digital trimpot directly. M350 - Set microstepping mode. 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) 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) M364 - SCARA calibration: Move to cal-position PSIC (90 deg to Theta calibration position) 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: From 93eb63238f39085ffa74ea999f7c124cda3f483e Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 10 Apr 2015 15:57:54 -0700 Subject: [PATCH 5/9] Move G Codes into categories with M Codes --- Documentation/GCodes.md | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/Documentation/GCodes.md b/Documentation/GCodes.md index 81d7cc390d..fbf38ed682 100644 --- a/Documentation/GCodes.md +++ b/Documentation/GCodes.md @@ -1,26 +1,13 @@ # Implemented G Codes -## G Codes - +## Movement G and M Codes ``` G0 -> G1 G1 - Coordinated Movement X Y Z E G2 - CW ARC G3 - CCW 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 all Axis -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. -G31 - Dock Z Probe sled (if enabled) -G32 - Undock Z Probe sled (if enabled) -G90 - Use Absolute Coordinates -G91 - Use Relative Coordinates G92 - Set current position to cordinates given -``` -## Movement M Codes -``` 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 @@ -105,8 +92,10 @@ M380 - Activate solenoid on active extruder M381 - Disable all solenoids M600 - Pause for filament change X Y Z E L ``` -### Units and Measures M Codes +### Units and Measures G and M Codes ``` +G90 - Use Absolute Coordinates +G91 - Use Relative Coordinates 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 @@ -121,14 +110,21 @@ M218 - Set hotend offset (in mm): T X Y M221 - Set extrude factor override percentage: S ``` -### Firmware Retraction M Codes +### Firmware Retraction G and M Codes ``` +G10 - Retract filament according to settings of M207 +G11 - Retract recover filament according to settings of M208 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/s] 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 ``` -### Z Probe M Codes +### Z Probe G and M Codes ``` +G28 - Home all Axis +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. +G31 - Dock Z Probe sled (if enabled) +G32 - Undock Z Probe sled (if enabled) M48 - Measure Z_Probe repeatability: P X Y V E=engage L As with G29, the E flag causes the probe to stow after each probe. M401 - Lower Z-probe (if present) From fe912f44dce6118a31fda95d148380ae496d1bba Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 10 Apr 2015 15:58:32 -0700 Subject: [PATCH 6/9] Smaller headings --- Documentation/GCodes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/GCodes.md b/Documentation/GCodes.md index fbf38ed682..ed16648c9b 100644 --- a/Documentation/GCodes.md +++ b/Documentation/GCodes.md @@ -1,6 +1,6 @@ -# Implemented G Codes +## Implemented G Codes -## Movement G and M Codes +### Movement G and M Codes ``` G0 -> G1 G1 - Coordinated Movement X Y Z E From 652d59cd807b62082ca0a07bd52fdd88c93a2b4b Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 10 Apr 2015 15:59:55 -0700 Subject: [PATCH 7/9] Spacing of g-codes in GCodes.md --- Documentation/GCodes.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/Documentation/GCodes.md b/Documentation/GCodes.md index ed16648c9b..e2461d45d9 100644 --- a/Documentation/GCodes.md +++ b/Documentation/GCodes.md @@ -2,12 +2,12 @@ ### Movement G and M Codes ``` -G0 -> G1 -G1 - Coordinated Movement X Y Z E -G2 - CW ARC -G3 - CCW ARC -G4 - Dwell S[seconds] or P[milliseconds] -G92 - Set current position to cordinates given +G0 -> G1 +G1 - Coordinated Movement X Y Z E +G2 - CW ARC +G3 - CCW ARC +G4 - Dwell S[seconds] or P[milliseconds] +G92 - Set current position to cordinates given 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 @@ -94,8 +94,8 @@ M600 - Pause for filament change X Y Z E L ``` ### Firmware Retraction G and M Codes ``` -G10 - Retract filament according to settings of M207 -G11 - Retract recover filament according to settings of M208 +G10 - Retract filament according to settings of M207 +G11 - Retract recover filament according to settings of M208 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/s] 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 ``` ### Z Probe G and M Codes ``` -G28 - Home all Axis -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. -G31 - Dock Z Probe sled (if enabled) -G32 - Undock Z Probe sled (if enabled) +G28 - Home all Axis +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. +G31 - Dock Z Probe sled (if enabled) +G32 - Undock Z Probe sled (if enabled) M48 - Measure Z_Probe repeatability: P X Y V E=engage L As with G29, the E flag causes the probe to stow after each probe. M401 - Lower Z-probe (if present) From a327d876fe0a8a934ab045324a51d7aff6fb3bf2 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 10 Apr 2015 16:02:00 -0700 Subject: [PATCH 8/9] Document G92 arguments in GCodes.md --- Documentation/GCodes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/GCodes.md b/Documentation/GCodes.md index e2461d45d9..311e89f29a 100644 --- a/Documentation/GCodes.md +++ b/Documentation/GCodes.md @@ -7,8 +7,8 @@ G1 - Coordinated Movement X Y Z E G2 - CW ARC G3 - CCW ARC G4 - Dwell S[seconds] or P[milliseconds] -G92 - Set current position to cordinates given -M0 - Wait for user, with optional prompt message (to press the LCD button, requires ULTRA_LCD) +G92 - Set the "current position" to coordinates: X Y Z E +M0 - Wait for user, with optional prompt message (requires LCD controller) M0 Click When Ready ; show "Click When Ready" until the button is pressed. M1 - Same as M0 M400 - Finish all moves From 8f164f4c8318385d278fcf99cd09bb1f621c194c Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 10 Apr 2015 16:04:32 -0700 Subject: [PATCH 9/9] Clean up M85 in GCodes.md --- Documentation/GCodes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/GCodes.md b/Documentation/GCodes.md index 311e89f29a..c05be6198b 100644 --- a/Documentation/GCodes.md +++ b/Documentation/GCodes.md @@ -44,7 +44,7 @@ M80 - Turn on Power Supply M81 - Turn off Power Supply 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) +M85 - Set inactivity shutdown timer with parameter S. Disable with "M85" or "M85 S0". M112 - Emergency stop. Requires hardware reset!! M226 - Wait for a pin to be in some state: P S ```