CNC Error Codes and Alarms: What They Mean and How to Fix Them
CNC machines don’t speak — they scream in alarm codes.
From spindle faults to overtravel errors, every alarm has a reason — and a fix.
This guide covers the most common CNC error codes, especially for Fanuc, Haas, and similar controllers.
You’ll learn:
- What the error code means
- What causes it
- How to resolve it safely
🚫 Axis Overtravel (Fanuc: Alarm 500–504 / Haas: 164, 165)
Meaning: One of the machine axes tried to move beyond its travel limits.
Causes:
- Bad G-code coordinate
- Missing tool length or work offset
- Jogging too far in manual mode
Fix:
- Press RESET, then power off/on
- Jog off limit slowly using opposite direction
- Check G54–G59 offsets, tool lengths, and part zero
💡 Tip: Add soft limits and simulation checks to avoid this in the future.
⚠️ Spindle Alarm (Fanuc: 700–799 / Haas: 123)
Meaning: Spindle won’t start or stopped unexpectedly.
Causes:
- Spindle overload or thermal trip
- Improper tool command (e.g., S without M03)
- Encoder or drive fault
Fix:
- Check spindle drive and cooling fan
- Confirm correct M-code sequence (e.g.,
S1200 M03) - Restart system; call maintenance if persistent
❌ Feed Hold / Emergency Stop (Fanuc: 400 / Haas: 107)
Meaning: E-stop button was pressed, or safety signal lost.
Causes:
- Operator pressed E-stop
- Safety door open
- Sensor misalignment (e.g., light curtain)
Fix:
- Reset the alarm
- Confirm all doors/sensors are in position
- Turn off/on control, retry cycle start
🌀 G-Code Format Error (Fanuc: Alarm 086 / Haas: 310)
Meaning: Invalid G-code command or parameter.
Causes:
- Wrong G-code (e.g.,
G04 X0instead ofG04 P0) - Bad M-code or illegal address (e.g., missing F, S, T)
- Incorrect syntax or unsupported cycle
Fix:
- Check syntax against controller manual
- Remove illegal or empty values
- Validate code in a simulator before running
🔄 Spindle Orientation Fault (Fanuc: Alarm 1130 / Haas: 119)
Meaning: Spindle failed to orient properly for tool change.
Causes:
- Sensor misalignment
- Low air pressure or hydraulic fault
- Dirty encoder or magnetic sensor
Fix:
- Check air pressure (usually >6 bar)
- Clean spindle sensor area
- Retry orientation manually (M19), then reset
🧯 Tool Change Timeout (Fanuc: 993 / Haas: 130)
Meaning: ATC couldn’t complete tool change in time.
Causes:
- Obstruction in carousel
- Sensor fault
- Slow spindle orientation
Fix:
- Inspect tool pockets and gripper arms
- Jog ATC back to home position
- Clear any chips or loose tools
🧠 How to Prevent CNC Alarms
✅ Always simulate code in a virtual machine
✅ Use dry-run mode with feed/spindle override
✅ Set machine home and zero positions daily
✅ Perform daily checks on air pressure, coolant, and sensors
✅ Backup parameters and tool offsets weekly
📘 Quick CNC Alarm Lookup Table (Fanuc)
| Alarm Code | Meaning | Typical Fix |
|---|---|---|
| 086 | G-code format error | Check command syntax |
| 500–504 | Axis overtravel | Jog away from limits |
| 700–799 | Spindle drive fault | Check power and restart |
| 1130 | Spindle orientation error | Clean sensor / retry M19 |
| 993 | Tool change timeout | Inspect ATC mechanism |
| 400 | Emergency stop | Release E-stop and reset |
🧠 Pro Troubleshooting Tips
- Don’t panic — 80% of CNC alarms are recoverable with no technician
- Always read the exact alarm number and message
- Keep a physical or digital alarm code list near each machine
- Assign a “CNC Champion” per shift for first-line resolution
- Track frequent alarms — they often point to hidden root causes
🎯 Final Thoughts
CNC alarms are not your enemy — they’re your machine’s way of protecting itself and your part.
Learning how to read and respond to these codes will make you:
- A faster, smarter operator
- A more efficient programmer
- A more valuable team member
Leave a comment