Each z motor independently moves to its corresponding endstop. However once the 3 z-axis are recombined the combined z-movement fails.
config.g
; Three Z-Axis Motors on DuetWifi, Z1-Motor=Drive 2, Z2-Motor=Drive 3, Z3-Motor=Drive 4
; Three Z-Axis Endstops on DuetWifi. Z1-Endstop=Z-Stop, Z2-Endstop=E0-Stop, Z3-Endstop=E1-Stop
M400 ; wait for movement to stop
; Main board
M569 P0 S1 ; Drive 0 (X) goes forwards
M569 P1 S1 ; Drive 1 (Y) goes forwards
M569 P2 S0 ; Drive 2 (Z) goes backwards
M569 P3 S0 ; Drive 3 (E0) goes backwards
M569 P4 S0 ; Drive 4 (E1) goes backwards
; Expansion board
M569 P5 S1 ; Drive 5 goes forwards
M569 P6 S0 ; Drive 6 goes backwards
M569 P7 S0 ; Drive 7 goes backwards
M569 P8 S0 ; Drive 8 goes backwards
M569 P9 S0 ; Drive 9 goes backwards
; Assign Drive Axis, Motors, Endstops
M584 X0 Y1 Z2 U3 V4 E5 ; Assign Drive # and Axis to Motors (X=0, Y=1, Z1-Motor=Z2, Z2-Motor=U3, Z3-Motor=V4, Extruder1=5)
M574 X1 Y2 Z2 U2 V2 S0 ; set endstop config for X, Y separately (X=1 low position, Y=2 high position, S0=switch active low)
; Configure Steps and Speeds
;M350 X16 Y16 Z16 U16 V16 E16 I1 ; Configure microstepping with interpolation
M92 X80 Y80 Z400 U400 V400 E190 ; set axis steps/mm
M906 X1500 Y1500 Z2000 U2000 V2000 E1400 I100 ; Set motor currents (mA)
M201 X2000 Y2000 Z200 U200 V200 E4000 ; Maxumum Accelerations (mm/s^2)
M203 X33000 Y33000 Z1000 U1000 V1000 E10000 ; Maximum Speeds (mm/min)
M566 X600 Y600 Z20 U20 V20 E950 ; Maximum jerk speeds mm/minute
; Configure axis dimensions and z-axis lead screw locations
M208 X300 Y300 Z400 U400 V400 ; set axis maxima
M208 X0 Y0 Z0 U0 V0 S1 ; set axis minima
;M671 X346.37:346.37:-38.64 Y354.62:-25.39:164.62 S1.2 ; leadscrew positions relative to X=0, Y=0 (right rear, right front, left middle) (S=max correction in mm)
M584 Z2:3:4 P3 ; Combine Z, U and V, P3 to display/drive 3 axis.
homez.g
; Home 3 Independent Z-Axis Drives
M117 Homing Z axis...
M400 ; Wait for movement to stop
G91 ; relative positioning
M584 Z2 U3 V4 P5 ; separate z axis motors
G1 Z400 U400 V400 F500 S1 ; lower all z motors until each corresponding z-stop reached
M400 ; Wait for movement to stop
G1 V-3 F200 S2 ; raise Z3 axis slowly (S2 Ignore endstops and ignore axis not homed)
G1 V10 F200 S1 ; lower Z3 motor slowly until its endstop reached
G1 V-3 F200 S2 ; raise Z3 axis slowly (S2 Ignore endstops and ignore axis not homed)
M400 ; Wait for movement to stop
G1 U-3 F200 S2 ; raise Z2 axis slowly (S2 Ignore endstops and ignore axis not homed)
G1 U10 F200 S1 ; lower Z2 motor slowly until its endstop reached
G1 U-3 F200 S2 ; raise Z2 axis slowly (S2 Ignore endstops and ignore axis not homed)
M400 ; Wait for movement to stop
G1 Z-3 F200 S2 ; raise Z1 axis slowly (S2 Ignore endstops and ignore axis not homed)
G1 Z10 F200 S1 ; lower Z1 motor slowly until its endstop reached
G1 Z-3 F200 S2 ; raise Z1 axis slowly (S2 Ignore endstops and ignore axis not homed)
M400 ; Wait for movement to stop
M584 Z2:3:4 P3 ; combine z axis motors
G1 Z-5 F200 ; test raise all axis slowly
G90 ; absolute positioning
M117 Homing Z axis done