---
title: "M03 vs M04 vs M05: Spindle Codes Made Simple"
description: "M03 starts the spindle clockwise, M04 starts it counterclockwise, and M05 stops it. Here is what each does and how to remember the set."
url: https://gcodepractice.com/journal/m03-m04-m05/
canonical: https://gcodepractice.com/journal/m03-m04-m05/
author: "Lawrence Arya"
authorUrl: https://www.linkedin.com/in/vibecoding/
published: 2026-05-29
updated: 2026-05-29
category: "Code reference"
tags: ["m-code", "m03", "m04", "m05", "spindle", "beginner"]
lang: en
---

# M03 vs M04 vs M05: Spindle Codes Made Simple

> **TL;DR** M03 turns the spindle on clockwise (forward), M04 turns it on counterclockwise (reverse), and M05 stops the spindle. M03 is by far the most common because most cutting uses standard right-hand tools running clockwise. Pair spindle codes with an S value to set the speed.

`M03`, `M04`, and `M05` are the spindle controls, and they are usually the first M-codes a beginner meets. M-codes are "miscellaneous" or machine functions: they switch things on and off rather than command motion the way G-codes do.

## The three codes

- **M03**: spindle on, **clockwise** (forward). This is the workhorse. Standard right-hand tools cut running clockwise, so most programs use `M03`.
- **M04**: spindle on, **counterclockwise** (reverse). Used for left-hand tooling and operations like certain tapping setups.
- **M05**: spindle **stop**.

They almost always travel with a speed value:

```
M03 S1200   (spindle on, clockwise, at 1200 rpm)
...
M05         (spindle stop)
```

## Why the mix-up happens

`M03` and `M04` differ by one digit and both start the spindle, so beginners reverse them. And because `M03` is so common, `M04` is easy to forget entirely until a left-hand or tapping job needs it. `M05` is simpler, but under pressure students sometimes blank on which number is "stop."

A memory hook: **M03 is the default workhorse (3 is the one you will type most), M04 is the rare reverse, M05 is the full stop.**

## Learn them as a set

Spindle codes are easiest to remember as a group of three rather than one at a time, the same way you would drill [M03, M04, and M05 as a mix-up set](/journal/beginner-cnc-code-practice/). They sit alongside coolant and program codes on the list of [common M-codes every CNC beginner should know](/journal/common-m-codes-for-cnc-beginners/).

## Bottom line

`M03` is clockwise on, `M04` is counterclockwise on, `M05` is stop. Most cutting uses `M03`. Drill the three together with their `S` value and they stop blurring.

*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/m03-m04-m05/
Author: Lawrence Arya — https://www.linkedin.com/in/vibecoding/
