---
title: "Which M-Code Turns Off the Coolant? (M09, Made Memorable)"
description: "M09 turns the coolant off, closing the M07 mist and M08 flood pair. Here is the family pattern that makes it stick, plus the drill that ends the forgetting."
url: https://gcodepractice.com/journal/i-keep-forgetting-which-m-code-turns-off-the-coolant/
canonical: https://gcodepractice.com/journal/i-keep-forgetting-which-m-code-turns-off-the-coolant/
author: "Lawrence Arya"
authorUrl: https://www.linkedin.com/in/vibecoding/
published: 2026-06-04
updated: 2026-06-04
category: "Practice"
tags: ["m-code", "coolant", "m09", "memorization"]
lang: en
---

# Which M-Code Turns Off the Coolant? (M09, Made Memorable)

> **TL;DR** M09 turns the coolant off, and it shuts down both M07 (mist on) and M08 (flood on). The pattern that ends the forgetting: in each M-code family the off switch sits just past the on switches, exactly like M05 stopping the spindle after M03 and M04. Drill the codes as families rather than isolated numbers and the answer becomes automatic instead of a guess between M05 and M09.

The answer first: **M09 turns the coolant off**, and it turns off everything, mist and flood alike. If you keep blanking on it at the control, the problem is not your memory. M-codes are arbitrary assigned numbers, and arbitrary information without a pattern is precisely what brains drop. So here is the pattern.

## What does the coolant family look like?

Three codes, two on-switches and one off-switch, as the [LinuxCNC M-code reference](https://linuxcnc.org/docs/html/gcode/m-code.html) lists them:

| Code | Action | Note |
| --- | --- | --- |
| `M07` | Mist coolant on | Air-coolant spray, where equipped |
| `M08` | Flood coolant on | The standard stream |
| `M09` | Coolant off | Closes both `M07` and `M08` |

The detail people miss: `M09` is the family's only off switch. There is no separate mist-off and flood-off; one code ends whatever was running.

## What is the pattern that makes it stick?

Look at the coolant family next to the spindle family and the structure jumps out:

| Family | On switches | Off switch |
| --- | --- | --- |
| Spindle | `M03` (forward), `M04` (reverse) | `M05` |
| Coolant | `M07` (mist), `M08` (flood) | `M09` |

In both families, **the off switch sits just past its on switches**. Two ons, then the off, twice in a row in the number line. Once you see the codes as two parallel families instead of six isolated numbers, the question answers itself: the spindle stops at `M05`, so the coolant stops at `M09`. This is structure doing the work a [mnemonic](https://en.wikipedia.org/wiki/Mnemonic) normally does, and structure outlasts any rhyme. The spindle half of the pattern is unpacked in [M03 vs M04 vs M05](/journal/m03-m04-m05/).

## Why did you keep forgetting it in the first place?

Interference, mostly. `M05` and `M09` are both off switches with similar shapes, so they swap in memory; CAM types these codes for you all day, so you read them constantly and retrieve them never, and recognition without retrieval is exactly the [fluency trap](/journal/how-to-memorize-g-code-faster/) that makes codes feel known until the moment you must produce one. The same mechanism is behind every modal forgetting story at the machine, including the units one in [why is my CNC moving in inches instead of mm](/journal/why-is-my-cnc-moving-in-inches-instead-of-mm/): what you never actively recall, you lose at the worst time.

A concrete version: an operator hand-typing an MDI warm-up routine wanted coolant off before a tool touch-off, hesitated between `M05` and `M09`, picked `M05`, and stopped the warm spindle instead. Nothing broke, but the spindle re-warm cost twenty minutes, which is an expensive price for one un-drilled code.

## How do you make the fix permanent?

Retrieve instead of reread. Two or three short sessions of self-testing on the M-code families, where you produce the answer before checking, converts the pattern into reflex; the families above plus the rest of the [common M-codes for CNC beginners](/journal/common-m-codes-for-cnc-beginners/) cover everything an operator types in a normal week. Keep a [cheat sheet](https://www.cnccookbook.com/g-code-m-code-cnc-list-cheat-sheet/) at the machine for the first days, then retire it on purpose; the sheet is scaffolding, not the building.

## Where does M09 belong in a program?

Three spots, by convention. Before a tool change, so the change happens without spray and the new tool is visible. Before any in-process measurement or probing, because coolant on a probe or a measuring face ruins the reading. And in the shutdown lines before `M30`, where it is technically redundant on controls whose program-end also kills coolant, but writing it explicitly costs one block and removes the question. Programs that state their intentions are programs the next person can trust, and `M09` in the shutdown is part of that habit.

## Bottom line

`M09` turns the coolant off, ending both `M07` mist and `M08` flood, and it stops being forgettable the moment you see the family pattern: two ons, then the off, in both the spindle and coolant families. Drill the families with a few recall sessions on the [G-code practice hub](/g-code-practice/) and the hesitation at the control disappears for good.

## Sources

- [LinuxCNC M-code reference (M7, M8, M9 coolant)](https://linuxcnc.org/docs/html/gcode/m-code.html)
- [Wikipedia: Mnemonic](https://en.wikipedia.org/wiki/Mnemonic)
- [CNCCookbook: G-code and M-code cheat sheet](https://www.cnccookbook.com/g-code-m-code-cnc-list-cheat-sheet/)

## Frequently asked questions

### Which M-code turns off the coolant?
`M09`. It is the coolant family's single off switch, shutting down both `M07` mist and `M08` flood, the same way `M05` stops the spindle regardless of direction.

### Why do I keep mixing up M05 and M09?
Because both are off switches and they interfere in memory. Learn them as parallel families, `M03`/`M04` then `M05`, `M07`/`M08` then `M09`, and the structure carries the recall.

### What is the difference between M07 and M08?
`M08` is flood coolant, the standard stream; `M07` is mist, an air-coolant spray on machines equipped for it. Both end with the same `M09`.

### What is the best way to stop forgetting M-codes like M09?
Drill them as families with active recall. A free app like G-Code Sprint quizzes the coolant and spindle codes and repeats exactly the ones you keep missing.

*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/i-keep-forgetting-which-m-code-turns-off-the-coolant/
Author: Lawrence Arya — https://www.linkedin.com/in/vibecoding/
