โ† Open Viewer
GCodex โ€บ G-Code Guide โ€บ G90/G91
G90/G91

G90 vs G91 G-Code: Absolute vs Incremental Positioning Explained

G90 sets absolute positioning โ€” all coordinates measured from the work zero. G91 sets incremental positioning โ€” coordinates measured from the current position. G90 is the default and most common mode.

Syntax

G90  ; Absolute mode
G91  ; Incremental mode

Parameters

ParameterDescription
G90All coordinates are absolute โ€” measured from current work zero (G54/G92)
G91All coordinates are incremental โ€” measured from the current position

Examples

G90
G1 X50 F1000
โ†‘ Move to X=50mm from work zero (absolute)
G91
G1 X10 F1000
โ†‘ Move 10mm in positive X from wherever we are now (incremental)
G90
G91
G1 Z-5 F200
G90
โ†‘ Temporary incremental: descend 5mm relative to current depth, then back to absolute

Important Notes

  • Always set G90 explicitly at program start โ€” never assume the modal state from a previous program.
  • G91 is useful for drilling cycles, repeated patterns, and relative Z movements.
  • In 3D printing, G90 controls XYZ axes while M82/M83 controls E axis mode separately.

Common Mistakes

  • โŒ Leaving G91 active after a sub-routine โ€” all subsequent moves become incremental, causing crashes.
  • โŒ Mixing G90 and G91 without explicit mode switches โ€” the machine behaves unpredictably.

Frequently Asked Questions

Q: What is the difference between G90 and G91?
G90 (absolute) measures all coordinates from the fixed work origin โ€” X50 always means 50mm from zero. G91 (incremental) measures from the current position โ€” X10 means move 10mm from where you are now, regardless of current position. G90 is safer and more predictable for most programming.
Q: When should I use G91 incremental mode?
G91 is useful for: repeated patterns (drill the same hole in a row of locations), relative Z descents in drilling cycles, and manual jog-like moves where you want to move a specific distance from the current position. Always switch back to G90 when done.