G-Code Reference

G-Code Reference

This is a section of some of the more common g-codes and their format and meaning.  Note that not all codes are supported by all machines, so please check to see if your machine supports a code before trying to use it.  This is by no means an exhaustive list, there are many more g-codes in use and some proprietary ones as well.

Note that GRBL only supports a subset of these codes, and it does not support any of the Canned cycle codes or tapping cycles.

G- Codes

Code                 Category             Function                           

G00                   Motion                 Move in a straight line at rapids speed.  
G01                   Motion                 Move in a straight line at last speed commanded by                                                            a  (F)eedrate 
G02                   Motion                 Clockwise circular arc at (F)eedrate XYZ of endpoint                                                          IJK relative to center R for radius
G03                   Motion                 Counter-clockwise circular arc at (F)eedrate XYZ of                                                            endpoint IJK relative to center R for radius
G04                   Motion                 Dwell: Stop for a specified time. P for milliseconds X                                                          for seconds
G05                   Motion                 FADAL Non-Modal Rapids
G09                   Motion                 Exact stop check

G10                   Compensation    Programmable parameter input
G15                   Coordinate           Turn Polar Coordinates OFF, return to Cartesian                                                                   Coordinates
G16                   Coordinate           Turn Polar Coordinates ON
G17                   Coordinate           Select X-Y plane
G18                   Coordinate           Select X-Z plane
G19                   Coordinate           Select Y-Z plane
G20                   Coordinate           Program coordinates are inches
G21                   Coordinate           Program coordinates are mm
G27                   Motion                  Reference point return check
G28                   Motion                  Return to home position
G29                   Motion                  Return from the reference position
G30                   Motion                  Return to the 2nd, 3rd, and 4th reference point
G32                   Canned                 Constant lead threading (like G01 synchronized with                                                           spindle)
G40                   Compensation     Tool cutter compensation off (radius comp.)
G41                   Compensation     Tool cutter compensation left (radius comp.)
G42                   Compensation     Tool cutter compensation right (radius comp.)
G43                   Compensation     Apply tool length compensation (plus)
G44                   Compensation     Apply tool length compensation (minus)
G49                   Compensation     Tool length compensation cancel
G50                   Compensation     Reset all scale factors to 1.0
G51                   Compensation     Turn on scale factors
G52                   Coordinate            Local workshift for all coordinate systems: add XYZ                                                            offsets
G53                   Coordinate            Machine coordinate system (cancel work offsets)
G54                   Coordinate            Work coordinate system (1st Workpiece)
G55                   Coordinate            Work coordinate system (2nd Workpiece)
G56                   Coordinate            Work coordinate system (3rd Workpiece)
G57                   Coordinate            Work coordinate system (4th Workpiece)
G58                   Coordinate            Work coordinate system (5th Workpiece)
G59                   Coordinate            Work coordinate system (6th Workpiece)
G61                   Other                      Exact stop check mode
G62                   Other                      Automatic corner override
G63                   Other                      Tapping mode
G64                   Other                      Best speed path
G65                   Other                      Custom macro simple call
G68                   Coordinate            Coordinate System Rotation
G69                   Coordinate            Cancel Coordinate System Rotation
G73                   Canned                  High speed drilling cycle (small retract)
G74                   Canned                  Left hand tapping cycle
G76                   Canned                  Fine boring cycle
G80                   Canned                  Cancel canned cycle
G81                   Canned                  Simple drilling cycle
G82                   Canned                  Drilling cycle with dwell (counterboring)
G83                   Canned                  Peck drilling cycle (full retract)
G84                   Canned                  Tapping cycle
G85                   Canned                  Boring canned cycle, no dwell, feed out
G86                   Canned                  Boring canned cycle, spindle stop, rapid out
G87                   Canned                  Back boring canned cycle
G88                   Canned                  Boring canned cycle, spindle stop, manual out
G89                   Canned                  Boring canned cycle, dwell, feed out
G90                   Coordinate            Absolute programming of XYZ (type B and C                                                                        systems)
G90.1                Coordinate            Absolute programming IJK (type B and C systems)
G91                   Coordinate            Incremental programming of XYZ (type B and C                                                                  systems)
G91.1                Coordinate            Incremental programming IJK (type B and C                                                                        systems)
G92                    Coordinate           Offset coordinate system and save parameters
G92 (alternate) Motion                 Clamp of maximum spindle speed S
G92.1                 Coordinate           Cancel offset and zero parameters
G92.2                 Coordinate           Cancel offset and retain parameters
G92.3                 Coordinate           Offset coordinate system with saved parameters
G94                    Motion                  Units per minute feed mode. Units in inches or mm.
G95                    Motion                  Units per revolution feed mode. Units in inches or                                                                mm.
G96                    Motion                  Constant surface speed
G97                    Motion                  Cancel constant surface speed
G98                    Canned                 Return to initial Z plane after canned cycle
G99                    Canned                 Return to initial R plane after canned cycle



Code                  Category               Function
M00                    M-Code                Program Stop (non-optional) 

M01                    M-Code                Optional Stop: Operator Selected to Enable 

M02                    M-Code                End of Program
M03                    M-Code                Spindle ON (CW Rotation)
M04                    M-Code                Spindle ON (CCW Rotation)
M05                    M-Code                Spindle Stop
M06                    M-Code                Tool Change
M07                    M-Code                Mist Coolant ON
M08                    M-Code                Flood Coolant ON
M09                    M-Code                Coolant OFF
M17                    M-Code                FADAL subroutine return
M29                    M-Code                Rigid Tapping Mode on Fanuc Controls
M30                    M-Code                End of Program, Rewind and Reset Modes
M97                    M-Code                Haas-Style Subprogram Call
M98                    M-Code                Subprogram Call
M99                    M-Code                Return from Subprogram