M-Code Cheat Sheet
M-Codes, or “miscellaneous codes,” are used to control various machine functions. The specific M-Codes available can vary greatly from one CNC machine to another and are often manufacturer-specific. Here’s a general list of some common M-Codes you might encounter on various machine types, but it’s essential to consult the specific manual for a given CNC machine to understand its unique set of M-Codes.
- M00: Program Stop
- M01: Optional Program Stop
- M02: End of Program
- M03: Spindle Start (Clockwise)
- M04: Spindle Start (Counter-Clockwise)
- M05: Spindle Stop
- M06: Tool Change
- M07: Coolant On (Mist)
- M08: Coolant On (Flood)
- M09: Coolant Off
- M10: Pallet Clamp On
- M11: Pallet Clamp Off
- M13: Spindle On (Clockwise) with Coolant On
- M14: Spindle On (Counter-Clockwise) with Coolant On
- M15: Spindle Stop Override
- M19: Spindle Orientation
- M20: Multiple Pallet Shuttle Exchange
- M21: Mirror Image X On
- M22: Mirror Image X Off
- M23: Mirror Image Y On
- M24: Mirror Image Y Off
- M25: Mirror Image Z On
- M26: Mirror Image Z Off
- M30: Program End and Reset
- M31: Reserved for probing
- M32: Pallet In
- M33: Pallet Out
- M34: Pallet Stop
- M35: Pallet Start
- M36: Work Clamp On
- M37: Work Clamp Off
- M38: Door Open
- M39: Door Close
- M40: Gear Shift (High Gear)
- M41: Gear Shift (Low Gear)
- M42: Change Gear Ratio
- M43: Tool Length Measurement
- M44: Tool Breakage Detection
- M45: User Macro 1
- M46: User Macro 2
- M47: Program Restart
- M48: Override Speed On
- M49: Override Speed Off
- M50: Feed Override On
- M51: Feed Override Off
- M52: Unload Request
- M53: Unload Cancel
- M54: Reserved for tool life management
- M55: External M-Code Control
- M56: Chip Conveyor Forward
- M57: Chip Conveyor Reverse
- M58: Air Blow On
- M59: Air Blow Off
- M60: Automatic Pallet Change
- M61: Set Current Tool
- M62: Digital Output On
- M63: Digital Output Off
- M64: Tailstock Forward
- M65: Tailstock Backward
- M66: Live Tool Control
- M67: High Pressure Coolant On
- M68: High Pressure Coolant Off
- M70: Display Message
- M71: Rotate Axis On
- M72: Rotate Axis Off
- M73: Set Program Times
- M74: Deceleration Off
- M75: Deceleration On
- M76: Threading Cancel
- M77: Threading Start
- M78: Alarm On
- M79: Alarm Off
- M80: Air Compressor On
- M81: Air Compressor Off
- M82: Vacuum On
- M83: Vacuum Off
- M84: Turret Unlock
- M85: Turret Lock
- M86: Reserved for feedback
- M87: Ejector On
- M88: Ejector Off
- M89: Oil Mist On
- M90: Oil Mist Off
- M91: Reduce Speed/Feed
- M92: Increase Speed/Feed
- M93: Reverse Spindle
- M94: Cancel Reverse Spindle
- M95: Macro Subroutine Call
- M96: Reserved for pallet management
- M97: Local Sub-Program Call
- M98: Sub-Program Call
- M99: Sub-Program End