Skip to main content

4-Axis Mill

Configuration for a 4-axis CNC mill with rotary axis. Ideal for machining complex parts that require rotation around a cylindrical workpiece.

Machine Specifications​

This recipe is designed for:

  • 4 stepper motors (X, Y, Z linear + A rotary)
  • Homing on linear axes (X, Y, Z)
  • Rotary axis without homing (A-axis)
  • Spindle with speed control
  • Standard ESP32 board

Complete Configuration​

name: "4-Axis Mill"
board: "ESP32"
version: "3.7"

axes:
x:
steps_per_mm: 80.0
max_rate_mm_per_min: 4000.0
acceleration_mm_per_sec2: 400.0
max_travel_mm: 200.0
soft_limits: true
homing:
cycle: 1
positive_direction: false
mpos_mm: 0.0
feed_mm_per_min: 1000.0
seek_mm_per_min: 2000.0
motor0:
step_pin: "gpio.2"
direction_pin: "gpio.5"
disable_pin: "gpio.8"
limit_neg_pin: "gpio.9"

y:
steps_per_mm: 80.0
max_rate_mm_per_min: 4000.0
acceleration_mm_per_sec2: 400.0
max_travel_mm: 150.0
soft_limits: true
homing:
cycle: 1
positive_direction: false
mpos_mm: 0.0
feed_mm_per_min: 1000.0
seek_mm_per_min: 2000.0
motor0:
step_pin: "gpio.3"
direction_pin: "gpio.6"
disable_pin: "gpio.8"
limit_neg_pin: "gpio.10"

z:
steps_per_mm: 400.0
max_rate_mm_per_min: 1500.0
acceleration_mm_per_sec2: 150.0
max_travel_mm: 100.0
soft_limits: true
homing:
cycle: 2
positive_direction: true
mpos_mm: 100.0
feed_mm_per_min: 500.0
seek_mm_per_min: 1000.0
motor0:
step_pin: "gpio.4"
direction_pin: "gpio.7"
disable_pin: "gpio.8"
limit_pos_pin: "gpio.11"

a:
steps_per_mm: 8.888889 # 360°/40.5 = 8.888889 steps per degree
max_rate_mm_per_min: 3600.0 # 360°/min = 6 RPM
acceleration_mm_per_sec2: 600.0
max_travel_mm: 360000.0 # Effectively unlimited rotation
soft_limits: false # No soft limits for rotary
motor0:
step_pin: "gpio.25"
direction_pin: "gpio.26"
disable_pin: "gpio.8"
# No homing switch for rotary axis

spindle:
pwm:
pwm_hz: 5000
output_pin: "gpio.12"
enable_pin: "gpio.13"
direction_pin: "gpio.14"
spinup_ms: 2000
spindown_ms: 2000
tool_num: 0
speed_map: "0=0% 1000=10% 18000=100%"

probe:
pin: "gpio.15"
check_mode_start: true

control:
safety_door_pin: "gpio.16"
reset_pin: "gpio.17"
feed_hold_pin: "gpio.18"

coolant:
flood_pin: "gpio.19"

Pin Assignment Summary​

FunctionGPIO PinNotes
X Step2X-axis linear movement
Y Step3Y-axis linear movement
Z Step4Z-axis linear movement
A Step25A-axis rotary movement
X Direction5X-axis direction control
Y Direction6Y-axis direction control
Z Direction7Z-axis direction control
A Direction26A-axis direction control
Motor Enable8Shared enable for all motors
X Limit9X-axis homing switch
Y Limit10Y-axis homing switch
Z Limit11Z-axis homing switch
Spindle PWM12Spindle speed control
Spindle Enable13Spindle on/off
Spindle Direction14CW/CCW rotation
Probe15Touch probe input
Safety Door16Emergency stop
Reset17Reset button
Feed Hold18Feed hold button
Coolant19Coolant pump

Rotary Axis Configuration​

Steps per Degree Calculation​

For rotary axis, steps_per_mm represents steps per degree:

steps_per_degree = (motor_steps × microsteps × gear_ratio) / 360°

Example with 1.8° stepper, 16 microsteps, 40:1 gearbox:
steps_per_degree = (200 × 16 × 40) / 360 = 8.888889

Speed Settings​

Rotary axis speeds are in degrees per minute:

  • max_rate_mm_per_min: 3600 = 360°/min = 6 RPM
  • acceleration_mm_per_sec2: 600 = 600°/sec² acceleration

