-
Notifications
You must be signed in to change notification settings - Fork 0
DNE G Code in Marlin
DO NO EDIT -- TRANSFERRED TO NEW WIKI
##About G-Code
G-Code (or GCode) is the instruction code that tells a RepRap 3D printer what to do. For example, the G-Code G0 X10 tells the machine to move the current tool to X position 10. Marlin's GCode is loosely based on the language specification for the [http://www.nist.gov/customcf/get_pdf.cfm?pub_id=823374 NIST RS274NGC Interpreter], but departs radically in its specific implementation details. (For example, RepRap G-Code doesn't care about "modal groups.")
##G-Code in Marlin
###Movement
G0 -> G1
G1 - Coordinated Movement X Y Z E
G2 - Clockwise Arc
G3 - Counter-clockwise Arc
G4 - Dwell S or P
G92 - Set the "current position" for X Y Z E
M0 - Wait for user, with optional prompt message (requires LCD controller)
M1 -> M0
M400 - Finish all moves
M999 - Restart after an Emergency Stop
###SD Card
M20 - List SD card
M21 - Init SD card
M22 - Release SD card
M23 - Select an SD file by DOS path (M23 path/to/filename.g)
M24 - Start/resume SD print
M25 - Pause SD print
M26 - Set SD position in bytes
M27 - Report SD print status
M28 - Start SD write
M29 - Stop SD write
M30 - Delete file from SD
M31 - Print the time since SD print started, or since the most recent M109 command
M32 - Select file and start SD print. Can be used within G-Code files to include other files.
M540 - Set the state of the Abort on Endstop Hit flag.
M928 - Start SD logging. Stop logging with 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
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
M410 - Quickstop. Abort all planned moves, stopping the printer.
###Temperature
M104 - Set extruder target temperature
M105 - Request the current temperature of all heaters
M106 - Set the fan speed
M107 - Set the fan speed to 0 (thus turning it off)
M109 - Wait for an extruder to reach its target temperature. Optionally set the target temperature. Optionally enable AUTOTEMP.
M140 - Set heated bed target temperature
M145 - Set "heatup state" values for the LCD Menu
M190 - Wait for the heated bed to reach its target temperature. Optionally set the target temperature.
M301 - Set PID parameters P I and D
M302 - Allow cold extrudes, or set the minimum extrusion temperature
M303 - PID relay autotune S sets the target temperature. (default target temperature = 150C)
M304 - Set bed PID parameters P I and D
###Messages
M111 - Set debug flags
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
M120 - Enable endstop detection
M121 - Disable endstop detection
###Special Features
M126 - Solenoid Air Valve Open. (Requires BARICUDA)
M127 - Solenoid Air Valve Closed. (Requires BARICUDA)
M128 - EtoP Open. (Requires BARICUDA)
M129 - EtoP Closed. (Requires BARICUDA)
M150 - Set BlinkM RGB Color via I2C. (Requires BLINKM)
M240 - Trigger a camera to take a photograph. (Requires CHDK or PHOTOGRAPH_PIN)
M250 - Set LCD contrast
M280 - Set servo position (absolute)
M300 - Play a beep sound. (Requires BEEPER_PIN or LCD_USE_I2C_BUZZER)
M380 - Activate solenoid on active extruder. (Requires EXT_SOLENOID)
M381 - Disable all solenoids. (Requires EXT_SOLENOID)
M600 - Pause for filament change. (Requires FILAMENTCHANGEENABLE)
###Units and Measures
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
M200 - Set filament diameter and E axis units to mm^3
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<extruder_number> X<offset_on_X> Y<offset_on_Y>
M220 - Set speed factor override percentage: S
M221 - Set extrude factor override percentage: S
###Firmware Retraction
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
G28 - Home one or more axes. Note G28 clears the bed leveling compensation matrix so use G28 followed by G29
G29 - Probe the bed Z height at multiple points and enable bed leveling compensation (ABL)
G30 - Probe the bed Z height at the current XY position
G31 - Dock Z Probe sled
G32 - Undock Z Probe sled
M48 - Measure Z Probe repeatability. To test the accuracy of your z probe for bed leveling (returns standard deviation)
M401 - Lower auto bed leveling Z-probe with a servo, ensure you are safe above the bed to clear the probe
M402 - Raise Z-probe. Note: drives the servo
M420 - Enable or disable Mesh Bed Leveling
M421 - Set a single Mesh Bed Leveling Z coordinate: X Y Z
M851 - Custom M code in Marlin to set/fine tune the z probe offset. (i.e. probe offset = 6.90 mm: use M851 Z-6.90, and store with M500 in EEPROM (if enabled))
###Filament Diameter
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
###EEPROM Settings
M500 - Save current settings to EEPROM.
M501 - Load stored settings from EEPROM.
M502 - Revert to the default "factory settings." '''''Does not store them in EEPROM!'''''
M503 - Print current settings (from memory, not EEPROM).
###Delta
M665 - Set Delta configurations: L R S<segments/s>
M666 - Set Delta endstop adjustment: X Y Z
M605 - Set dual x-carriage movement mode: S [ X R ]
###Stepper Drivers
M17 - Enable/Power all stepper motors
M18 -> M84
M84 - Disable steppers until the next move, or set the inactivity timeout after which steppers should be disabled.
M907 - Set digital trimpot motor current using axis codes.
M908 - Control digital trimpot directly.
M350 - Set microstepping mode.
M351 - Toggle MS1 MS2 pins directly to set microstepping.
###SCARA
''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
###Host Printing M110 - Set the current Line Number
##G-Code Comments
Comments start at a ; (semicolon) and end with the end of the line:
N3 T0*57 ; This is a comment
N4 G92 E0*67
; So is this
N5 G28*22
(example taken from the RepRap wiki)
If you need to use a literal ; somewhere (for example within M117), you can escape semicolons with a \
(backslash):
M117 Hello \;)
The backslash \ can also be used to escape \ itself if you need a literal \ in front of a ;
M117 backslash: \\;and a comment
Please note that hosts should strip any comments before sending GCODE to the printer in order to save bandwidth.
Welcome to Marlin
Setting Up Marlin
Features
Configuring Marlin
Reference
GCode in Marlin
Join the Marlin Project
Contributing to Marlin
Coding Standards
Marlin or MarlinDev?
Marlin Branches
Marlin 1.2 Development
Compiling-MarlinDEV-master