Common Issues
Solutions to the most frequently encountered problems when using FluidNC GUI.
Configuration Issues
"Steps per mm is too high/low"
Problem
Your machine moves the wrong distance when commanded.
Symptoms
- Commanded 10mm, but moved 20mm (steps too high)
- Commanded 10mm, but moved 5mm (steps too low)
- Circles come out as ovals
- Dimensions are consistently wrong
Solution
Calculate correct steps per mm:
-
Test current setting:
G91 ; Relative mode
G0 X100 ; Command 100mm movement -
Measure actual distance moved
-
Calculate new value:
new_steps_per_mm = current_steps_per_mm × (commanded_distance / actual_distance)
-
Example calculation:
- Current setting: 80 steps/mm
- Commanded: 100mm
- Actual movement: 125mm
- New setting: 80 × (100/125) = 64 steps/mm
Common Values
Drive Type | Typical Steps/mm |
---|---|
GT2 Belt (20T pulley) | 80 |
GT2 Belt (16T pulley) | 100 |
5mm Lead Screw | 400 |
8mm Lead Screw | 250 |
Rack & Pinion | Varies widely |
Motors Running Backwards
Problem
Motors move in opposite direction to what's expected.
Symptoms
- X+ command moves machine left instead of right
- Homing moves away from switches
- Coordinate system is mirrored
Solution
Invert the direction pin:
# Before (normal)
direction_pin: "gpio.5"
# After (inverted)
direction_pin: "!gpio.5"
Alternative
Swap motor wiring (any two wires on stepper motor).
Homing Goes Wrong Direction
Problem
Homing moves away from limit switches instead of toward them.
Symptoms
- Motors move away from switches during
$H
command - Machine crashes into opposite end
- Homing fails with timeout
Solution
Change homing direction:
homing:
positive_direction: false # Change to true, or vice versa
Test Process
- Note switch positions (which end of travel)
- Try homing with current settings
- If wrong direction, toggle
positive_direction
- Test again at slow speed
Soft Limits Triggered Immediately
Problem
Machine shows "Soft limit exceeded" error without moving.
Symptoms
- Can't move any axis
- Error appears immediately after homing
- All commands rejected
Causes
max_travel_mm
set incorrectly- Homing position (
mpos_mm
) wrong - Machine coordinates not properly set
Solution
Check and fix travel settings:
axes:
x:
max_travel_mm: 300.0 # Set to actual machine travel
homing:
mpos_mm: 0.0 # Position after homing (usually 0 or max_travel)
Quick Fix
Disable soft limits temporarily:
$20=0 ; Disable soft limits
Hardware Issues
Motors Won't Move at All
Checklist
- Power supply connected and turned on
- Voltage correct for your drivers (12V/24V)
- Motor enable pin working (usually active low)
- Wiring correct between controller and drivers
- Driver configuration (current limiting, microstepping)
Test Enable Pin
# Try inverting enable pin
disable_pin: "!gpio.8" # Add ! if motors still don't work
Quick Test
$X ; Clear alarms
$I ; Check board info
G91 ; Relative mode
G0 X0.1 ; Tiny movement
Motors Stall or Skip Steps
Causes
- Current too low: Insufficient torque
- Speed too high: Exceeding motor capability
- Acceleration too high: Can't reach speed quickly enough
- Mechanical binding: Friction or interference
Solutions
-
Reduce speed:
max_rate_mm_per_min: 2000.0 # Start lower, increase gradually
-
Reduce acceleration:
acceleration_mm_per_sec2: 200.0 # Start conservative
-
Check current settings on stepper drivers
-
Verify mechanical freedom of movement
Spindle Won't Start
PWM Spindle Issues
- Check PWM signal with multimeter or oscilloscope
- Verify frequency matches spindle requirements
- Test enable pin functionality
Common Solutions
spindle:
pwm:
pwm_hz: 1000 # Try different frequencies (1k-25k)
output_pin: "gpio.12"
enable_pin: "gpio.13"
direction_pin: "gpio.14"
Test Commands
M3 S100 ; Start at low speed
M5 ; Stop spindle
Limit Switches Not Working
Symptoms
- Homing fails with "Hard limit" error
- Switches don't trigger when pressed
- Inconsistent switch behavior
Checklist
- Wiring correct (one side to pin, other to ground)
- Switch type (normally open vs. normally closed)
- Pull-up resistors enabled in software
- Debounce settings appropriate
Test Switch States
$? ; Check status - should show switch states
Configuration
# Standard switch configuration
limit_neg_pin: "gpio.9" # One switch per axis
homing:
debounce_ms: 500 # Increase if switches are noisy
Software Issues
Can't Connect to Board
USB Connection
- Driver installed for USB-to-serial chip
- Correct baud rate (usually 115200)
- Board powered and not in bootloader mode
- Cable working (try different cable)
WiFi Connection
- Board configured for WiFi mode
- Network settings correct
- IP address accessible
- Firewall not blocking connection
Configuration Upload Fails
Common Causes
- File format wrong (need YAML for FluidNC)
- Syntax errors in configuration
- Board storage full or corrupted
- Connection interrupted during upload
Solutions
- Validate YAML before uploading
- Use simple config to test connection
- Factory reset board if needed
- Check board documentation for upload procedure
G-code Commands Don't Work
Symptoms
- Commands ignored or rejected
- "Unknown command" errors
- Unexpected behavior
Common Issues
- Machine not homed (some commands require homing)
- Wrong coordinate mode (G90 vs G91)
- Alarm state active
- Invalid parameters for command
Debug Process
$? ; Check machine state
$$ ; Check all parameters
$G ; Check active modes
Performance Issues
Interface Slow or Unresponsive
Browser Issues
- Too many tabs open
- Browser extensions interfering
- Insufficient memory on device
- Outdated browser version
Solutions
- Close other tabs
- Disable extensions
- Use desktop browser (not mobile)
- Clear browser cache
Large Configurations Cause Problems
Symptoms
- GUI becomes slow
- Export takes very long time
- Browser crashes or freezes
Solutions
- Simplify configuration while editing
- Remove unnecessary comments
- Use Expert mode for large configs
- Export smaller sections at a time
Error Message Reference
Common Error Messages
Error | Meaning | Solution |
---|---|---|
"Pin already in use" | Duplicate pin assignment | Check all pin assignments |
"Invalid pin number" | Pin doesn't exist on board | Use valid GPIO numbers |
"Steps per mm must be positive" | Negative or zero value | Enter positive number |
"Soft limit exceeded" | Movement beyond travel limit | Check travel settings |
"Hard limit triggered" | Hit physical limit switch | Clear alarm, check setup |
"Alarm state" | Safety system active | Identify and clear alarm cause |
Validation Messages
The GUI provides helpful validation:
- 🟢 Green: Valid configuration
- 🟡 Yellow: Warnings (still valid)
- 🔴 Red: Errors (must fix)
Prevention Tips
Before You Start
- Read your board documentation
- Plan pin assignments on paper first
- Start with simple configuration
- Test one feature at a time
During Configuration
- Save frequently (export backups)
- Test incrementally after each major change
- Document your changes
- Keep notes on what works
Before Going Live
- Double-check all pins
- Verify directions with low speeds
- Test emergency stop
- Check homing carefully
Still having issues? Check the other troubleshooting guides or ask for help in the community! 🤝