---
title: "M3 vs M4 on a CNC Laser Cutter: Which Mode to Use"
description: "In GRBL laser mode, M3 holds constant power while M4 scales power with speed, killing corner burn. Here is when each wins and why laser mode must be on."
url: https://gcodepractice.com/journal/m3-vs-m4-for-cnc-laser-cutter/
canonical: https://gcodepractice.com/journal/m3-vs-m4-for-cnc-laser-cutter/
author: "Lawrence Arya"
authorUrl: https://www.linkedin.com/in/vibecoding/
published: 2026-06-04
updated: 2026-06-04
category: "Code reference"
tags: ["laser", "m3", "m4", "grbl"]
lang: en
---

# M3 vs M4 on a CNC Laser Cutter: Which Mode to Use

> **TL;DR** With GRBL's laser mode enabled ($32=1), M3 runs the laser at constant power, exactly the S value regardless of motion, while M4 runs dynamic power, scaling output with actual speed so corners and ramps do not burn darker. M4 is the default choice for engraving and most cutting; M3 serves jobs needing unwavering power. Without laser mode enabled, both codes behave like spindle commands with motion pauses, which ruins laser work.

On spindle machines, `M3` and `M4` pick rotation direction. Bolt a laser to the same controller and the two codes take on entirely different jobs: they choose between two power philosophies, and the choice is visible in every corner of the work. The behavior is defined in [GRBL's laser mode documentation](https://github.com/gnea/grbl/wiki/Grbl-v1.1-Laser-Mode), and understanding it solves the most common laser quality complaint on the first read.

## What do M3 and M4 mean with laser mode on?

With laser mode enabled (`$32=1`), GRBL reinterprets the spindle commands:

| | `M3` constant power | `M4` dynamic power |
| --- | --- | --- |
| Output during a move | Exactly the `S` value | Scaled to actual speed |
| During accel and corners | Unchanged | Reduced proportionally |
| When motion stops | Stays on at `S` | Drops to zero |
| Burn signature | Darker corners and starts | Even line, end to end |
| Best for | Unwavering-power jobs | Engraving and most cutting |

The `S` word stays the power knob in both, scaled against the `$30` maximum. What changes is the throttle logic: `M3` trusts your number absolutely; `M4` treats it as power at programmed speed and adjusts whenever physics makes the machine move slower.

## Why does dynamic mode exist?

Because energy per millimeter is what burns, and speed changes redistribute it. A machine commanded at 3000 mm/min does not corner at 3000; it decelerates in, creeps the corner, and accelerates out, and under constant power those slow zones receive multiples of the intended energy, the charred-corner signature every [laser cutting](https://en.wikipedia.org/wiki/Laser_cutting) beginner recognizes. `M4` measures the planner's actual speed and scales power in real time, keeping energy per distance flat, which is why engraving photos, raster work, and most vector cutting default to it.

`M3`'s constant mode keeps a real role: jobs where the process needs unwavering output regardless of motion, certain material tests, and dwelling operations where zero-speed cutoff would be wrong. It is the special case, not the default, which inverts the spindle world's habits.

## What happens if laser mode is off?

The codes regress to their [spindle meanings](https://linuxcnc.org/docs/html/gcode/m-code.html), and two laser-hostile behaviors come back. GRBL inserts stop-and-wait pauses on spindle state changes, which a spinning motor needs and a laser absolutely does not, every pause is a burn mark, and `M4` reverts to reverse rotation rather than dynamic power. So `$32=1` is not a tweak but a prerequisite: a laser file full of `M4` run on a machine without laser mode produces pauses, marks, and confusion. The wood-side cousin of this dual-meaning trap, where `M4` on a router build means laser attachment mode, is noted in [the wood router M-codes list](/journal/cnc-wood-router-m-codes-list/).

A concrete diagnostic: a maker's engravings showed dark dots at the start of every line. The file used `M3`; each line began at zero speed under full power. Switching the post to `M4`, with laser mode confirmed on, removed every dot without touching power or speed, because the dots were never a power problem, only a throttle-logic one.

## How does this fit the rest of laser-machine literacy?

The power modes are one entry in a compact vocabulary: the motion core, the handful of `$` settings that matter, and the alarm and error messages when something halts, the decoder for which lives in [GRBL alarm 1 vs error 1](/journal/grbl-alarm-1-g-code-error-explained/), and the console where you ask the machine directly, walked through in [LightBurn console commands explained](/journal/lightburn-g-code-console-commands-explained/). Practicing on real files is the fastest way in, the exercise path laid out in [LaserGRBL G-code practice](/journal/laser-grbl-g-code-practice-exercises/), and the recall layer underneath, codes answering themselves on sight, runs in spare minutes on the [G-code practice hub](/g-code-practice/). One safety note belongs in every laser paragraph: eye protection rated for the wavelength and a fire watch are not optional, whatever the code says.

## Bottom line

With laser mode on, `M3` holds constant power and `M4` scales power with real speed, so `M4` wins engraving and most cutting while `M3` serves unwavering-output jobs. With laser mode off, both regress to spindle behavior and ruin laser work with pauses. Set `$32=1`, default to `M4`, and let the corners tell you it worked.

## Sources

- [GRBL v1.1 Laser Mode documentation](https://github.com/gnea/grbl/wiki/Grbl-v1.1-Laser-Mode)
- [Wikipedia: Laser cutting](https://en.wikipedia.org/wiki/Laser_cutting)
- [LinuxCNC M-code reference (M3, M4)](https://linuxcnc.org/docs/html/gcode/m-code.html)

## Frequently asked questions

### Should I use M3 or M4 for a CNC laser cutter?
`M4` for most work: it scales power with actual speed so corners and ramps burn evenly. `M3` holds constant power for jobs needing unwavering output.

### What is the difference between M3 and M4 in GRBL laser mode?
`M3` outputs the `S` value constantly; `M4` treats `S` as power at programmed speed, reducing output during slowdowns and dropping to zero at rest.

### Why does my laser burn darker at corners?
The machine slows for corners while constant power keeps flowing, concentrating energy where motion lingers. Dynamic `M4` mode scales power with the slowdown and evens the burn.

### What is the best way to learn the codes a laser machine uses?
Drill the compact GRBL-relevant set with active recall. A free app like G-Code Sprint quizzes the everyday codes and repeats whichever ones you miss.

*G-Code Sprint is a study and practice tool only. Always follow your instructor, employer, machine manual, and shop safety procedures.*

---

Source: https://gcodepractice.com/journal/m3-vs-m4-for-cnc-laser-cutter/
Author: Lawrence Arya — https://www.linkedin.com/in/vibecoding/
