G-Codes not implemented
This page lists G-Codes that may be found in other firmwares/CNC control software which are not implemented in RepRapFirmware.
For the detail on implemented G-Codes see the Gcode dictionary page. Some will be implemented in future firmware releases (see this forum for more details https://www.duet3d.com/forum/viewforum.p...). Other features are covered by existing RepRapFirmware G-Codes, are obsolete, or deprecated.
Note, in RepRapFirmware 2.03 and later, if you try to execute a G- or M-command that RRF does not implement, it will execute a system macro of that name if it exists. For example, if you send G40 then it will execute /sys/G40.g if it exists; and if you send M48 then it will execute /sys/M48.g if it exists.
G-Codes not yet implemented but may be in the future
When these are implemented depends very much on the demand.
- G40: Compensation Off (CNC specific)
- G80: Cancel Canned Cycle (CNC specific)
- G93: Feed Rate Mode (Inverse Time Mode)
- 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 (see M450)
- M668: Set Z-offset compensations polynomial (currently only implemented in http://reprap.org/wiki/User:Foxkid dc42-cmm) fork.
- M910: Set decay mode (Detailed driver configuration can be achieved using the "C" Parameter of M569)
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)
- 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 endstop offsets (For Delta see M666, M208 allows endstop positions to be set)
- 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)
- 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 M591)
- 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
- 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 (use a macro and M42 to control humidifier, M305 to view the humidity with a DHT sensor)
- M149: Set temperature units (No demand, just use C)
- M155: Automatically send temperatures (hosts should use polling)
- M160: Number of mixed materials ( use M567)
- M163: Set weight of mixed material ( 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)
- M202: Set max travel acceleration (use M204)
- M207: Calibrate z axis by detecting z max length (Clashed with existing meaning of M207, Use G1 H3 instead)
- 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 endstops (use M564)
- M212: Set Bed Level Sensor Offset (use G31)
- M218: Set Hotend Offset (use G10)
- 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)
- 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 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 (See G32)
- 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 (use start gcode in slicer)
- M801: Fire end print procedure (use end gcode in slicer)
- 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 (See M929)
3 Comments
I using Fusion 360 and the gcode , and I need this
G17..19: Plane Selection (CNC specific)
Thank
Clement Beaudoin - Reply
Hi Clement, can you post on the forum in the CNC section please. We can then get a feel for the demand for this requirement. (https://forum.duet3d.com/category/28/cnc)
Tony -
G17 is implemented. Do you need G18 and G19 as well?
David Crocker -