M00 CNC Code Explained: An Easy Intro for Beginners [Program Stop]

What does the M00 code do?

The M00 code is called a program stop. 

It stops the current program in the middle of running.

Using the M00 code turns off the following functions:

  • Movement of all axes
  • Spindle rotation
  • Coolant flow
  • The machine pauses reading the program

When the M00 code is used, nothing is reset. 

In other words, any active modes or parameters will stay as they are. The program is merely paused when it reads the M00 code.

The machine will resume reading the program when the cycle start button is pressed after the program stop has occurred.

Note that the machine doesn’t turn on functions when cycle start is pushed. 

If the M00 code turns something off such as the spindle or coolant, it will need to be turned back on in the program.

Learn CNC Programming – It’s Easier Than You Think!

Learning G Code doesn’t have to be difficult…

If you know what to focus on.

Join our simple, easy-to-follow course, “G Code Made Easy: CNC Programming for Beginners“. We walk you through all the important codes – with simple explanations and real-world examples.

Want to become a super-skilled CNC programmer? Join now to take the shortcut to becoming a G Code Master today!

Make Learning G Code Easy

When should you use a program stop with M00?

Program stops get used for many reasons such as:

  • Manual tool changes
  • Checking the dimensions of the part
  • Checking the condition of the cutting tool
  • Clearing chips
  • Adjusting coolant lines
  • Adding tapping oil to a tap
cnc machine table with coolant lines and spindle shown
So many coolant lines to move

Program stops can be used for almost anything. 

Ideally the CNC programmer will list why the M00 code was used in the program comments and/or on the setup sheet.

How to resume program operation after using an M00 code

The M00 command stops the machine in the middle of reading the program.

However, it does not restart or reset the program. 

The CNC machine will keep all the conditions that were set before the stop occurred such as feed rate, spindle speed, unit mode, positioning mode, etc.

When the programmer wants to resume the program, he or she will have to make sure that they turn the spindle and coolant on again if needed in the program.

The CNC operator will resume the program by pressing the cycle start button.

fanuc cnc control panel with cycle start button highlighted
Fanuc cycle start button

What are the benefits of using the M00 code?

Using the M00 code to put a program stop in your CNC program allows you to check on the status of your machine or part.

It also allows the operator to safely perform any needed manual actions.

What to watch out for when using an M00 code

Check the program comments and setup sheet to understand why the program stop has been used.

Most CNC machines are intended to run as much as possible because many businesses will look at it as “making chips means making money”. Because of this, it is usually safe to say that if the machine has been stopped on purpose, it is usually for an important reason.

If you aren’t sure why the M00 code is being used, find someone who does.

M00 [program stop] vs M01 [optional stop]

The M00 and M01 codes are very similar CNC codes.

They both stop the machine in the same way:

  • Machine functions off
  • Program is paused

Both codes required the cycle start button to be pushed after the stop occurs to make the CNC machine resume reading the program.

The difference between them is that the CNC will ignore the M01 code unless the optional stop button or switch is on. 

If the switch is off, the machine will ignore any M01 codes it reads and continue running the program like normal.

haas cnc control panel with optional stop button highlighted
Haas optional stop button

M00 [program stop] vs M30 [program end]

The M00 and M30 codes both stop the machine, but the M00 stop is just a pause in the program. 

The M30 code ends the program.

Pressing cycle start after an M30 code will start the entire program over again.

Pressing cycle start after an M00 code will continue reading the program from the next line after the M00 code was used.

Want to learn more about CNC G Code?

Leave a Comment