Skip to main content
WARNING! From February 2022, these pages are no longer maintained.
Please see the current Duet3D documentation at

Site Navigation

Your Account

Choose Language

Revision to G-Codes not implemented


+[title|G-Codes not implemented]
+[summary]This page lists G-Codes that may be found in other firmwares/CNC control software which are not implemented in RepRapFirmware.[/summary]
+For the detail on implemented G-Codes see the [[Gcode]] page. Some will be implemented in future firmware releases (see this forum for more details []). Other features are covered by existing RepRapFirmware G-Codes, are obsolete, or deprecated.
+=== G-Codes not yet implemented but may be in the future ===
+When these are implemented depends very much on the demand.
+* G17..19: Plane Selection (CNC specific)
+* G40: Compensation Off (CNC specific)
+* [|G54..59: Coordinate System Select (CNC specific)]
+* G80: Cancel Canned Cycle (CNC specific)
+* M6: Tool change (although tool change macros and entering Tn commands allow for greater functionality)
+* M7: Mist Coolant On (CNC specific) (pumps or other motors can be controlled using appropriate circuity on a fan pin, see M106 or an unused IO pin, see M42)
+* M8: Flood Coolant On (CNC specific) (but see comments above on M7)
+* M9: Coolant Off (CNC specific) (but see comments above on M7)
+* M10: Vacuum On (CNC specific) (but see comments above on M7)
+* M11: Vacuum Off (CNC specific) (but see comments above on M7)
+* M33: Stop and Close File and save restart.gcode (possibly not using this specific G-Code)
+* M85: Set inactivity shut down timer (No demand)
+* M123: Tachometer value
+* M142: Holding Pressure (for vacuum tables)
+* M407: Display filament diameter (currently does the same as M404, possibly change to display measured diameter in future)
+* M590: Report current tool type and index (an alternative to the 450-453 options?)
+* M668: Set Z-offset compensations polynomial (currently only implemented in [] dc42-cmm) fork.
+* M910: Set decay mode (no requirement identified yet)
+=== G-Codes not implemented which are not planned for implementation ===
+These are unlikely to be implemented due to functionality existing in other RepRapFirmware G-codes or there being no perceived demand (if that is wrong then post in the firmware wishlist on the forum)
+* G6: Direct Stepper Move (Use G1 S1 instead)
+* G33: Measure/List/Adjust Distortion Matrix (Use G29 or G32 instead)
+* G93: Feed Rate Mode (Inverse Time Mode) (No demand)
+* G94: Feed Rate Mode (Units per Minute) (No demand)
+* G100: Calibrate floor or rod radius (No demand)
+* G130: Set digital potentiometer value (Use M906)
+* G131: Remove offset
+* G132: Calibrate [[Glossary_of_Terms#Endstop|endstop]] offsets
+* G133: Measure steps to top
+* G161: Home axes to minimum (use G28, if that homes to max then consider a macro to move to 0,0,0 after homing)
+* G162: Home axes to maximum (use G28, if that homes to min then consider a macro to move to max,max,max after homing)
+* M2: Program End (Not required)
+* M17: Enable/Power all stepper motors (Not required)
+* M31: Output time since last M109 or SD card start to serial (No demand)
+* M33: Get the long name for an SD card file or folder (Not required, other SD card M commands already support long file names)
+* M34: Set SD file sorting options (Not Required as the UI, e.g. DWC or PanelDue is better suited to handling how file lists are displayed)
+* M40: Eject (No requirement, define a macro to eject parts)
+* M41: Loop (No requirement)
+* M43: Stand by on material exhausted (use M581)
+* M43: Pin report and debug (much of this functionality is available within M42, M581,M582, M583)
+* M48: Measure Z-Probe repeatability (use a macro)
+* M93: Send axis_steps_per_unit (use M92)
+* M101: Turn extruder 1 on (Forward), Undo Retraction (use standard G1 commands, or G10 for firmware retraction)
+* M102: Turn extruder 1 on (Reverse) (use standard G1 commands, or G10 for firmware retraction)
+* M103: Turn all extruders off, Extruder Retraction (use standard G1 commands, or G10 for firmware retraction + M18/M84 to turn of specific motors)
+* M113: Set Extruder PWM (No requirement)
+* M124: Immediate motor stop (No demand yet)
+* M126: Open Valve (Can use a servo on any PWM pin and M280)
+* M127: Close Valve (Can use a servo on any PWM pin and M280)
+* M128: Extruder Pressure PWM (use M42)
+* M129: Extruder pressure off (use M42)
+* M130: Set PID P value (use M301)
+* M131: Set PID I value (use M301)
+* M132: Set PID D value (use M301)
+* M133: Set PID I limit value (use M301)
+* M134: Write PID values to EEPROM (use M500)
+* M136: Print PID settings to host (use M301)
+* M146: Set Chamber Humidity (No demand)
+* M149: Set temperature units (No demand, just use C)
+* M150: Set display color (No demand/also should be configured on the display not by printer firmware)
+* M155: Automatically send temperatures (hosts should use polling)
+* M160: Number of mixed materials (no use M567)
+* M163: Set weight of mixed material (no use M567 to define the ratios based on extrusion percentage not weight)
+* M164: Store weights (Not required w/o M163)
+* M165: Set multiple mix weights (use M567)
+* M200: Set filament diameter (see M404)
+* M202: Set max travel acceleration
+* M204: Set default acceleration (use M201)
+* M205: Advanced settings (use M566)
+* M207: Calibrate z axis by detecting z max length (no demand)
+* M208: Set unretract length (Clashes with M208 Set axis max travel and can be achieved using M207)
+* M209: Enable automatic retract (no demand)
+* M210: Set homing feedrates (homing feedrates are specified in the home....g macros)
+* M211: Disable/Enable software [[Glossary_of_Terms#Endstop|endstop]]s (use M564)
+* M212: Set Bed Level Sensor Offset (use G31)
+* M218: Set Hotend Offset (use G10)
+* M226: Wait for pin state (use M577)
+* M227: Enable Automatic Reverse and Prime (anti ooze strategy is better managed by the slicer)
+* M228: Disable Automatic Reverse and Prime (anti ooze strategy is better managed by the slicer)
+* M229: Enable Automatic Reverse and Prime (anti ooze strategy is better managed by the slicer)
+* M240: Trigger camera (use M42 to trigger a pin connected to a camera)
+* M240: Start conveyor belt motor / Echo off (use a macro to control a conveyor axis/for echo debug use M111)
+* M241: Stop conveyor belt motor / echo on (use a macro to control a conveyor axis/for echo debug use M111)
+* M245: Start cooler (use normal fan control M106 etc)
+* M246: Stop cooler (use normal fan control M106 etc)
+* M250: Set LCD contrast (better set using the LCD if its a smart LCD)
+* M251: Measure Z steps from homing stop (Delta printers) (No demand)
+* M260: i2c Send Data(No demand)
+* M261: i2c Request Data (No demand)
+* M306: Set home offset calculated from toolhead position (No demand)
+* M320: Activate autolevel (use bed probing, levelling Gcodes G29-G32)
+* M321: Deactivate autolevel
+* M322: Reset autolevel matrix
+* M323: Distortion correction on/off
+* M340: Control the servos (use M280)
+* M355: Turn case lights on/off (use M42)
+* M360: Report firmware configuration (look at config.g)
+* M360-M364: SCARA calibration codes (not required, use G1 S2 moves commands instead)
+* M365 SCARA scaling factor (use M579)
+* M371: Move to next calibration position
+* M372: Record calibration value, and move to next position
+* M373: End bed level calibration mode
+* M380: Activate solenoid (use M42)
+* M381: Disable all solenoids (use M42)
+* M405: Filament Sensor on (This and M406 are a subset of the functionality of [[Gcode#Section_M591_Configure_filament_sensing|M591]])
+* M406: Filament Sensor off
+* M420: Set RGB Colors as PWM (use M42)
+* M420/M421: Enable/Disable Mesh Leveling (use bed probing, levelling Gcodes G29-G32)
+* M460: Define temperature range for thermistor controlled fan (use M106 to set a fan in thermostatic mode)
+* M530: Enable printing mode (not required)
+* M531: Set print name (not required)
+* M532: Set print progress (not required)
+* M540: Enable/Disable "Stop SD Print on Endstop Hit" (No demand)
+* M565: Set Z probe offset (see G31)
+* M600: Set line cross section (volume extrusion not supported)
+* M600: Filament change pause (use pause.g macro to define what happens on pause)
+* M605: Set dual x-carriage movement mode (no requirement use M563)
+* M700: Level plate (will probably incorporate this into existing bed levelling gcode)
+* M701: Load filament (use a macro)
+* M702: Unload filament (use a macro)
+* M703: Get Board Type (use M115/M122)
+* M710: Erase the EEPROM and reset the board (use M503, M500 and then M112, in a macro if you need to do this odd command)
+* M800: Fire start print procedure (odd... temperature faults are already handled in the relavent temp gcodes)
+* M801: Fire end print procedure (see M800... odd)
+* M851: Set Z-Probe Offset (use G31)
+* M907: Set digital trimpot motor (use M906)
+* M908: Control digital trimpot directly (no requirement, use M906)
+* M909: Set microstepping (use M350)
+* M928: Start SD logging (this command appears to log gcode commands sent over USB))