No Homing for Rotary​

Rotary axes typically don't home:

  • No limit switches on A-axis
  • No homing cycle configured
  • Soft limits disabled for continuous rotation

Customization Guide​

Linear Axes Adjustment​

Same as 3-axis machines:

  • Adjust steps_per_mm for your mechanical setup
  • Set travel limits to match your machine
  • Tune speeds for your motors and drivers

Rotary Axis Tuning​

Gear Ratio Calculation​

Most rotary axes use reduction gearing:

# For different gear ratios:
# 10:1 ratio: steps_per_mm: 2.222222
# 20:1 ratio: steps_per_mm: 4.444444
# 50:1 ratio: steps_per_mm: 11.111111
# 90:1 ratio: steps_per_mm: 20.0

Speed Considerations​

Rotary axes are usually slower:

  • Conservative speeds prevent workpiece damage
  • Lower acceleration for heavy workpieces
  • Consider workpiece inertia when setting limits

Spindle for Milling​

Configured for variable speed milling:

spindle:
pwm:
speed_map: "0=0% 1000=10% 18000=100%" # Typical mill speeds
spinup_ms: 2000 # Longer spinup for heavy spindles
spindown_ms: 2000 # Longer spindown for safety

4-Axis G-code Usage​

Basic 4-Axis Commands​

G90           ; Absolute positioning
G0 X10 Y10 Z5 A45 ; Position all 4 axes
G1 X20 A90 F500 ; Simultaneous linear and rotary move
A360 ; Full rotation (360 degrees)

Typical 4-Axis Operations​

Cylinder Machining​

; Machine around cylinder circumference
G0 Z10 A0 ; Start position
G1 Z0 F200 ; Plunge to depth
G1 A360 F300 ; Machine full rotation
G0 Z10 ; Retract

Helical Milling​

; Helical thread cutting
G0 X0 Y0 Z10 A0 ; Start position
G1 Z0 F100 ; Plunge start
G1 X0 Y0 Z-10 A360 F200 ; Helical move

Index Operations​

; Machine multiple features around circumference
G0 A0 ; Index to 0°
; ... machining operations ...
G0 A90 ; Index to 90°
; ... machining operations ...
G0 A180 ; Index to 180°
; ... machining operations ...

Workholding Considerations​

Chuck vs. Centers​

  • Chuck holding: Good for short, rigid parts
  • Between centers: Better for long, slender parts
  • Tailstock support: Reduces deflection and chatter

Workpiece Balance​

  • Dynamic balancing important at higher speeds
  • Counterweights may be needed for irregular shapes
  • Speed limitations based on workpiece geometry

Safety Considerations​

Rotary Axis Safety​

  • No soft limits means potential for wrap-around
  • Manual positioning before starting programs
  • Chuck/workpiece clearance critical
  • Emergency stop easily accessible

Tool Clearance​

  • Longer tools may be needed for deep features
  • Tool path planning must consider rotary motion
  • Collision detection more complex with 4 axes

Troubleshooting 4-Axis Issues​

A-Axis Not Moving​

  1. Check motor connections and driver settings
  2. Verify step/direction pin assignments
  3. Test with manual commands (G1 A10)
  4. Check gear backlash and mechanical binding

Positioning Accuracy​

  1. Calibrate steps per degree with test cuts
  2. Check gear backlash compensation
  3. Verify motor torque adequate for workpiece
  4. Test repeatability with index positioning

Synchronization Issues​

  1. Tune acceleration for all axes
  2. Balance speeds between linear and rotary
  3. Check mechanical rigidity of rotary axis
  4. Verify timing in multi-axis moves

Advanced Features​

Tool Length Compensation​

G43 H1        ; Tool length offset
G0 Z10 A45 ; Position with offset active

Coordinate System Rotation​

Some CAM software supports:

  • G68: Coordinate system rotation
  • Compound angles with A-axis positioning
  • 3D surface machining on cylinders

Maintenance​

Regular Checks​

  • Rotary axis backlash measurement
  • Chuck/collet condition
  • Gear lubrication as needed
  • Encoder feedback (if equipped)

Calibration​

  • Periodic steps/degree verification
  • Index repeatability testing
  • Runout measurement of workholding
  • Tool setter calibration for 4-axis

Next Steps​

4-axis machining opens up new possibilities for complex part manufacturing. Take time to understand the rotary axis behavior before attempting complex programs! 🔄